I've been successful at using MPI_Dist_graph_create_adjacent to create a
new communicator with graph topology, and using it with
MPI_Neighbor_alltoallv.  But I have a few questions:

1. Where can I use this communicator?  Can it be used with  the usual stuff
like MPI_Allgather, or do I need to hang onto the original communicator
(MPI_COMM_WORLD actually) for that purpose?

2. It turns out that my graph isn't symmetric sometimes (but I think I
understood that is okay). I usually just need to send stuff in one
direction, but occasionally it needs to go in the reverse direction.  Am I
right that I need a second graph communicator built with the reverse edges
to use with MPI_Neighbor_alltoallv for that communication?  My testing
seems to indicate so, but I'm not absolutely certain.

3. Is there any real advantage to using the non-symmetric graph, or should
I just symmetrize it and use the one?

Thanks for your help!

Reply via email to