You can make changes to and get information about the error handler using any of the following routines:
MPI_Comm_create_errhandler
MPI_Comm_get_errhandler
MPI_Comm_set_errhandler
Messages resulting from an MPI program fall into two categories:
Error messages - Error messages stem from within MPI. Usually an error message explains why your program cannot complete, and the program aborts.
Warning messages - Warnings stem from the environment in which you are running your MPI program and are usually sent by MPI_Init. They are not associated with an aborted program, that is, programs continue to run despite warning messages.
Sun MPI error messages use a standard format:
[x y z] Error in function_name: errclass_string:intern(a):description:unixerrstring
where
[x y z] is the process communication identifier, and:
x is the job id (or jid).
y is the name of the communicator if a name exists; otherwise it is the address of the opaque object.
z is the rank of the process.
The process communication identifier is present in every error message.
function_name is the name of the associated MPI function. It is present in every error message.
errclass_string is the string associated with the MPI error class. It is present in every error message.
intern is an internal function. It is optional.
a is a system call, if one is the cause of the error. It is optional.
description is a description of the error. It is optional.
unixerrstring is the UNIX error string that describes system call a. It is optional.
Sun MPI warning messages also use a standard format:
[x y z] Warning message
where
message is a description of the error.
Listed below are the error return classes you may encounter in your MPI programs. Error values may also be found in mpi.h (for C), mpif.h (for Fortran), and mpi++.h (for C++).
Table B-1 Sun MPI Standard Error Classes
Error Code |
Value |
Meaning |
---|---|---|
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_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_REQUEST |
19 | |
MPI_ERR_KEYVAL |
36 |
Illegal key value. |
MPI_ERR_INFO |
37 |
Invalid info object. |
MPI_ERR_INFO_KEY |
38 |
Illegal info key. |
MPI_ERR_INFO_NOKEY |
39 |
No such key. |
MPI_ERR_INFO_VALUE |
40 |
Illegal info value. |
MPI_ERR_TIMEDOUT |
41 |
Timed out. |
MPI_ERR_RESOURCES |
42 |
Out of resources. |
MPI_ERR_TRANSPORT |
43 |
Transport layer error. |
MPI_ERR_HANDSHAKE |
44 |
Error accepting/connecting. |
MPI_ERR_SPAWN |
45 |
Error spawning. |
MPI_ERR_LASTCODE |
46 |
Last error code. |
MPI I/O message are listed separately, in Table B-2.