X-Mailer: QUALCOMM Windows Eudora Pro Version 4.1 Date: Fri, 18 Jun 1999 09:34:14 -0500 To: rusrabe@XXXXXXXXXXXXXXXXXXXXXXXXXX From: William Gropp Subject: Re: MPI_PROC_NULL as target rank in RMA Cc: mpi-core@XXXXXXXXXXX In-Reply-To: <199906180724.JAA16277@XXXXXXXXXXXXXXXXXXXXXXXXXX> References: <4.1.19990617130027.00bede50@XXXXXXXXX> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-mpi-core@XXXXXXXXXXX Precedence: bulk X-UIDL: e7d47de4652eeda698494757dee4d67f At 09:24 AM 6/18/99 +0200, Rolf Rabenseifner wrote: >Bill Gropp wrote: >> Is it invalid to use MPI_PROC_NULL as the target rank in MPI_Put, MPI_Get, >> and MPI_Accumulate? I can make the case both for and against this, based >> on the text in the standard. It would match the spirit of the standard >> (which says that MPI_PUT is like a send at the origin and a receive at the >> target) to allow MPI_PROC_NULL. >> >> Bill > > >My vote is to allow MPI_PROC_NULL in MPI_PUT, MPI_GET >and MPI_ACCUMULATE. > >My reasons are: > >- MPI 2.0 page 115:1-4 "The data transfer [of MPI_PUT] is the same > as that which would occur if the origin process executed a send > operation with arguments ... target_rank, ... and the target > process executed a receive operation with arguments ... source, ..." > > in combination with > > MPI 1.1 page 60:47-48 "The special value MPI_PROC_NULL can be > used instead of a rank whereever a source or destination argument > is required." Yes, these are the arguments in favor that I was refering to. The argument against allowing MPI_PROC_NULL is that the target_rank is defined as a non-negative integer for the one-sided routines, rather than integer, as it is for the point-to-point routines. Most (if not all) implementations make MPI_PROC_NULL a negative value rather than a large (hopefully larger than any possible communicator size) positive value. One can also argue the the MPI 1.1 statement refers to the MPI 1.1 communication routines, not the MPI 2 routines. This may seem like nit-picking (because it is), but I've seen less used to justify particular implementation choices. I'd like to see a clarification that the target_rank is either MPI_PROC_NULL, or a valid rank in the group of the window, and is of type integer, not non-negative integer. Bill