diff --git a/3party/osrm/osrm-backend/CMakeLists.txt b/3party/osrm/osrm-backend/CMakeLists.txt index d60a7e27c4..b2825564d4 100644 --- a/3party/osrm/osrm-backend/CMakeLists.txt +++ b/3party/osrm/osrm-backend/CMakeLists.txt @@ -61,6 +61,7 @@ set(PrepareSources prepare.cpp ${PrepareGlob}) add_executable(osrm-prepare ${PrepareSources}) file(GLOB ServerGlob Server/*.cpp) +file(GLOB RoutingAlgs RoutingAlgorithms/*.h) file(GLOB DescriptorGlob Descriptors/*.cpp) file(GLOB DatastructureGlob DataStructures/SearchEngineData.cpp DataStructures/RouteParameters.cpp) file(GLOB CoordinateGlob DataStructures/Coordinate.cpp) @@ -84,7 +85,7 @@ add_library(OSRM ${OSRMSources} Util/GitDescription.cpp Util/FingerPrint.cpp) add_library(GITDESCRIPTION STATIC Util/GitDescription.cpp) add_dependencies(FINGERPRINT FingerPrintConfigure) -add_executable(osrm-routed routed.cpp ${ServerGlob}) +add_executable(osrm-routed routed.cpp ${ServerGlob} ${RoutingAlgs}) add_executable(osrm-datastore datastore.cpp) # Unit tests diff --git a/3party/osrm/osrm-backend/DataStructures/StaticGraph.h b/3party/osrm/osrm-backend/DataStructures/StaticGraph.h index 91d5097932..850017b0e2 100644 --- a/3party/osrm/osrm-backend/DataStructures/StaticGraph.h +++ b/3party/osrm/osrm-backend/DataStructures/StaticGraph.h @@ -36,8 +36,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include -#include - #include #include #include @@ -89,7 +87,7 @@ template class StaticGraph StaticGraph(const int nodes, std::vector &graph) { - tbb::parallel_sort(graph.begin(), graph.end()); + std::sort(graph.begin(), graph.end()); number_of_nodes = nodes; number_of_edges = (EdgeIterator)graph.size(); node_array.resize(number_of_nodes + 1); diff --git a/3party/osrm/osrm-backend/DataStructures/StaticRTree.h b/3party/osrm/osrm-backend/DataStructures/StaticRTree.h index 1e7eba625d..3009f962df 100644 --- a/3party/osrm/osrm-backend/DataStructures/StaticRTree.h +++ b/3party/osrm/osrm-backend/DataStructures/StaticRTree.h @@ -50,9 +50,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -#include -#include - #include #include #include @@ -70,6 +67,7 @@ template (0, m_element_count), - [&input_data_vector, &input_wrapper_vector, &get_hilbert_number, &coordinate_list]( - const tbb::blocked_range &range) - { - for (uint64_t element_counter = range.begin(); element_counter != range.end(); - ++element_counter) - { - WrappedInputElement ¤t_wrapper = input_wrapper_vector[element_counter]; - current_wrapper.m_array_index = element_counter; + // generate auxiliary vector of hilbert-valuesß∫ + for (uint64_t element_counter = 0; element_counter != m_element_count; ++element_counter) + { + WrappedInputElement ¤t_wrapper = input_wrapper_vector[element_counter]; + current_wrapper.m_array_index = element_counter; - EdgeDataT const ¤t_element = input_data_vector[element_counter]; + EdgeDataT const ¤t_element = input_data_vector[element_counter]; - // Get Hilbert-Value for centroid in mercartor projection - FixedPointCoordinate current_centroid = EdgeDataT::Centroid( - FixedPointCoordinate(coordinate_list.at(current_element.u).lat, - coordinate_list.at(current_element.u).lon), - FixedPointCoordinate(coordinate_list.at(current_element.v).lat, - coordinate_list.at(current_element.v).lon)); - current_centroid.lat = - COORDINATE_PRECISION * lat2y(current_centroid.lat / COORDINATE_PRECISION); + // Get Hilbert-Value for centroid in mercartor projection + FixedPointCoordinate current_centroid = EdgeDataT::Centroid( + FixedPointCoordinate(coordinate_list.at(current_element.u).lat, + coordinate_list.at(current_element.u).lon), + FixedPointCoordinate(coordinate_list.at(current_element.v).lat, + coordinate_list.at(current_element.v).lon)); + current_centroid.lat = + COORDINATE_PRECISION * lat2y(current_centroid.lat / COORDINATE_PRECISION); + + current_wrapper.m_hilbert_value = get_hilbert_number(current_centroid); + } - current_wrapper.m_hilbert_value = get_hilbert_number(current_centroid); - } - }); // open leaf file boost::filesystem::ofstream leaf_node_file(leaf_node_filename, std::ios::binary); leaf_node_file.write((char *)&m_element_count, sizeof(uint64_t)); // sort the hilbert-value representatives - tbb::parallel_sort(input_wrapper_vector.begin(), input_wrapper_vector.end()); + sort(input_wrapper_vector.begin(), input_wrapper_vector.end()); std::vector tree_nodes_in_level; // pack M elements into leaf node and write to leaf file @@ -480,22 +472,18 @@ class StaticRTree // reverse and renumber tree to have root at index 0 std::reverse(m_search_tree.begin(), m_search_tree.end()); - uint32_t search_tree_size = m_search_tree.size(); - tbb::parallel_for(tbb::blocked_range(0, search_tree_size), - [this, &search_tree_size](const tbb::blocked_range &range) - { - for (uint32_t i = range.begin(); i != range.end(); ++i) + for (uint32_t i = 0; i != search_tree_size; ++i) + { + TreeNode ¤t_tree_node = this->m_search_tree[i]; + for (uint32_t j = 0; j < current_tree_node.child_count; ++j) { - TreeNode ¤t_tree_node = this->m_search_tree[i]; - for (uint32_t j = 0; j < current_tree_node.child_count; ++j) - { - const uint32_t old_id = current_tree_node.children[j]; - const uint32_t new_id = search_tree_size - old_id - 1; - current_tree_node.children[j] = new_id; - } + const uint32_t old_id = current_tree_node.children[j]; + const uint32_t new_id = search_tree_size - old_id - 1; + current_tree_node.children[j] = new_id; } - }); + } + // open tree file boost::filesystem::ofstream tree_node_file(tree_node_filename, std::ios::binary); diff --git a/3party/osrm/osrm-backend/Util/GraphLoader.h b/3party/osrm/osrm-backend/Util/GraphLoader.h index c943b789c4..9f696ab68f 100644 --- a/3party/osrm/osrm-backend/Util/GraphLoader.h +++ b/3party/osrm/osrm-backend/Util/GraphLoader.h @@ -41,8 +41,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -#include - #include #include @@ -204,7 +202,7 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, is_split); } - tbb::parallel_sort(edge_list.begin(), edge_list.end()); + std::sort(edge_list.begin(), edge_list.end()); for (unsigned i = 1; i < edge_list.size(); ++i) { if ((edge_list[i - 1].target == edge_list[i].target) && @@ -359,7 +357,7 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, target); } - tbb::parallel_sort(edge_list.begin(), edge_list.end()); + std::sort(edge_list.begin(), edge_list.end()); for (unsigned i = 1; i < edge_list.size(); ++i) { if ((edge_list[i - 1].target == edge_list[i].target) &&