-
Notifications
You must be signed in to change notification settings - Fork 5
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
Parallelizing step3 #17
Comments
I think the hot-pot depends on the problem size. Yes, for small matrices, |
Looks like I tried something similar years ago: Line 343 in a60d303
|
Do you get other crititcal points when matrix sizes grow larger? This was for a 1000x1000 dense matrix |
Lines 91 to 108 in fe5c402
This marking step is critical for large matrices like 4000x4000 or 8000x8000. You can find some benchmark reports in #15. |
What's the problem size of your use case? |
the problem go up to |
That's really large. Hungarian is an O(n^3) algorithm and may not suite for this kinda problem. Would you like to make a PR with above-mentioned multi-threading support? I'm happy to merge if the benchmark reports are green. BTW, this is released under public domain, so you could also make the code tailored to your use case and embed it in your package. |
Yes this is the kind of extreme limit we'd like to solve, it's okay to have the method work for smaller sizes of course. I'll probably try to reimplement the multithreaded version and compare the two + a LP solver |
We're using Hungarian.jl in the https://github.com/ZIB-IOL/FrankWolfe.jl package to solve LPs over the Birkhoff polytope.
It scales well in terms of memory footprint but badly in terms of time, mostly because of
step3!
, where most of the time seems to be spent in this block:this would be non-trivial to parallelize because of the shared bound
h
and arrayminLocations
but could be worth it.The text was updated successfully, but these errors were encountered: