Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Topology functions from MPI 1.1
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2008-01-28 11:59:25


It depends on what you are trying to do. Is your network physically
wired such that there is no direct link between nodes 1 and 2? (i.e.,
node 1 cannot directly send to node 2, such as via opening a socket
from node 1 to node 2's IP address)

MPI topology communicators do not prohibit on process from sending to
any other process in the communicator. They might provide more
optimal routing for nearest-neighbor communication if the underlying
network topology supports it, for example.

On Jan 24, 2008, at 6:42 PM, David Souther wrote:

> Hello,
>
> My name is David Souther, and I am a student working on a parallel
> processing research project at Rocky Mountain College. We need to
> attach topology information to our processes, but the assertions we
> have been making about the MPI Topology mechanism seem to be false.
>
> We would like to do something similar to the following:
>
> Node 0 <---> Node 1
> |
> |
> V
> Node 2
>
> That is, Node 0 can talk to Node 1 and 2, and Node 1 can talk to
> Node 0, but Node 2 can't talk to anyone. From what I understand, the
> code to do that would look like:
> ...
> MPI_Comm graph_comm;
> int nodes = 3;
> int indexes[] = {2, 3, 3};
> int edges[] = {1, 2, 0};
> MPI_Graph_create(MPI_COMM_WORLD, nodes, indexes, edges, 0,
> &graph_comm);
> ...
>
> That is how, with my understanding, I would build that graph.
>
> Then, the following pseudocode would work:
>
> if(rank == 0)
> MPI_SEND("Message", To Rank 1, graph_comm)
> if(rank == 1)
> MPI_RECV(buffer, From Rank 0, graph_comm)
>
> but this would not (It would throw an error, maybe?):
>
> if(rank == 2)
> MPI_SEND("Message", To Rank 0, graph_comm)
> if(rank == 0)
> MPI_RECV(buffer, From Rank 2, graph_comm)
>
>
> Anyway, the point is, that doesn't work/happen. The messages simply
> send and receive as if they were all in the global communicator
> (MPI_COMM_WORLD).
>
> So, I have two questions: could (and how do I make) this work?
>
> And, If I'm going at this entirely the wrong way, what is a good use
> for the topology mechanism?
>
> Thank you so much for your time!
>
> --
> -DS
> -------------------------
> David Souther
> 1511 Poly Dr
> Billings, MT, 59102
> (406) 545-9223
> http://www.davidsouther.com
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
Cisco Systems