title: Boost Delta stepping
body: <p>I am trying to run the Delta Stepping Algorithm using Parallel Boost Graph Library but it does not compile. Could you please help.</p>
  
  <pre><code>#include &lt;boost/graph/use_mpi.hpp&gt;
  #include &lt;boost/graph/distributed/mpi_process_group.hpp&gt;
  #include &lt;boost/graph/dijkstra_shortest_paths.hpp&gt;
  #include &lt;boost/graph/distributed/delta_stepping_shortest_paths.hpp&gt;
  #include &lt;boost/graph/distributed/adjacency_list.hpp&gt;
  #include &lt;boost/graph/metis.hpp&gt;
  #include &lt;boost/graph/distributed/graphviz.hpp&gt;
  #include &lt;boost/property_map/property_map.hpp&gt;
  #include &lt;fstream&gt;
  #include &lt;string&gt;
  
  #ifdef BOOST_NO_EXCEPTIONS
      void
  boost::throw_exception(std::exception const&amp; ex)
  {
      std::cout &lt;&lt; ex.what() &lt;&lt; std::endl;
      abort();
  }
  #endif
  
  using namespace boost;
  using boost::graph::distributed::mpi_process_group;
  
  /* An undirected, weighted graph with distance values stored on the
     vertices. */
  typedef adjacency_list&lt;vecS, distributedS&lt;mpi_process_group, vecS&gt;, undirectedS,
          /*Vertex properties=*/property&lt;vertex_distance_t, float&gt;,
          /*Edge properties=*/property&lt;edge_weight_t, float&gt; &gt;
          Graph;
  
          int main(int argc, char *argv[]) {
              boost::mpi::environment env(argc, argv);
  
              // Parse command-line options
              const char *filename = "weighted_graph.gr";
              if (argc &gt; 1) filename = argv[1];
  
              // Open the METIS input file
              std::ifstream in(filename);
              graph::metis_reader reader(in);
  
              // Load the graph using the default distribution
              Graph g(reader.begin(), reader.end(), reader.weight_begin(),
                      reader.num_vertices());
  
              // Get vertex 0 in the graph
              graph_traits&lt;Graph&gt;::vertex_descriptor start = vertex(0, g);
  
              // Compute shortest paths from vertex 0
  //              dijkstra_shortest_paths(g, start,
  //                                      distance_map(get(vertex_distance, g)));
  
              typedef typename graph_traits&lt;Graph&gt;::vertex_descriptor vertex_t;
              typedef typename std::map&lt;vertex_t, vertex_t&gt; vertex_map_t;
              typedef associative_property_map&lt;vertex_map_t&gt; predecessor_map_t;
              vertex_map_t default_vertex_map;
              predecessor_map_t default_predecessor_map(default_vertex_map);
  
              typedef typename std::map&lt;vertex_t, double&gt; vertex_double_map_t;
              typedef associative_property_map&lt;vertex_double_map_t&gt; distance_map_t;
              vertex_double_map_t default_vertex_double_map;
              distance_map_t default_distance_map(default_vertex_double_map);
  
              graph::distributed::delta_stepping_shortest_paths(g, start, dummy_property_map(),
                      distance_map(get(vertex_distance, g)),
                      weight_map(get(edge_weight, g)));
  
  
              // Output a Graphviz DOT file
              std::string outfile = filename;
              if (argc &gt; 2)
                  outfile = argv[2];
              else {
                  int i = outfile.rfind('.');
                  if (i != std::string::npos)
                      outfile.erase(outfile.begin() + i, outfile.end());
                  outfile += "-dijkstra.dot";
              }
  
              if (process_id(process_group(g)) == 0) {
                  std::cout &lt;&lt; "Writing GraphViz output to " &lt;&lt; outfile &lt;&lt; "... ";
                  std::cout.flush();
              }
              write_graphviz(outfile, g,
                      make_label_writer(get(vertex_distance, g)),
                      make_label_writer(get(edge_weight, g)));
              if (process_id(process_group(g)) == 0)
                  std::cout &lt;&lt; "Done." &lt;&lt; std::endl;
  
              return 0;
          }
  </code></pre>
  
  <p>I ran the code as follows: <br>
  pratsriv@flowerpot:/home/pratsriv/Desktop/ReadGraph$ mpic++ parallelDeltastepping.cpp -I /home/pratsriv/boost_1_64_0/include/ -L/home/pratsriv/boost_1_64_0/lib/ -lboost_mpi -lboost_graph_parallel -lboost_system -lboost_serialization</p>
  
  <p>It gives me the following error:</p>
  
  <pre><code>In file included from parallelDeltastepping.cpp:18:0:
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp: In instantiation of ‘class boost::graph::distributed::delta_stepping_impl&lt;boost::adjacency_list&lt;boost::vecS, boost::distributedS&lt;boost::graph::distributed::mpi_process_group, boost::vecS&gt;, boost::undirectedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_weight_t, float&gt; &gt;, boost::dummy_property_map, boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;, boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt; &gt;’:
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp:504:5:   required from ‘void boost::graph::distributed::delta_stepping_shortest_paths(const Graph&amp;, typename boost::graph_traits&lt;Graph&gt;::vertex_descriptor, PredecessorMap, DistanceMap, EdgeWeightMap) [with Graph = boost::adjacency_list&lt;boost::vecS, boost::distributedS&lt;boost::graph::distributed::mpi_process_group, boost::vecS&gt;, boost::undirectedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_weight_t, float&gt; &gt;; PredecessorMap = boost::dummy_property_map; DistanceMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;; EdgeWeightMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt;; typename boost::graph_traits&lt;Graph&gt;::vertex_descriptor = boost::detail::parallel::global_descriptor&lt;long unsigned int&gt;]’
  parallelDeltastepping.cpp:80:37:   required from here
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp:74:63: error: no type named ‘value_type’ in ‘struct boost::property_traits&lt;boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt; &gt;’
   ypedef typename property_traits&lt;EdgeWeightMap&gt;::value_type Dist;
                                                              ^
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp:123:8: error: no type named ‘value_type’ in ‘struct boost::property_traits&lt;boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt; &gt;’
     void handle_relax_message(Vertex v, const std::pair&lt;Dist, Vert
          ^
  In file included from /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/crauser_et_al_shortest_paths.hpp:34:0,
                   from /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/dijkstra_shortest_paths.hpp:20,
                   from /home/pratsriv/boost_1_64_0/include/boost/graph/dijkstra_shortest_paths.hpp:620,
                   from parallelDeltastepping.cpp:17:
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/detail/dijkstra_shortest_paths.hpp: In instantiation of ‘class boost::graph::distributed::detail::dijkstra_msg_value&lt;boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;, boost::dummy_property_map&gt;’:
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp:129:8:   required from ‘class boost::graph::distributed::delta_stepping_impl&lt;boost::adjacency_list&lt;boost::vecS, boost::distributedS&lt;boost::graph::distributed::mpi_process_group, boost::vecS&gt;, boost::undirectedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_weight_t, float&gt; &gt;, boost::dummy_property_map, boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;, boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt; &gt;’
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp:504:5:   required from ‘void boost::graph::distributed::delta_stepping_shortest_paths(const Graph&amp;, typename boost::graph_traits&lt;Graph&gt;::vertex_descriptor, PredecessorMap, DistanceMap, EdgeWeightMap) [with Graph = boost::adjacency_list&lt;boost::vecS, boost::distributedS&lt;boost::graph::distributed::mpi_process_group, boost::vecS&gt;, boost::undirectedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_weight_t, float&gt; &gt;; PredecessorMap = boost::dummy_property_map; DistanceMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;; EdgeWeightMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt;; typename boost::graph_traits&lt;Graph&gt;::vertex_descriptor = boost::detail::parallel::global_descriptor&lt;long unsigned int&gt;]’
  parallelDeltastepping.cpp:80:37:   required from here
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/detail/dijkstra_shortest_paths.hpp:40:59: error: no type named ‘key_type’ in ‘struct boost::property_traits&lt;boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt; &gt;’
   edef typename property_traits&lt;DistanceMap&gt;::key_type vertex_desc
                                                        ^
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/detail/dijkstra_shortest_paths.hpp:42:61: error: no type named ‘value_type’ in ‘struct boost::property_traits&lt;boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt; &gt;’
    typedef typename property_traits&lt;DistanceMap&gt;::value_type type;
                                                              ^
  In file included from /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/breadth_first_search.hpp:23:0,
                   from /home/pratsriv/boost_1_64_0/include/boost/graph/breadth_first_search.hpp:409,
                   from /home/pratsriv/boost_1_64_0/include/boost/graph/dijkstra_shortest_paths.hpp:21,
                   from parallelDeltastepping.cpp:17:
  /home/pratsriv/boost_1_64_0/include/boost/graph/parallel/properties.hpp: In instantiation of ‘void boost::set_property_map_role(Property, PropertyMap) [with Property = boost::vertex_distance_t; PropertyMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;]’:
  /home/pratsriv/boost_1_64_0/include/boost/graph/distributed/delta_stepping_shortest_paths.hpp:499:24:   required from ‘void boost::graph::distributed::delta_stepping_shortest_paths(const Graph&amp;, typename boost::graph_traits&lt;Graph&gt;::vertex_descriptor, PredecessorMap, DistanceMap, EdgeWeightMap) [with Graph = boost::adjacency_list&lt;boost::vecS, boost::distributedS&lt;boost::graph::distributed::mpi_process_group, boost::vecS&gt;, boost::undirectedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_weight_t, float&gt; &gt;; PredecessorMap = boost::dummy_property_map; DistanceMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;; EdgeWeightMap = boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::edge_global_property_map&lt;boost::detail::edge_desc_impl&lt;boost::directed_tag, long unsigned int&gt; &gt;, boost::adj_list_edge_property_map&lt;boost::directed_tag, float, float&amp;, long unsigned int, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::edge_weight_t&gt; &gt;, boost::edge_weight_t, boost::no_property&gt;; typename boost::graph_traits&lt;Graph&gt;::vertex_descriptor = boost::detail::parallel::global_descriptor&lt;long unsigned int&gt;]’
  parallelDeltastepping.cpp:80:37:   required from here
  /home/pratsriv/boost_1_64_0/include/boost/graph/parallel/properties.hpp:105:63: error: no type named ‘value_type’ in ‘struct boost::property_traits&lt;boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt; &gt;’
   ef typename property_traits&lt;PropertyMap&gt;::value_type value_type;
                                                        ^
  /home/pratsriv/boost_1_64_0/include/boost/graph/parallel/properties.hpp:109:5: error: ‘struct boost::bgl_named_params&lt;boost::parallel::distributed_property_map&lt;boost::graph::distributed::mpi_process_group, boost::detail::parallel::global_descriptor_property_map&lt;long unsigned int&gt;, boost::vec_adj_list_vertex_property_map&lt;boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;, boost::adjacency_list&lt;boost::vecS, boost::vecS, boost::directedS, boost::property&lt;boost::vertex_distance_t, float&gt;, boost::property&lt;boost::edge_locally_owned_t, bool, boost::property&lt;boost::edge_target_processor_id_t, short int, boost::property&lt;boost::edge_weight_t, float&gt; &gt; &gt;, boost::no_property, boost::listS&gt;*, float, float&amp;, boost::vertex_distance_t&gt; &gt;, boost::vertex_distance_t, boost::no_property&gt;’ has no member named ‘set_reduce’
       pm.set_reduce(reduce());
  </code></pre>