dwww Home | Manual pages | Find package

MPI_Finalize(3)                    Open MPI                    MPI_Finalize(3)

NAME
       MPI_Finalize  - Terminates MPI execution environment.

SYNTAX
C Syntax
       #include <mpi.h>
       int MPI_Finalize()

Fortran Syntax
       USE MPI
       ! or the older form: INCLUDE 'mpif.h'
       MPI_FINALIZE(IERROR)
            INTEGER   IERROR

Fortran 2008 Syntax
       USE mpi_f08
       MPI_Finalize(ierror)
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

C++ Syntax
       #include <mpi.h>
       void Finalize()

OUTPUT PARAMETER
       IERROR    Fortran only: Error status (integer).

DESCRIPTION
       This  routine cleans up all MPI states. Once this routine is called, no
       MPI routine (not even MPI_Init) may be called, except for  MPI_Get_ver-
       sion,  MPI_Initialized, and MPI_Finalized. Unless there has been a call
       to MPI_Abort, you must ensure that all pending communications involving
       a  process  are  complete before the process calls MPI_Finalize. If the
       call returns, each process may either continue  local  computations  or
       exit  without  participating  in  further communication with other pro-
       cesses. At the moment when the last  process  calls  MPI_Finalize,  all
       pending  sends  must  be matched by a receive, and all pending receives
       must be matched by a send.

       MPI_Finalize is collective over all connected  processes.  If  no  pro-
       cesses were spawned, accepted, or connected, then this means it is col-
       lective over MPI_COMM_WORLD. Otherwise, it is collective over the union
       of all processes that have been and continue to be connected.

NOTES
       All processes must call this routine before exiting. All processes will
       still exist but may not make any further MPI calls. MPI_Finalize  guar-
       antees  that  all local actions required by communications the user has
       completed will, in fact, occur before it returns. However, MPI_Finalize
       guarantees nothing about pending communications that have not been com-
       pleted; completion is ensured only by MPI_Wait,  MPI_Test,  or  MPI_Re-
       quest_free combined with some other verification of completion.

       For  example,  a successful return from a blocking communication opera-
       tion or from MPI_Wait or MPI_Test means that the communication is  com-
       pleted by the user and the buffer can be reused, but does not guarantee
       that the local process has no more work to do. Similarly, a  successful
       return  from  MPI_Request_free  with  a  request handle generated by an
       MPI_Isend nullifies the handle but does not guarantee that  the  opera-
       tion  has completed. The MPI_Isend is complete only when a matching re-
       ceive has completed.

       If you would like to cause actions to happen when a  process  finishes,
       attach  an  attribute  to MPI_COMM_SELF with a callback function. Then,
       when MPI_Finalize is called, it will first execute the equivalent of an
       MPI_Comm_free  on  MPI_COMM_SELF.  This  will cause the delete callback
       function to be executed on all keys associated with MPI_COMM_SELF in an
       arbitrary  order. If no key has been attached to MPI_COMM_SELF, then no
       callback is invoked. This freeing of MPI_COMM_SELF happens  before  any
       other parts of MPI are affected. Calling MPI_Finalized will thus return
       "false" in any of these callback functions. Once  you  have  done  this
       with MPI_COMM_SELF, the results of MPI_Finalize are not specified.

ERRORS
       Almost  all MPI routines return an error value; C routines as the value
       of the function and Fortran routines in the last  argument.  C++  func-
       tions  do  not  return  errors.  If the default error handler is set to
       MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
       will be used to throw an MPI::Exception object.

       Before  the  error  value is returned, the current MPI error handler is
       called. By default, this error handler aborts the MPI job,  except  for
       I/O   function   errors.   The   error  handler  may  be  changed  with
       MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
       may  be  used  to cause error values to be returned. Note that MPI does
       not guarantee that an MPI program can continue past an error.

SEE ALSO
       MPI_Init
       MPI_Init_thread
       MPI_Initialized
       MPI_Finalized

4.1.2                            Nov 24, 2021                  MPI_Finalize(3)

Generated by dwww version 1.14 on Mon Jan 27 10:06:19 CET 2025.