From: "Rolf Rabenseifner" Date: January 22, 2008 9:56:11 AM CST To: mpi-21@XXXXXXXXXXXXX Subject: Re: [mpi-21] Re: MPI-2 MPI_Comm_spawn inconsistency Reply-To: mpi-21@XXXXXXXXXXXXX If the MPI-Forum would decide to not return the error codes on the non-root processes, then this would be a interface change that may break existing application code (although I expect that most are using default abort on errors). Therefore, it cannot be part of MPI 2.1. MPI 2.1 makes mainly clarifications and error corrections (typos, inconsistencies). MPI-2 page 84 line 45 defines array_of_errcodes without saying "significant only at root". Your question may be still senseful! For me, it implies another question: Is it allowed that some processes are passing an array_of_errcodes while some other processes are passing MPI_ERRCODES_IGNORE? Allowing this, would not break user codes. Therefore, the proposed advice should be more clear: Proposal for MPI 2.1, Ballot 4 (2nd version): --------------------------------------------- Add in MPI-2.0, page 88, after line 24: Advice to users. If the non-root processes do not use MPI_ERRCODES_IGNORE, then they have to allocate the appropriate number of entries (see maxproc at root) in the array_of_errcodes although the maxproc argument is unused in non-root processes. It is allowed to use an array_of_errcodes at some of the calling processes and MPI_ERRCODES_IGNORE at some others. (End of advice to users.) ------------------------------- But we should also vote on your "proposal": Alternative-proposal for MPI 2.1, Ballot 4: ------------------------------------------- MPI 2.0 page 84 line 45 reads (in MPI_COMM_SPAWN): OUT array_of_errcodes one code per process (array of integer) but should read: OUT array_of_errcodes one code per process (array of integer, significant only at root) MPI 2.0 page 89 line 42 reads (in MPI_COMM_SPAWN_MULTIPLE): OUT array_of_errcodes one code per process (array of integer) but should read: OUT array_of_errcodes one code per process (array of integer, significant only at root) Another reason, not to do this modification, is that the non-root processes have no chance (in error-return-mode) to detect an error. And after an error, MPI does not guarantee that MPI communication still works. Only MPI_Abort should be guaranteed to work. Best regards Rolf On Fri, 18 Jan 2008 17:43:47 -0300 "Lisandro Dalcin" wrote:> On 1/18/08, Rolf Rabenseifner wrote:>> This is a proposal for MPI 2.1, Ballot 4. >> Significance of non-root arguments to MPI_COMM_SPAWN >> Proposal for MPI 2.1, Ballot 4: >> If the non-root processes do not use MPI_ERRCODES_IGNORE, >> then they have to allocate the appropriate number of entries > > Are you propossing that the root process have to implicitely inform > all other processes in comm group if an error occured? > > Is'nt it better to return error codes only at root, and let the > programmer take the decision if that information should be broadcasted > to other procs in group? > > Perhaps I missing something, but I would prefer to make > array_of_errcodes only relevant at root, and filled-in only at root, > and others procs in comm group just ignore this entry. > > > -- > Lisandro Dalc’n > --------------- > Centro Internacional de MŽtodos Computacionales en Ingenier’a > (CIMEC) > Instituto de Desarrollo Tecnol—gico para la Industria Qu’mica > (INTEC) > Consejo Nacional de Investigaciones Cient’ficas y TŽcnicas (CONICET) > PTLC - GŸemes 3450, (3000) Santa Fe, Argentina > Tel/Fax: +54-(0)342-451.1594 > Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner@XXXXXXX High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner Nobelstr. 19, D-70550 Stuttgart, Germany . (Office: Allmandring 30)