Received: from mcs.anl.gov (cliff-9.mcs.anl.gov [140.221.9.17]) by antares.mcs.anl.gov (8.6.10/8.6.10) with ESMTP id PAA29781; Sun, 1 Aug 1999 15:10:58 -0500 Received: (from listserv@localhost) by mcs.anl.gov (8.9.3/8.9.3) id PAA46870 for mpi-core-outgoing; Sun, 1 Aug 1999 15:09:14 -0500 Received: from antares.mcs.anl.gov (antares.mcs.anl.gov [140.221.9.6]) by mcs.anl.gov (8.9.3/8.9.3) with SMTP id PAA25222 for ; Sun, 1 Aug 1999 15:09:13 -0500 Received: from gropp (gropp-9.mcs.anl.gov [140.221.9.25]) by antares.mcs.anl.gov (8.6.10/8.6.10) with ESMTP id PAA29776; Sun, 1 Aug 1999 15:09:50 -0500 Message-Id: <4.2.0.58.19990801145930.00c7c1e0@localhost> X-Sender: gropp@localhost X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 Date: Sun, 01 Aug 1999 15:13:04 -0500 To: Jeff Squyres From: William Gropp Subject: Re: MPI-2 MPI_Comm_spawn inconsistency Cc: mpi-core@mcs.anl.gov In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Sender: owner-mpi-core@mcs.anl.gov Precedence: bulk X-UIDL: 13e5a1422b1520a150cbe9f8a0b08e6b At 06:26 PM 7/30/99 -0500, Jeff Squyres wrote: I think we came across a conflict in the MPI-2 standard today (gasp!). In looking at MPI_Comm_spawn[_multiple] the other day, we noticed that one of the parameters doesn't seem to make sense for non-root ranks. Let me refresh your memory of MPI_Comm_spawn (MC_Spawn_multiple is similar, so we'll just use MC_spawn here): MPI_Comm_spawn(IN command, IN argv, IN maxprocs, IN info, IN root, IN comm, OUT intercomm, OUT array_of_errorcodes) command, argv, maxprocs, and info are specifically denoted as "significant only at root". After calling MPI_Comm_spawn (which is collective across comm), everyone gets a new intercomm to communicate with the spawned children. Everyone is also supposed to also get an array of errorcodes that represent the return codes from spawning each of the maxprocs children. MPI-2 88:13 specifically says, "The array_of_errorcodes is an array of length maxprocs..." But maxprocs is only significant at the root -- so the non-root members of comm may not know what maxprocs is. Hence, they might not know how long array_of_errorcodes is supposed to be. Recall that in true MPI fashion, the user is responsible for allocating array_of_errorcodes; this can be pretty hard to do if you don't know how long it needs to be. So this doesn't seem to make sense. Significant at the root only means that that argument is ignored except by the designated root process (in order to avoid confusion over which value to use if different processes provided different values). We can still require that the arrays representing other arguments have the appropriate sizes. Bill