Hi friends, I have to run distributed_delta_stepping with graphs in CSR fromat. So I tried with "distributed_shortest_path_test.cpp" located at "<top of boost source tree>/libs/graph_parallel/test/ ". It reads a random graph in adjacency list format. But I have to run DIMACS_USA graph in CSR format. So, I edited the code but it resulted in following errors. I guess I am facing problems while representing a graph in CSR format.. CODE : void test_distributed_shortest_paths(int n, double p, int c, int seed) { char *graf = "./dimacs_USA_sort_wdup" ; typedef compressed_sparse_row_graph<directedS, VertexProperties, WeightedEdge, no_property, distributedS<mpi_process_group>
Graph;
typedef graph_traits<Graph>::vertex_descriptor vertex_descriptor; typedef graph_traits<Graph>::edge_descriptor edge_descriptor; typedef graph_traits<Graph>::vertex_iterator vertex_iterator; typedef graph_traits<Graph>::vertices_size_type vertices_size_type; typedef property_map<Graph, vertex_index_t>::type vertex_index_map; typedef std::pair<long int, long int> Edge; struct timeval starttime,endtime,timediff; gettimeofday(&starttime,0x0); char ch; long int num_nodes; long int num_arcs; Edge *edge_array; long int *weights; long int arc_index=0, wt_index=0; long int vert1, vert2, dist; std::fstream input; input.open(graf); if( !input.eof()) { input >> ch; if(ch == 'vertex') { input >> num_nodes; } } if(!input.eof()) { input >> ch; if(ch =='edge') { input >> num_arcs; } else std::cout << "Wrong graph format\n"; } edge_array=(Edge *)malloc(sizeof(Edge) * num_arcs); weights=(long int *)malloc(sizeof(long int) * num_arcs); while(!input.eof()) { input >> ch; if(ch == 'arc') { input >> vert1 >> vert2 >> dist; Edge temp; temp.first=vert1; temp.second=vert2; edge_array[arc_index++]=temp; weights[wt_index++]=dist; } } gettimeofday(&endtime, 0x0); Graph g(edge_array, edge_array + num_arcs, weights, num_nodes); vertex_descriptor s = vertex(1, g); graph::distributed::delta_stepping_shortest_paths(g, s, dummy_property_map(), get(&VertexProperties::distance, g), get(&WeightedEdge::weight, g)); } But when I run the command " mpirun -np 1 ./a.out" I face the following errors. **** Testing aborted. **** 1 error detected ------------------------------ -------------------------------------------- mpirun has exited due to process rank 0 with PID 19096 on node rise-02 exiting without calling "finalize". This may have caused other processes in the application to be terminated by signals sent by mpirun (as reported here). -------------------------------------------------------------------------- Thank you in advance.