Jeff, Good to know. Thanks!
Seems really like MPI_ABORT should only be used within error traps after MPI functions have been started. Code-wise, the sample I got was not the best. Usage should be checked before MPI_Initialize, I think :) It seems the expectation is that MPI_ABORT is only called when the user should be notified something went haywire. Brian Andrus ITACS/Research Computing Naval Postgraduate School Monterey, California voice: 831-656-6238 > -----Original Message----- > From: users [mailto:users-boun...@open-mpi.org] On Behalf Of Jeff > Squyres (jsquyres) > Sent: Wednesday, November 06, 2013 11:30 AM > To: Open MPI Users > Subject: Re: [OMPI users] proper use of MPI_Abort > > I just checked the v1.7 series -- it looks like we have cleaned up this > message a bit. With your code snipit: > > ----- > ❯❯❯ mpicc abort.c -o abort && mpirun -np 4 abort > > *# Usage: mpicpy -input <filename> > > -------------------------------------------------------------------------- > MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD > with errorcode 1. > > NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. > You may or may not see output from other processes, depending on exactly > when Open MPI kills them. > -------------------------------------------------------------------------- > ---- > > Notice the lack of the 2nd message. > > So I think the answer here is: it's fixed in the 1.7.x series. It is > unlikely to be > fixed in the 1.6.x series. > > > > On Nov 5, 2013, at 3:16 PM, "Andrus, Brian Contractor" <bdand...@nps.edu> > wrote: > > > Jeff, > > > > We are using the latest version: 1.6.5 > > > > > > Brian Andrus > > ITACS/Research Computing > > Naval Postgraduate School > > Monterey, California > > voice: 831-656-6238 > > > > > > > >> -----Original Message----- > >> From: users [mailto:users-boun...@open-mpi.org] On Behalf Of Jeff > >> Squyres (jsquyres) > >> Sent: Tuesday, November 05, 2013 5:11 AM > >> To: Open MPI Users > >> Subject: Re: [OMPI users] proper use of MPI_Abort > >> > >> You're correct -- you don't need to call MPI_Finalize after MPI_Abort. > >> > >> Can you cite what version of Open MPI you are using? > >> > >> > >> On Nov 4, 2013, at 9:01 AM, "Andrus, Brian Contractor" > >> <bdand...@nps.edu> > >> wrote: > >> > >>> All, > >>> > >>> I have some sample code that has a syntax message and then an > >> MPI_Abort call if the program is run without the required parameters. > >>> ------snip--------------- > >>> if (!rank) { > >>> i = 1; > >>> while ((i < argc) && strcmp("-input", *argv)) { > >>> i++; > >>> argv++; > >>> } > >>> if (i >= argc) { > >>> fprintf(stderr, "\n*# Usage: mpicpy -input <filename> \n\n"); > >>> MPI_Abort(MPI_COMM_WORLD, 1); > >>> } > >>> ----------snip--------------- > >>> > >>> This is all well and good and it does provide the usage line, but it > >>> also > >> throws quite a message in addition: > >>> > >>> -------------------------------------------------------------------- > >>> -- > >>> ---- MPI_ABORT was invoked on rank 0 in communicator > >> MPI_COMM_WORLD > >>> with errorcode 1. > >>> > >>> NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. > >>> You may or may not see output from other processes, depending on > >>> exactly when Open MPI kills them. > >>> -------------------------------------------------------------------- > >>> -- > >>> ---- > >>> -------------------------------------------------------------------- > >>> -- > >>> ---- mpirun has exited due to process rank 0 with PID 40209 on node > >>> compute-3-3 exiting improperly. There are two reasons this could occur: > >>> > >>> 1. this process did not call "init" before exiting, but others in > >>> the job did. This can cause a job to hang indefinitely while it > >>> waits for all processes to call "init". By rule, if one process > >>> calls "init", then ALL processes must call "init" prior to termination. > >>> > >>> 2. this process called "init", but exited without calling "finalize". > >>> By rule, all processes that call "init" MUST call "finalize" prior > >>> to exiting or it will be considered an "abnormal termination" > >>> > >>> This may have caused other processes in the application to be > >>> terminated by signals sent by mpirun (as reported here). > >>> -------------------------------------------------------------------- > >>> -- > >>> ---- > >>> > >>> Is there a proper way to use MPI_Abort such that it will not trigger > >>> such a > >> message? > >>> It almost seems that MPI_Abort should be calling MPI_Finalize as a > >>> rule, or > >> openmpi should recognize MPI_Abort is the exception to requiring > >> MPI_Finalize. > >>> > >>> > >>> > >>> Brian Andrus > >>> ITACS/Research Computing > >>> Naval Postgraduate School > >>> Monterey, California > >>> voice: 831-656-6238 > >>> > >>> > >>> _______________________________________________ > >>> users mailing list > >>> us...@open-mpi.org > >>> http://www.open-mpi.org/mailman/listinfo.cgi/users > >> > >> > >> -- > >> Jeff Squyres > >> jsquy...@cisco.com > >> For corporate legal information go to: > >> http://www.cisco.com/web/about/doing_business/legal/cri/ > >> > >> _______________________________________________ > >> users mailing list > >> us...@open-mpi.org > >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users