Return-Path: Received: (from listserv@localhost) by mcs.anl.gov (8.9.3/8.9.3) id JAA51082 for mpi-core-outgoing; Thu, 27 Jan 2000 09:15:37 -0600 Received: from gropp (fire.mcs.anl.gov [140.221.9.181]) by mcs.anl.gov (8.9.3/8.9.3) with ESMTP id JAA51030; Thu, 27 Jan 2000 09:12:36 -0600 Message-Id: <4.2.0.58.20000127091104.00ad2360@localhost> X-Sender: gropp@localhost X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 Date: Thu, 27 Jan 2000 09:16:18 -0600 To: raja@rsn.hp.com From: William Gropp Subject: Re: MPI_PROC_NULL in MPI_GROUP_TRANSLATE_RANKS Cc: mpi-core@mcs.anl.gov In-Reply-To: <20000127075645.C83B7128B6@atlrel1.hp.com> References: <8525686C.005C114D.00@D51MTA03.pok.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-mpi-core@mcs.anl.gov Precedence: bulk At 01:56 AM 1/27/00 -0600, Raja Daoud wrote: > I have not reviewed the statements in the standard but from a "what makes > sense" perspective I think MPI_GROUP_TRANSLATE_RANKS should happily > translate MPI_PROC_NULL to MPI_PROC_NULL. This would make the function friendlier. It looks like we may actually have sufficient wiggle-room to allow it via a "clarification" to the standard, and not have to mess with an "extension." The description of the "ranks1" array of MPI_GROUP_TRANSLATE_RANKS, page 138, line 5, is: "array of zero or more valid ranks in group1." The text of the function does not elaborate on this. In contrast, the text of MPI_GROUP_INCL is specific (page 140, lines 44-45): "Each of the n elements of ranks must be a valid rank in group ..." So the "zero or more" can be interpreted as allowing invalid ranks to be translated without triggering an error. So the clarification would only need to clamp down on how to translate the invalid ranks in a standard way, fixing this omission in the spec. For example, we could have MPI_PROC_NULL map to itself, and all other invalid ranks, including MPI_UNDEFINED, map to MPI_UNDEFINED. MPI_UNDEFINED is used in to indicate ranks that are valid in the first group but have no corresponding rank in the second group; this shouldn't be the same as "invalid in the first group". I'll go along with the first half, though. The real question is "Is MPI_PROC_NULL a valid rank in general, or only in communication-related routines"? Certainly in translate ranks, mapping MPI_PROC_NULL to MPI_PROC_NULL is sensible. Bill