Date: Fri, 30 Jul 1999 18:26:34 -0500 (EST) From: Jeff Squyres To: mpi-core@XXXXXXXXXXX Subject: MPI-2 MPI_Comm_spawn inconsistency X-URL: http://www.cse.nd.edu/~jsquyres/ MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-mpi-core@XXXXXXXXXXX Precedence: bulk X-UIDL: eff265800ae41ffbb919c16155c530c5 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. Is array_of_errorcodes only supposed to be significant at the root, or is maxprocs supposed to be the same on all nodes? I don't see this in the MPI-2 errata on the mpi-forum web site. {+} Jeff Squyres {+} squyres@XXXXXXXXXX {+} Perpetual Obsessive Notre Dame Student Craving Utter Madness {+} "I came to ND for 4 years and ended up staying for a decade"