MPI(3)
MPI(3) β Open MPI general-information page, but make it cute π
π NAME π
MPIβGeneral information Open MPI gitclone.β yes, thatβs the name line, bestie, and weβre keeping it exactly. π
π MPI π
Okay so Open MPI is an open source implementation of MPI (message-passing interface) β the industry-standard specification for writing message-passing programs. Message passing is a programming model that gives the programmer explicit control over interprocess communication. You get the controls, bestie. ποΈβ¨
The MPI specification was developed by the MPI Forum: a group of software developers, computer vendors, academics, and computer-science researchers. Their goal was to develop a standard for writing message-passing programs that would be efficient, flexible, and portable. Iconic committee behavior, honestly. π
The outcome, known as the MPI Standard, was first published in 1993; its most recent version (MPI-2) was published in July 1997. And Open MPI 1.2 includes all MPI 1.2-compliant and MPI 2-compliant routines. Periodt. π
For more information about Open MPI, see the following URL:
http://www.open-mpi.org
The MPI standards are available at the following URL:
http://www.mpi-forum.org
β¨ MAN PAGE SYNTAX β¨
Man pages for Open MPI and Open MPI I/O routines are named according to C syntax. That means they begin with the prefix MPI_, all in uppercase, and the first letter following the MPI_ prefix is also uppercase. The rest of the letters in the routine are all lowercase. Example: MPI_Comm_get_attr. The way that naming scheme is so consistent β obsessed. π¦
πΈ ENVIRONMENT πΈ
To fine-tune your Open MPI environment, you have two routes, bestie: use arguments to the mpirun, orterun, or mpiexec commands, or use MCA parameters. Choose your fighter. πΈ
For more information on arguments, see the orterun.1 man page.
For a complete listing of MCA parameters and their descriptions, issue the command ompi_info -h or ompi_info -param all all. This information also appears in the FAQ on the Open MPI web site at:
http://www.open-mpi.org/faq/?category=tuning#mca-params
π₯ ERRORS π₯
All MPI routines (except MPI_Wtime and MPI_Wtick) return an error value. C routines return it as the value of the function; Fortran routines return it in the last argument. Before the value is returned, the current MPI error handler is called. By default, this error handler aborts the MPI job. 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. π
π¨ Read that again, bestie: by default, errors abort the job, and MPI does not guarantee that an MPI program can continue past an error. Thatβs not a vibe, thatβs a caveat. π
For more information on Open MPI error codes, see mpi.h in the include directory.
Standard error return classes for Open MPI:
MPI_SUCCESSβ0β Successful return code. Slay. β¨MPI_ERR_BUFFERβ1β Invalid buffer pointer.MPI_ERR_COUNTβ2β Invalid count argument.MPI_ERR_TYPEβ3β Invalid datatype argument.MPI_ERR_TAGβ4β Invalid tag argument.MPI_ERR_COMMβ5β Invalid communicator.MPI_ERR_RANKβ6β Invalid rank.MPI_ERR_REQUESTβ7β InvalidMPI_Requesthandle.MPI_ERR_ROOTβ8β Invalid root.MPI_ERR_GROUPβ9β Null group passed to function.MPI_ERR_OPβ10β Invalid operation.MPI_ERR_TOPOLOGYβ11β Invalid topology.MPI_ERR_DIMSβ12β Illegal dimension argument.MPI_ERR_ARGβ13β Invalid argument.MPI_ERR_UNKNOWNβ14β Unknown error.MPI_ERR_TRUNCATEβ15β Message truncated on receive.MPI_ERR_OTHERβ16β Other error; useError_string.MPI_ERR_INTERNβ17β Internal error code.MPI_ERR_IN_STATUSβ18β Look in status for error value.MPI_ERR_PENDINGβ19β Pending request.MPI_ERR_ACCESSβ20β Permission denied.MPI_ERR_AMODEβ21β Unsupported amode passed to open.MPI_ERR_ASSERTβ22β Invalid assert.MPI_ERR_BAD_FILEβ23β Invalid file name (for example, path name too long).MPI_ERR_BASEβ24β Invalid base.MPI_ERR_CONVERSIONβ25β An error occurred in a user-supplied data-conversion function.MPI_ERR_DISPβ26β Invalid displacement.MPI_ERR_DUP_DATAREPβ27β Conversion functions could not be registered because a data representation identifier that was already defined was passed toMPI_REGISTER_DATAREP.MPI_ERR_FILE_EXISTSβ28β File exists.MPI_ERR_FILE_IN_USEβ29β File operation could not be completed, as the file is currently open by some process.MPI_ERR_FILEβ30β Invalid file handle.MPI_ERR_INFO_KEYβ31β Illegal info key.MPI_ERR_INFO_NOKEYβ32β No such key.MPI_ERR_INFO_VALUEβ33β Illegal info value.MPI_ERR_INFOβ34β Invalid info object.MPI_ERR_IOβ35β I/O error.MPI_ERR_KEYVALβ36β Illegal key value.MPI_ERR_LOCKTYPEβ37β Invalid locktype.MPI_ERR_NAMEβ38β Name not found.MPI_ERR_NO_MEMβ39β Memory exhausted.MPI_ERR_NOT_SAMEβ40β Collective argument not identical on all processes, or collective routines called in a different order by different processes.MPI_ERR_NO_SPACEβ41β Not enough space.MPI_ERR_NO_SUCH_FILEβ42β File (or directory) does not exist.MPI_ERR_PORTβ43β Invalid port.MPI_ERR_QUOTAβ44β Quota exceeded.MPI_ERR_READ_ONLYβ45β Read-only file system.MPI_ERR_RMA_CONFLICTβ46β Conflicting accesses to window.MPI_ERR_RMA_SYNCβ47β Erroneous RMA synchronization.MPI_ERR_SERVICEβ48β Invalid publish/unpublish.MPI_ERR_SIZEβ49β Invalid size.MPI_ERR_SPAWNβ50β Error spawning.MPI_ERR_UNSUPPORTED_DATAREPβ51β Unsupported datarep passed toMPI_File_set_view.MPI_ERR_UNSUPPORTED_OPERATIONβ52β Unsupported operation, such as seeking on a file that supports only sequential access.MPI_ERR_WINβ53β Invalid window.MPI_T_ERR_MEMORYβ54β Out of memory.MPI_T_ERR_NOT_INITIALIZEDβ55β Interface not initialized.MPI_T_ERR_CANNOT_INITβ56β Interface not in the state to be initialized.MPI_T_ERR_INVALID_INDEXβ57β The enumeration index is invalid.MPI_T_ERR_INVALID_ITEMβ58β The item index queried is out of range.MPI_T_ERR_INVALID_HANDLEβ59β The handle is invalid.MPI_T_ERR_OUT_OF_HANDLESβ60β No more handles available.MPI_T_ERR_OUT_OF_SESSIONSβ61β No more sessions available.MPI_T_ERR_INVALID_SESSIONβ62β Session argument is not a valid session.MPI_T_ERR_CVAR_SET_NOT_NOWβ63β Variable cannot be set at this moment.MPI_T_ERR_CVAR_SET_NEVERβ64β Variable cannot be set until end of execution.MPI_T_ERR_PVAR_NO_STARTSTOPβ65β Variable cannot be started or stopped.MPI_T_ERR_PVAR_NO_WRITEβ66β Variable cannot be written or reset.MPI_T_ERR_PVAR_NO_ATOMICβ67β Variable cannot be read and written atomically.MPI_ERR_RMA_RANGEβ68β Target memory is not part of the window (in the case of a window created withMPI_WIN_CREATE_DYNAMIC, target memory is not attached).MPI_ERR_RMA_ATTACHβ69β Memory cannot be attached (e.g., because of resource exhaustion).MPI_ERR_RMA_FLAVORβ70β Passed window has the wrong flavor for the called function.MPI_ERR_RMA_SHAREDβ71β Memory cannot be shared (e.g., some process in the group of the specified communicator cannot expose shared memory).MPI_T_ERR_INVALIDβ72β Invalid use of the interface or bad parameter values(s).MPI_T_ERR_INVALID_NAMEβ73β The variable or category name is invalid.MPI_ERR_LASTCODEβ93β Last error code.
Footer sign-off, bestie: source/version is gitclone, the build label is Unreleased developer copy, and it points at MPI(3) β no date is listed in the footer, so donβt @ me for a timestamp. πβ¨π«Ά
π¦ where this page comes from
- arch rolling: nvhpc-comm-libs 26.9-1 Β· LicenseRef-NVIDIA-HPC-SDK
- Copyright 2008 Sun Microsystems, Inc
- Copyright (c) 1996 Thinking Machines Corporation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms