MPIOpen 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.
The MPI specification was developed by the MPI Forum, a group of software developers, computer vendors, academics, and computer-science researchers whose goal was to develop a standard for writing message-passing programs that would be efficient, flexible, and portable.
The outcome, known as the MPI Standard, was first published in 1993; its most recent version (MPI-2) was published in July 1997. Open MPI 1.2 includes all MPI 1.2-compliant and MPI 2-compliant routines.
For more information about Open MPI, see the following URL:
The MPI standards are available at the following URL:
MAN PAGE SYNTAXMan pages for Open MPI and Open MPI I/O routines are named according to C syntax, that is, 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, for example, "MPI_Comm_get_attr".
ENVIRONMENTTo fine-tune your Open MPI environment, you can either use arguments to the mpirun, orterun, or mpiexec commands, or you can use MCA parameters.
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:
ERRORSAll MPI routines (except MPI_Wtime and MPI_Wtick) return an error value; C routines as the value of the function and Fortran routines 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.
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. 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 Invalid MPI_Request handle. MPI_ERR_ROOT 7 Invalid root. MPI_ERR_GROUP 8 Null group passed to function. MPI_ERR_OP 9 Invalid operation. MPI_ERR_TOPOLOGY 10 Invalid topology. MPI_ERR_DIMS 11 Illegal dimension argument. MPI_ERR_ARG 12 Invalid argument. MPI_ERR_UNKNOWN 13 Unknown error. MPI_ERR_TRUNCATE 14 Message truncated on receive. MPI_ERR_OTHER 15 Other error; use Error_string. MPI_ERR_INTERN 16 Internal error code. MPI_ERR_IN_STATUS 17 Look in status for error value. MPI_ERR_PENDING 18 Pending request. MPI_ERR_ACCESS 19 Permission denied. MPI_ERR_AMODE 20 Unsupported amode passed to open. MPI_ERR_ASSERT 21 Invalid assert. MPI_ERR_BAD_FILE 22 Invalid file name (for example, path name too long). MPI_ERR_BASE 23 Invalid base. MPI_ERR_CONVERSION 24 An error occurred in a user-supplied data-conversion function. MPI_ERR_DISP 25 Invalid displacement. MPI_ERR_DUP_DATAREP 26 Conversion functions could not be registered because a data representation identifier that was already defined was passed to MPI_REGISTER_DATAREP. MPI_ERR_FILE_EXISTS 27 File exists. MPI_ERR_FILE_IN_USE 28 File operation could not be completed, as the file is currently open by some process. MPI_ERR_FILE 29 MPI_ERR_INFO_KEY 30 Illegal info key. MPI_ERR_INFO_NOKEY 31 No such key. MPI_ERR_INFO_VALUE 32 Illegal info value. MPI_ERR_INFO 33 Invalid info object. MPI_ERR_IO 34 I/O error. MPI_ERR_KEYVAL 35 Illegal key value. MPI_ERR_LOCKTYPE 36 Invalid locktype. MPI_ERR_NAME 37 Name not found. MPI_ERR_NO_MEM 38 Memory exhausted. MPI_ERR_NOT_SAME 39 MPI_ERR_NO_SPACE 40 Not enough space. MPI_ERR_NO_SUCH_FILE 41 File (or directory) does not exist. MPI_ERR_PORT 42 Invalid port. MPI_ERR_QUOTA 43 Quota exceeded. MPI_ERR_READ_ONLY 44 Read-only file system. MPI_ERR_RMA_CONFLICT 45 Conflicting accesses to window. MPI_ERR_RMA_SYNC 46 Erroneous RMA synchronization. MPI_ERR_SERVICE 47 Invalid publish/unpublish. MPI_ERR_SIZE 48 Invalid size. MPI_ERR_SPAWN 49 Error spawning. MPI_ERR_UNSUPPORTED_DATAREP 50 Unsupported datarep passed to MPI_File_set_view. MPI_ERR_UNSUPPORTED_OPERATION 51 Unsupported operation, such as seeking on a file that supports only sequential access. MPI_ERR_WIN 52 Invalid window. MPI_ERR_LASTCODE 53 Last error code. MPI_ERR_SYSRESOURCE -2 Out of resources