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
Deterministic pre-processing for reproducible routes/alternatives #1737
Comments
Hmm what comes to mind is 1/ set thread count to one and 2/ do stable sorting. I think there are already some options sprinkled around for 1/, at least I have seen a few places where the thread count is calculated based on hardware concurrency and a user value. For 2/ using I think the bigger question is: how to give users a switch to toggle between those two modes, that is how to pass down the flag to all subcomponents in a simple and clean way. I think we also have to look at what options the dependencies offer in this regard (esp. stxxl, osmium). |
I have multiple issues with this:
So IMHO its not one but multiple errors which show up. |
For the record, I just talked to @joto re. determinism in libosmium: and although parsing is done in parallel, the handler invocations are getting serialized. That is, at least libosmium's concurrency is safe. |
Related: #2617 |
In http://www.openstreetmap.org/user/naoliv/diary/35981#comment32323 @flohoff notes that osrm-backend does not return deterministic results. We've run into this at #1560 #1701 as well.
Ideally several runs of osrm-extract/osrm-prepare on the same OSM dataset should reproducibly return the same results. This is especially important for the QA work @flohoff already did and @naoliv picked up as well.
How could we make this deterministic?
/cc @TheMarex @daniel-j-h @danpat @emiltin
The text was updated successfully, but these errors were encountered: