Boost Parallel Graph Library: remove_vertex gives unexpected results
Hi All, i need some help with parallel boost graph library. Sorry if this is not the right list to post. Posting here since it looks like it might be a but. In particular, i am trying to modify the structure of the graph (distributed adjacency list) after it is loaded. The code snippet is at http://pastebin.com/erizQ0Sf. The problem is that clear_vertex(v,g) and remove_vertex(v,g) does not seem to operate on the same vertex in the graph. Here is a sample graph in metis format: http://pastebin.com/qxy2w6aw (I use the default vertex distribution for this example) The graph_viz output is available here for different scenarios: https://onedrive.live.com/redir?resid=C3CDB6EFBD31B4A8!20818&authkey=!AJqEFl3B71RMcaM&v=3&ithint=photo%2c.pnghttps://onedrive.live.com/redir?resid=C3CDB6EFBD31B4A8!20818&authkey=!AJqEFl3B71RMcaM&v=3&ithint=photo%2c.png As you can see in the above figure: The first image is the original graph split into two partitions (mpirun -np 2 ./test) The second image is after clear_vertex is called for one of the vertices. Notice vertex "0". All the edges are removed as expected. The third image is after remove_vertex is called (which is called after clear_vertex, as mentioned in the documentation here: http://www.boost.org/doc/libs/1_55_0/libs/graph_parallel/doc/html/distribute...). Notice here that the vertex "2" is removed instead of vertex "0" even when using the same vertex descriptor for both calls. One thing i noted is that the remove_vertex seems to remove the "last" vertex in that partition irrespective of the input. e.g. if i use v = vertex(1,g) in the above code, i still see that the vertex "2" is removed and the edges rearranged for that. Is this a bug or am i doing something wrong. Your help will be greatly appreciated. Thanks, Alok Kumbhare
Hi All,
Can anyone please help me with this. Please let me know if you need any
more information. I can also provide remote access if you need access to an
environment with everything setup to test.
Thanks,
Alok
On Tue, Apr 8, 2014 at 11:42 AM, Alok Kumbhare
Hi All, i need some help with parallel boost graph library. Sorry if this is not the right list to post. Posting here since it looks like it might be a but.
In particular, i am trying to modify the structure of the graph (distributed adjacency list) after it is loaded. The code snippet is at http://pastebin.com/erizQ0Sf.
The problem is that clear_vertex(v,g) and remove_vertex(v,g) does not seem to operate on the same vertex in the graph.
Here is a sample graph in metis format: http://pastebin.com/qxy2w6aw (I use the default vertex distribution for this example)
The graph_viz output is available here for different scenarios:
https://onedrive.live.com/redir?resid=C3CDB6EFBD31B4A8!20818&authkey=!AJqEFl3B71RMcaM&v=3&ithint=photo%2c.pnghttps://onedrive.live.com/redir?resid=C3CDB6EFBD31B4A8!20818&authkey=!AJqEFl3B71RMcaM&v=3&ithint=photo%2c.png
As you can see in the above figure:
The first image is the original graph split into two partitions (mpirun -np 2 ./test)
The second image is after clear_vertex is called for one of the vertices. Notice vertex "0". All the edges are removed as expected.
The third image is after remove_vertex is called (which is called after clear_vertex, as mentioned in the documentation here: http://www.boost.org/doc/libs/1_55_0/libs/graph_parallel/doc/html/distribute...). Notice here that the vertex "2" is removed instead of vertex "0" even when using the same vertex descriptor for both calls.
One thing i noted is that the remove_vertex seems to remove the "last" vertex in that partition irrespective of the input. e.g. if i use v = vertex(1,g) in the above code, i still see that the vertex "2" is removed and the edges rearranged for that.
Is this a bug or am i doing something wrong.
Your help will be greatly appreciated.
Thanks, Alok Kumbhare
participants (1)
-
Alok Kumbhare