-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RSGF8 encoding API changes needed before parallization can occur #13
Comments
Ideally we should drop RSGF8 but I'm not sure that's an option as it would require devs to download and compile leopard in order to use the library, so it makes deployment harder. |
Yeah, let's keep it around for now. We could either make it go-routine safe by using a mutex on that map (would that already fix the breakage @evan-forbes?), or, we could accept that it is slower and not use that cache and call |
Man, I am just not having any luck with bugs atm 😕 😅 . I can no longer recreate the RSGF8 bug I was experiencing a month ago. All the old parallel code works fine without making any changes to rsmt2d, I even tried using older versions of go. If someone wants to check my work, it's on this branch and can be ran with On the brightside, since the same caches could be used, parallelizing the erasure step is even faster for RSGF8. |
I've just tested your branch and it looks fine for me too. Does this mean that Leopard and the infectious lib are more or less on par when paralleized. Or am I misreading these two:
If I add the |
That is what that means, at least on your machine. On my machine, I'm getting: In the older modified version of rsmt2d, I had added mutexes on |
we're experiencing this issue again in #282 |
Can this be closed now that #46 was merged? |
the infectious library used for RSGF8 encoding uses a map as a cache that breaks when being used by multiple goroutines.
While investigating possible parallelization performance improvements, I solved this issue by adding this function and making a cache per goroutine.
While this works, it is likely not ideal, and I think this should instead be addressed with #12
There's also the option to simply not use RSGF8 and only use leopard, which is faster and doesn't require changes before being parallelized.
The text was updated successfully, but these errors were encountered: