osrm-backend/algorithms
Daniel J. Hofmann 9231335eef Use Intel TBB's parallel_sort even for nested parallelism.
TBB has a global task scheduler (that's one of the reason TBB is not
linked statically but dyanmically instead). This allows control over all
running threads, enabling us to use nested parallelism and the scheduler
doing all the task allocation itself.

That is, nested parallel execution such as in

    parallel_for(seq, [](const auto& rng){
      parallel_sort(rng);
    });

is no problem at all, as the scheduler still claims control over the
global environment.

Therefore, use `parallel_sort` Range overload where possible.

References:

- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/algorithms.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/algorithms/parallel_sort_func.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/task_scheduler.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/task_scheduler/task_scheduler_init_cls.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#tbb_userguide/Initializing_and_Terminating_the_Library.htm
2015-09-28 20:26:03 +02:00
..
bayes_classifier.hpp Modernize the code base to C++11 standards and beyond. 2015-08-18 12:56:34 +02:00
bfs_components.hpp change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
coordinate_calculation.cpp Move calculate_coordinate to algorithms/ 2015-08-12 13:02:18 +02:00
coordinate_calculation.hpp Move calculate_coordinate to algorithms/ 2015-08-12 13:02:18 +02:00
crc32_processor.hpp activate __get_cpuid on all non X64 platform, fixes #1193 2015-04-07 14:45:21 +02:00
douglas_peucker.cpp Modernize the code base to C++11 standards and beyond. 2015-08-18 12:56:34 +02:00
douglas_peucker.hpp change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
graph_compressor.cpp Modernize the code base to C++11 standards and beyond. 2015-08-18 12:56:34 +02:00
graph_compressor.hpp Modernize the code base to C++11 standards and beyond. 2015-08-18 12:56:34 +02:00
object_encoder.hpp Replace custom replace utility with the stdlib's replace algorithm. 2015-09-28 15:00:20 +02:00
polyline_compressor.cpp updated to 1E6 based polyline format 2015-06-02 13:15:31 +02:00
polyline_compressor.hpp made geometry_string a const reference 2015-06-02 13:06:06 +02:00
polyline_formatter.cpp change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
polyline_formatter.hpp change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
route_name_extraction.hpp Use Intel TBB's parallel_sort even for nested parallelism. 2015-09-28 20:26:03 +02:00
tarjan_scc.hpp add missing include and clang-format 2015-09-01 15:20:35 +02:00
trip_brute_force.hpp add missing include and clang-format 2015-09-01 15:20:35 +02:00
trip_farthest_insertion.hpp Don't mix signed and unsigned in comparisons as signed is converted first to unsigned. 2015-09-02 16:33:03 +02:00
trip_nearest_neighbour.hpp fix some small issues: 2015-09-01 15:20:35 +02:00
trip_tabu_search.hpp fix some small issues: 2015-09-01 15:20:35 +02:00