Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] RFC: changes to modex
From: Terry Dontje (Terry.Dontje_at_[hidden])
Date: 2008-04-02 10:52:31


Jeff Squyres wrote:
> WHAT: Changes to MPI layer modex API
>
> WHY: To be mo' betta scalable
>
> WHERE: ompi/mpi/runtime/ompi_module_exchange.* and everywhere that
> calls ompi_modex_send() and/or ompi_modex_recv()
>
> TIMEOUT: COB Fri 4 Apr 2008
>
> DESCRIPTION:
>
>
[...snip...]
> * int ompi_modex_node_send(...): send modex data that is relevant
> for all processes in this job on this node. It is intended that only
> one process in a job on a node will call this function. If more than
> one process in a job on a node calls _node_send(), then only one will
> "win" (meaning that the data sent by the others will be overwritten).
>
>
> * int ompi_modex_node_recv(...): receive modex data that is relevant
> for a whole peer node; receive the ["winning"] blob sent by
> _node_send() from the source node. We haven't yet decided what the
> node index will be; it may be (ompi_proc_t*) (i.e., _node_recv() would
> figure out what node the (ompi_proc_t*) resides on and then give you
> the data).
>
>
The above sounds like there could be race conditions if more than one
process on a node is doing
ompi_modex_node_send. That is are you really going to be able to be
assured when ompi_modex_node_recv
is done that one of the processes is not in the middle of doing
ompi_modex_node_send? I assume
there must be some sort of gate that allows you to make sure no one is
in the middle of overwriting your data.

--td