|
| 1 | +# NAME |
| 2 | + |
| 3 | +Open MPI - General information |
| 4 | + |
| 5 | +# OPEN MPI |
| 6 | + |
| 7 | +Open MPI is an open source implementation of MPI (message-passing |
| 8 | +interface), the industry-standard specification for writing |
| 9 | +message-passing programs. Message passing is a programming model that |
| 10 | +gives the programmer explicit control over interprocess communication. |
| 11 | + |
| 12 | +The MPI specification was developed by the MPI Forum, a group of |
| 13 | +software developers, computer vendors, academics, and computer-science |
| 14 | +researchers whose goal was to develop a standard for writing |
| 15 | +message-passing programs that would be efficient, flexible, and |
| 16 | +portable. |
| 17 | + |
| 18 | +The outcome, known as the MPI Standard, was first published in 1993; its |
| 19 | +most recent version (MPI-2) was published in July 1997. Open MPI 1.2 |
| 20 | +includes all MPI 1.2-compliant and MPI 2-compliant routines. |
| 21 | + |
| 22 | +For more information about Open MPI, see |
| 23 | +[https://www.open-mpi.org](https://www.open-mpi.org). |
| 24 | + |
| 25 | +The MPI standards are available at |
| 26 | +[https://www.mpi-forum.org](https://www.mpi-forum.org). |
| 27 | + |
| 28 | +# MAN PAGE SYNTAX |
| 29 | + |
| 30 | +Man pages for Open MPI and Open MPI I/O routines are named according to |
| 31 | +C syntax, that is, they begin with the prefix `MPI_`, all in |
| 32 | +uppercase, and the first letter following the `MPI_` prefix is also |
| 33 | +uppercase. The rest of the letters in the routine are all lowercase, for |
| 34 | +example, `MPI_Comm_get_attr`. |
| 35 | + |
| 36 | +# ENVIRONMENT |
| 37 | + |
| 38 | +To fine-tune your Open MPI environment, you can either use arguments |
| 39 | +to the `mpirun` or `mpiexec` commands, or you can use MCA parameters. |
| 40 | + |
| 41 | +For more information on arguments, see the `mpirun`(1) man page. |
| 42 | + |
| 43 | +For a complete listing of MCA parameters and their descriptions, issue |
| 44 | +the command `ompi_info --all`. This information also appears in the |
| 45 | +FAQ on the Open MPI web site at |
| 46 | +[https://www.open-mpi.org/faq/?category=tuning#mca-params](https://www.open-mpi.org/faq/?category=tuning#mca-params). |
| 47 | + |
| 48 | +# ERRORS |
| 49 | + |
| 50 | +All MPI routines (except `MPI_Wtime` and `MPI_Wtick`) return an error |
| 51 | +value; C routines as the value of the function and Fortran routines in |
| 52 | +the last argument. Before the value is returned, the current MPI error |
| 53 | +handler is called. By default, this error handler aborts the MPI job. |
| 54 | +The error handler may be changed with `MPI_Comm_set_errhandler`; the |
| 55 | +predefined error handler `MPI_ERRORS_RETURN` may be used to cause error |
| 56 | +values to be returned. Note that MPI does not guarantee that an MPI |
| 57 | +program can continue past an error. |
| 58 | + |
| 59 | +For more information on Open MPI error codes, see `mpi.h` in the |
| 60 | +`include` directory. |
| 61 | + |
| 62 | +Standard error return classes for Open MPI: |
| 63 | + |
| 64 | +| Error name | Error value | Description | |
| 65 | +|---|---|---| |
| 66 | +| MPI_SUCCESS | 0 | Successful return code. | |
| 67 | +| MPI_ERR_BUFFER | 1 | Invalid buffer pointer. | |
| 68 | +| MPI_ERR_COUNT | 2 | Invalid count argument. | |
| 69 | +| MPI_ERR_TYPE | 3 | Invalid datatype argument. | |
| 70 | +| MPI_ERR_TAG | 4 | Invalid tag argument. | |
| 71 | +| MPI_ERR_COMM | 5 | Invalid communicator. | |
| 72 | +| MPI_ERR_RANK | 6 | Invalid rank. | |
| 73 | +| MPI_ERR_REQUEST | 7 | Invalid MPI_Request handle. | |
| 74 | +| MPI_ERR_ROOT | 8 | Invalid root. | |
| 75 | +| MPI_ERR_GROUP | 9 | Null group passed to function. | |
| 76 | +| MPI_ERR_OP | 10 | Invalid operation. | |
| 77 | +| MPI_ERR_TOPOLOGY | 11 | Invalid topology. | |
| 78 | +| MPI_ERR_DIMS | 12 | Illegal dimension argument. | |
| 79 | +| MPI_ERR_ARG | 13 | Invalid argument. | |
| 80 | +| MPI_ERR_UNKNOWN | 14 | Unknown error. | |
| 81 | +| MPI_ERR_TRUNCATE | 15 | Message truncated on receive. | |
| 82 | +| MPI_ERR_OTHER | 16 | Other error; use Error_string. | |
| 83 | +| MPI_ERR_INTERN | 17 | Internal error code. | |
| 84 | +| MPI_ERR_IN_STATUS | 18 | Look in status for error value. | |
| 85 | +| MPI_ERR_PENDING | 19 | Pending request. | |
| 86 | +| MPI_ERR_ACCESS | 20 | Permission denied. | |
| 87 | +| MPI_ERR_AMODE | 21 | Unsupported amode passed to open. | |
| 88 | +| MPI_ERR_ASSERT | 22 | Invalid assert. | |
| 89 | +| MPI_ERR_BAD_FILE | 23 | Invalid file name (for example, path name too long). | |
| 90 | +| MPI_ERR_BASE | 24 | Invalid base. | |
| 91 | +| MPI_ERR_CONVERSION | 25 | An error occurred in a user-supplied data-conversion function. | |
| 92 | +| MPI_ERR_DISP | 26 | Invalid displacement. | |
| 93 | +| MPI_ERR_DUP_DATAREP | 27 | Conversion functions could not be registered because a data representation identifier that was already defined was passed to MPI_REGISTER_DATAREP. | |
| 94 | +| MPI_ERR_FILE_EXISTS | 28 | File exists. | |
| 95 | +| MPI_ERR_FILE_IN_USE | 29 | File operation could not be completed, as the file is currently open by some process. | |
| 96 | +| MPI_ERR_FILE | 30 | Invalid file handle. | |
| 97 | +| MPI_ERR_INFO_KEY | 31 | Illegal info key. | |
| 98 | +| MPI_ERR_INFO_NOKEY | 32 | No such key. | |
| 99 | +| MPI_ERR_INFO_VALUE | 33 | Illegal info value. | |
| 100 | +| MPI_ERR_INFO | 34 | Invalid info object. | |
| 101 | +| MPI_ERR_IO | 35 | I/O error. | |
| 102 | +| MPI_ERR_KEYVAL | 36 | Illegal key value. | |
| 103 | +| MPI_ERR_LOCKTYPE | 37 | Invalid locktype. | |
| 104 | +| MPI_ERR_NAME | 38 | Name not found. | |
| 105 | +| MPI_ERR_NO_MEM | 39 | Memory exhausted. | |
| 106 | +| MPI_ERR_NOT_SAME | 40 | Collective argument not identical on all processes, or collective routines called in a different order by different processes. | |
| 107 | +| MPI_ERR_NO_SPACE | 41 | Not enough space. | |
| 108 | +| MPI_ERR_NO_SUCH_FILE | 42 | File (or directory) does not exist. | |
| 109 | +| MPI_ERR_PORT | 43 | Invalid port. | |
| 110 | +| MPI_ERR_QUOTA | 44 | Quota exceeded. | |
| 111 | +| MPI_ERR_READ_ONLY | 45 | Read-only file system. | |
| 112 | +| MPI_ERR_RMA_CONFLICT | 46 | Conflicting accesses to window. | |
| 113 | +| MPI_ERR_RMA_SYNC | 47 | Erroneous RMA synchronization. | |
| 114 | +| MPI_ERR_SERVICE | 48 | Invalid publish/unpublish. | |
| 115 | +| MPI_ERR_SIZE | 49 | Invalid size. | |
| 116 | +| MPI_ERR_SPAWN | 50 | Error spawning. | |
| 117 | +| MPI_ERR_UNSUPPORTED_DATAREP | 51 | Unsupported datarep passed to MPI_File_set_view. | |
| 118 | +| MPI_ERR_UNSUPPORTED_OPERATION | 52 | Unsupported operation, such as seeking on a file that supports only sequential access. | |
| 119 | +| MPI_ERR_WIN | 53 | Invalid window. | |
| 120 | +| MPI_T_ERR_MEMORY | 54 | Out of memory. | |
| 121 | +| MPI_T_ERR_NOT_INITIALIZED | 55 | Interface not initialized. | |
| 122 | +| MPI_T_ERR_CANNOT_INIT | 56 | Interface not in the state to be initialized. | |
| 123 | +| MPI_T_ERR_INVALID_INDEX | 57 | The enumeration index is invalid. | |
| 124 | +| MPI_T_ERR_INVALID_ITEM| 58 | The item index queried is out of range. | |
| 125 | +| MPI_T_ERR_INVALID_HANDLE | 59 | The handle is invalid. | |
| 126 | +| MPI_T_ERR_OUT_OF_HANDLES | 60 | No more handles available. | |
| 127 | +| MPI_T_ERR_OUT_OF_SESSIONS | 61 | No more sessions available. | |
| 128 | +| MPI_T_ERR_INVALID_SESSION | 62 | Session argument is not a valid session. | |
| 129 | +| MPI_T_ERR_CVAR_SET_NOT_NOW | 63 |Variable cannot be set at this moment. | |
| 130 | +| MPI_T_ERR_CVAR_SET_NEVER | 64 | Variable cannot be set until end of execution. | |
| 131 | +| MPI_T_ERR_PVAR_NO_STARTSTOP | 65 | Variable cannot be started or stopped. | |
| 132 | +| MPI_T_ERR_PVAR_NO_WRITE | 66 | Variable cannot be written or reset. | |
| 133 | +| MPI_T_ERR_PVAR_NO_ATOMIC | 67 | Variable cannot be read and written atomically. | |
| 134 | +| MPI_ERR_RMA_RANGE | 68 | Target memory is not part of the window (in the case of a window created with MPI_WIN_CREATE_DYNAMIC, target memory is not attached). | |
| 135 | +| MPI_ERR_RMA_ATTACH | 69 | Memory cannot be attached (e.g., because of resource exhaustion). | |
| 136 | +| MPI_ERR_RMA_FLAVOR | 70 | Passed window has the wrong flavor for the called function. | |
| 137 | +| MPI_ERR_RMA_SHARED | 71 | Memory cannot be shared (e.g., some process in the group of the specified communicator cannot expose shared memory). | |
| 138 | +| MPI_T_ERR_INVALID | 72 | Invalid use of the interface or bad parameter values(s). | |
| 139 | +| MPI_T_ERR_INVALID_NAME | 73 | The variable or category name is invalid. | |
| 140 | +| MPI_ERR_LASTCODE | 93 | Last error code. | |
| 141 | + |
| 142 | +# SEE ALSO |
| 143 | + |
| 144 | +MPI_T(5) |
0 commit comments