[OSRM-talk] map matching service for a huge number of requests

Sasha Khapyorsky sashakh at gmail.com
Fri May 11 18:33:27 UTC 2018


Hi again, Patrick,

On Fri, May 11, 2018 at 9:22 PM, Patrick Agin <agin.patrick at gmail.com> wrote:
>
> And are you aware of some python code that would do the calls to osrm-routed
> in parallel threads?

There are lot of examples of how to make python things in parallel
threads. For example:
https://stackoverflow.com/questions/2846653/how-to-use-threading-in-python

Sasha

> Regards,
> Patrick
>
> 2018-05-11 14:07 GMT-04:00 Daniel Patterson <daniel at mapbox.com>:
>>
>> Patrick,
>>
>>   There are about a million possible paths you could take here, a lot of
>> it will depend on what skills you have available.  Off the top of my head:
>>
>>     1) Speed things up by avoiding HTTP overhead and calling the libosrm.a
>> functions directly instead of hitting `osrm-routed` over HTTP
>>     2) Modify the OSRM C++ source code and strip out the parts of the
>> map-matching response you don't need
>>     3) Simplify your trace geometries to speed up map-matching
>>     4) Break your trace list into sets and run these on multiple machines
>> in parallel (make copies of the OSRM data onto multiple machines)
>>     5) Just wait 10 hours, and get a good nights sleep
>>
>>   libosrm.a is thread-safe, so if you're calling functions from threads
>> you can do many at once.
>>
>>   osrm-routed is multi-threaded, so you can run many queries in parallel -
>> how many will depend on how many CPUs your machine has.  Profiling
>> multi-threaded server performance is kind of beyond the scope of OSRM
>> itself, there is lots of literature on it.
>>
>> daniel
>>
>> On Fri, May 11, 2018 at 10:57 AM, Patrick Agin <agin.patrick at gmail.com>
>> wrote:
>>>
>>> Sorry for the newbie question but what's the difference between
>>> osrm-routed and libosrm? Is it mandatory to use the latter for a parallel
>>> usage? And do you have an example of code that does the calls in parallel
>>> threads? Thanks Sasha for your help.
>>> Patrick
>>>
>>> 2018-05-11 13:50 GMT-04:00 Sasha Khapyorsky <sashakh at gmail.com>:
>>>>
>>>> Hi Patrick,
>>>>
>>>> If you are using libosrm (which reported to be thread safe:
>>>> https://github.com/Project-OSRM/osrm-backend/issues/4966) you can just
>>>> split your list and run its parts in different parallel threads.
>>>>
>>>> Sasha
>>>>
>>>> On Fri, May 11, 2018 at 8:14 PM, Patrick Agin <agin.patrick at gmail.com>
>>>> wrote:
>>>> > Hi,
>>>> > I want to call the map matching service for nearly a million of
>>>> > routes. I
>>>> > calculated that the task could take 10 hours on my laptop to complete.
>>>> > I was
>>>> > wondering if there's someone who faced the same problem and who
>>>> > addressed it
>>>> > in parallel, maybe with Spark? Another tool or way?
>>>> > Any hint is greatly appreciated!
>>>> > Patrick
>>>> >
>>>> > _______________________________________________
>>>> > OSRM-talk mailing list
>>>> > OSRM-talk at openstreetmap.org
>>>> > https://lists.openstreetmap.org/listinfo/osrm-talk
>>>> >
>>>>
>>>> _______________________________________________
>>>> OSRM-talk mailing list
>>>> OSRM-talk at openstreetmap.org
>>>> https://lists.openstreetmap.org/listinfo/osrm-talk
>>>
>>>
>>>
>>> _______________________________________________
>>> OSRM-talk mailing list
>>> OSRM-talk at openstreetmap.org
>>> https://lists.openstreetmap.org/listinfo/osrm-talk
>>>
>>
>>
>> _______________________________________________
>> OSRM-talk mailing list
>> OSRM-talk at openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/osrm-talk
>>
>
>
> _______________________________________________
> OSRM-talk mailing list
> OSRM-talk at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/osrm-talk
>



More information about the OSRM-talk mailing list