|
Packit Service |
c5cf8c |
This file contains the named document blocks for use in generating the
|
|
Packit Service |
c5cf8c |
documentation. This is divided into several main blocks:
|
|
Packit Service |
c5cf8c |
Threads and interrups/signals
|
|
Packit Service |
c5cf8c |
Fortran
|
|
Packit Service |
c5cf8c |
Misc MPI (e.g., status null)
|
|
Packit Service |
c5cf8c |
Error classes
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
-----------------------------------------------------------------------------
|
|
Packit Service |
c5cf8c |
Note that only one of ThreadSafe and SignalSafe may be used
|
|
Packit Service |
c5cf8c |
/*N ThreadSafe
|
|
Packit Service |
c5cf8c |
Thread and Interrupt Safety:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
This routine is thread-safe. This means that this routine may be
|
|
Packit Service |
c5cf8c |
safely used by multiple threads without the need for any user-provided
|
|
Packit Service |
c5cf8c |
thread locks. However, the routine is not interrupt safe. Typically,
|
|
Packit Service |
c5cf8c |
this is due to the use of memory allocation routines such as 'malloc'
|
|
Packit Service |
c5cf8c |
or other non-MPICH runtime routines that are themselves not interrupt-safe.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N SignalSafe
|
|
Packit Service |
c5cf8c |
Thread and Interrupt Safety:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
This routine is both thread- and interrupt-safe.
|
|
Packit Service |
c5cf8c |
This means that this routine may safely be used by multiple threads and
|
|
Packit Service |
c5cf8c |
from within a signal handler.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N NotThreadSafe
|
|
Packit Service |
c5cf8c |
Thread and Interrupt Safety:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The user is responsible for ensuring that multiple threads do not try to
|
|
Packit Service |
c5cf8c |
update the same MPI object from different threads. This routine should
|
|
Packit Service |
c5cf8c |
not be used from within a signal handler.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The MPI standard defined a thread-safe interface but this does not
|
|
Packit Service |
c5cf8c |
mean that all routines may be called without any thread locks. For
|
|
Packit Service |
c5cf8c |
example, two threads must not attempt to change the contents of the
|
|
Packit Service |
c5cf8c |
same 'MPI_Info' object concurrently. The user is responsible in this
|
|
Packit Service |
c5cf8c |
case for using some mechanism, such as thread locks, to ensure that
|
|
Packit Service |
c5cf8c |
only one thread at a time makes use of this routine.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Most of the MPI objects are static enough that it isn't necessary to
|
|
Packit Service |
c5cf8c |
lock around the routines (even though some ops require updates). Info isn't
|
|
Packit Service |
c5cf8c |
expected to be as robust (there was discussion on the MPI-Forum list
|
|
Packit Service |
c5cf8c |
on this).
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N ThreadSafeInfoRead
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Thread and Interrupt Safety:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
This routine is thread and interrupt safe only if no MPI routine that
|
|
Packit Service |
c5cf8c |
updates or frees the same 'MPI_Info' object may be called concurrently
|
|
Packit Service |
c5cf8c |
with this routine.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The MPI standard defined a thread-safe interface but this does not
|
|
Packit Service |
c5cf8c |
mean that all routines may be called without any thread locks. For
|
|
Packit Service |
c5cf8c |
example, two threads must not attempt to change the contents of the
|
|
Packit Service |
c5cf8c |
same 'MPI_Info' object concurrently. The user is responsible in this
|
|
Packit Service |
c5cf8c |
case for using some mechanism, such as thread locks, to ensure that
|
|
Packit Service |
c5cf8c |
only one thread at a time makes use of this routine.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N ThreadSafeNoUpdate
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Thread and Interrupt Safety:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
This routine is thread and interrupt safe only if no MPI routine that
|
|
Packit Service |
c5cf8c |
updates or frees the same MPI object may be called concurrently
|
|
Packit Service |
c5cf8c |
with this routine.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The MPI standard defined a thread-safe interface but this does not
|
|
Packit Service |
c5cf8c |
mean that all routines may be called without any thread locks. For
|
|
Packit Service |
c5cf8c |
example, two threads must not attempt to change the contents of the
|
|
Packit Service |
c5cf8c |
same 'MPI_Info' object concurrently. The user is responsible in this
|
|
Packit Service |
c5cf8c |
case for using some mechanism, such as thread locks, to ensure that
|
|
Packit Service |
c5cf8c |
only one thread at a time makes use of this routine.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
-----------------------------------------------------------------------------
|
|
Packit Service |
c5cf8c |
/*N Fortran
|
|
Packit Service |
c5cf8c |
Notes for Fortran:
|
|
Packit Service |
c5cf8c |
All MPI routines in Fortran (except for 'MPI_WTIME' and 'MPI_WTICK') have
|
|
Packit Service |
c5cf8c |
an additional argument 'ierr' at the end of the argument list. 'ierr'
|
|
Packit Service |
c5cf8c |
is an integer and has the same meaning as the return value of the routine
|
|
Packit Service |
c5cf8c |
in C. In Fortran, MPI routines are subroutines, and are invoked with the
|
|
Packit Service |
c5cf8c |
'call' statement.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
All MPI objects (e.g., 'MPI_Datatype', 'MPI_Comm') are of type 'INTEGER'
|
|
Packit Service |
c5cf8c |
in Fortran.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Try this as an alias
|
|
Packit Service |
c5cf8c |
/*N fortran
|
|
Packit Service |
c5cf8c |
.N Fortran
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N FortranStatus
|
|
Packit Service |
c5cf8c |
The 'status' argument must be declared as an array of size 'MPI_STATUS_SIZE',
|
|
Packit Service |
c5cf8c |
as in 'integer status(MPI_STATUS_SIZE)'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N FortStatusArray
|
|
Packit Service |
c5cf8c |
The 'status' argument must be declared as an array of sise 'MPI_STATUS_SIZE',
|
|
Packit Service |
c5cf8c |
as in 'integer status(MPI_STATUS_SIZE,10)' (assuming no more than 10
|
|
Packit Service |
c5cf8c |
requests are provided as input).
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N FortranString
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The sizes of MPI strings in Fortran are one less than the sizes of that
|
|
Packit Service |
c5cf8c |
string in C/C++ because the C/C++ versions provide room for the trailing
|
|
Packit Service |
c5cf8c |
null character required by C/C++. For example, 'MPI_MAX_ERROR_STRING' is
|
|
Packit Service |
c5cf8c |
'mpif.h' is one smaller than the same value in 'mpi.h'. See the MPI
|
|
Packit Service |
c5cf8c |
standard, sections 2.6.2 and 4.12.9.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
-----------------------------------------------------------------------------
|
|
Packit Service |
c5cf8c |
/*N collops
|
|
Packit Service |
c5cf8c |
Notes on collective operations:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The reduction functions ('MPI_Op') do not return an error value. As a result,
|
|
Packit Service |
c5cf8c |
if the functions detect an error, all they can do is either call 'MPI_Abort'
|
|
Packit Service |
c5cf8c |
or silently skip the problem. Thus, if you change the error handler from
|
|
Packit Service |
c5cf8c |
'MPI_ERRORS_ARE_FATAL' to something else, for example, 'MPI_ERRORS_RETURN',
|
|
Packit Service |
c5cf8c |
then no error may be indicated.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The reason for this is the performance problems in ensuring that
|
|
Packit Service |
c5cf8c |
all collective routines return the same error value.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N waitstatus
|
|
Packit Service |
c5cf8c |
Notes on the MPI_Status argument:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The 'MPI_ERROR' field of the status return is only set if
|
|
Packit Service |
c5cf8c |
the return from the MPI routine is 'MPI_ERR_IN_STATUS'. That error class
|
|
Packit Service |
c5cf8c |
is only returned by the routines that take an array of status arguments
|
|
Packit Service |
c5cf8c |
('MPI_Testall', 'MPI_Testsome', 'MPI_Waitall', and 'MPI_Waitsome'). In
|
|
Packit Service |
c5cf8c |
all other cases, the value of the 'MPI_ERROR' field in the status is
|
|
Packit Service |
c5cf8c |
unchanged. See section 3.2.5 in the MPI-1.1 specification for the
|
|
Packit Service |
c5cf8c |
exact text.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
For send operations, the only use of status is for 'MPI_Test_cancelled' or
|
|
Packit Service |
c5cf8c |
in the case that there is an error in one of the four routines that
|
|
Packit Service |
c5cf8c |
may return the error class 'MPI_ERR_IN_STATUS', in which case the
|
|
Packit Service |
c5cf8c |
'MPI_ERROR' field of status will be set. In that case, the value
|
|
Packit Service |
c5cf8c |
will be set to 'MPI_SUCCESS' for any send or receive operation that completed
|
|
Packit Service |
c5cf8c |
successfully, or 'MPI_ERR_PENDING' for any operation which has neither
|
|
Packit Service |
c5cf8c |
failed nor completed.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
-----------------------------------------------------------------------------
|
|
Packit Service |
c5cf8c |
MPI-2 deprecated some routines (see 2.6.1)
|
|
Packit Service |
c5cf8c |
/*N Deprecated
|
|
Packit Service |
c5cf8c |
Deprecated Function:
|
|
Packit Service |
c5cf8c |
The MPI-2 standard deprecated a number of routines because MPI-2 provides
|
|
Packit Service |
c5cf8c |
better versions. This routine is one of those that was deprecated. The
|
|
Packit Service |
c5cf8c |
routine may continue to be used, but new code should use the replacement
|
|
Packit Service |
c5cf8c |
routine.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
-----------------------------------------------------------------------------
|
|
Packit Service |
c5cf8c |
/*N Errhandler
|
|
Packit Service |
c5cf8c |
Error handlers:
|
|
Packit Service |
c5cf8c |
The MPI error handler for this routine is taken from 'MPI_COMM_WORLD'.
|
|
Packit Service |
c5cf8c |
For MPI routines that do not have an obvious communicator, file, or
|
|
Packit Service |
c5cf8c |
window object, the MPI standard specifies that the error handler
|
|
Packit Service |
c5cf8c |
attached to 'MPI_COMM_WORLD' be used.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
-----------------------------------------------------------------------------
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
This part of the file contains definitions of the MPI error CLASSES for
|
|
Packit Service |
c5cf8c |
inclusion in the man pages. Use .N err name
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N Errors
|
|
Packit Service |
c5cf8c |
Errors:
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
All MPI routines (except 'MPI_Wtime' and 'MPI_Wtick') return an error value;
|
|
Packit Service |
c5cf8c |
C routines as the value of the function and Fortran routines in the last
|
|
Packit Service |
c5cf8c |
argument. Before the value is returned, the current MPI error handler is
|
|
Packit Service |
c5cf8c |
called. By default, this error handler aborts the MPI job. The error handler
|
|
Packit Service |
c5cf8c |
may be changed with 'MPI_Comm_set_errhandler' (for communicators),
|
|
Packit Service |
c5cf8c |
'MPI_File_set_errhandler' (for files), and 'MPI_Win_set_errhandler' (for
|
|
Packit Service |
c5cf8c |
RMA windows). The MPI-1 routine 'MPI_Errhandler_set' may be used but
|
|
Packit Service |
c5cf8c |
its use is deprecated. The predefined error handler
|
|
Packit Service |
c5cf8c |
'MPI_ERRORS_RETURN' may be used to cause error values to be returned.
|
|
Packit Service |
c5cf8c |
Note that MPI does `not` guarentee that an MPI program can continue past
|
|
Packit Service |
c5cf8c |
an error; however, MPI implementations will attempt to continue whenever
|
|
Packit Service |
c5cf8c |
possible.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_SUCCESS
|
|
Packit Service |
c5cf8c |
. MPI_SUCCESS - No error; MPI routine completed successfully.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_BUFFER
|
|
Packit Service |
c5cf8c |
. MPI_ERR_BUFFER - Invalid buffer pointer. Usually a null buffer where
|
|
Packit Service |
c5cf8c |
one is not valid.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_COUNT
|
|
Packit Service |
c5cf8c |
. MPI_ERR_COUNT - Invalid count argument. Count arguments must be
|
|
Packit Service |
c5cf8c |
non-negative; a count of zero is often valid.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_TYPE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_TYPE - Invalid datatype argument. Additionally, this error can
|
|
Packit Service |
c5cf8c |
occur if an uncommitted MPI_Datatype (see 'MPI_Type_commit') is used
|
|
Packit Service |
c5cf8c |
in a communication call.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_TAG
|
|
Packit Service |
c5cf8c |
. MPI_ERR_TAG - Invalid tag argument. Tags must be non-negative; tags
|
|
Packit Service |
c5cf8c |
in a receive ('MPI_Recv', 'MPI_Irecv', 'MPI_Sendrecv', etc.) may
|
|
Packit Service |
c5cf8c |
also be 'MPI_ANY_TAG'. The largest tag value is available through the
|
|
Packit Service |
c5cf8c |
the attribute 'MPI_TAG_UB'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_COMM
|
|
Packit Service |
c5cf8c |
. MPI_ERR_COMM - Invalid communicator. A common error is to use a null
|
|
Packit Service |
c5cf8c |
communicator in a call (not even allowed in 'MPI_Comm_rank').
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_RANK
|
|
Packit Service |
c5cf8c |
. MPI_ERR_RANK - Invalid source or destination rank. Ranks must be between
|
|
Packit Service |
c5cf8c |
zero and the size of the communicator minus one; ranks in a receive
|
|
Packit Service |
c5cf8c |
('MPI_Recv', 'MPI_Irecv', 'MPI_Sendrecv', etc.) may also be 'MPI_ANY_SOURCE'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_ROOT
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ROOT - Invalid root. The root must be specified as a rank in the
|
|
Packit Service |
c5cf8c |
communicator. Ranks must be between zero and the size of the communicator
|
|
Packit Service |
c5cf8c |
minus one.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_GROUP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_GROUP - Null or invalid group passed to function.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_OP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_OP - Invalid operation. MPI operations (objects of type 'MPI_Op')
|
|
Packit Service |
c5cf8c |
must either be one of the predefined operations (e.g., 'MPI_SUM') or
|
|
Packit Service |
c5cf8c |
created with 'MPI_Op_create'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_TOPOLOGY
|
|
Packit Service |
c5cf8c |
. MPI_ERR_TOPOLOGY - Invalid topology. Either there is no topology
|
|
Packit Service |
c5cf8c |
associated with this communicator, or it is not the correct type (e.g.,
|
|
Packit Service |
c5cf8c |
'MPI_CART' when expecting 'MPI_GRAPH').
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_DIMS
|
|
Packit Service |
c5cf8c |
. MPI_ERR_DIMS - Invalid dimension argument. A dimension argument
|
|
Packit Service |
c5cf8c |
is null or its length is less than or equal to zero.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_ARG
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ARG - Invalid argument. Some argument is invalid and is not
|
|
Packit Service |
c5cf8c |
identified by a specific error class (e.g., 'MPI_ERR_RANK').
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_PERM_OP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ARG - Invalid argument; the error code associated with this
|
|
Packit Service |
c5cf8c |
error indicates an attempt to free an MPI permanent operation (e.g.,
|
|
Packit Service |
c5cf8c |
'MPI_SUM').
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_PERM_KEY
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ARG - Invalid argument; the error code associated with this
|
|
Packit Service |
c5cf8c |
error indicates an attempt to free or chnage an MPI permanent keyval (e.g.,
|
|
Packit Service |
c5cf8c |
'MPI_TAG_UB').
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_UNKNOWN
|
|
Packit Service |
c5cf8c |
. MPI_ERR_UNKNOWN - Unknown error. You should never see this. If you
|
|
Packit Service |
c5cf8c |
do, report it to 'mpi-bugs@mcs.anl.gov'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_TRUNCATE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_TRUNCATE - Message truncated on receive. The buffer size specified
|
|
Packit Service |
c5cf8c |
was too small for the received message. This is a recoverable error in
|
|
Packit Service |
c5cf8c |
the MPICH implementation.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_OTHER
|
|
Packit Service |
c5cf8c |
. MPI_ERR_OTHER - Other error; use 'MPI_Error_string' to get more information
|
|
Packit Service |
c5cf8c |
about this error code.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_KEYVAL
|
|
Packit Service |
c5cf8c |
. MPI_ERR_KEYVAL - Invalid keyval
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_INTERN
|
|
Packit Service |
c5cf8c |
. MPI_ERR_INTERN - An internal error has been detected. This is fatal.
|
|
Packit Service |
c5cf8c |
Please send a bug report to 'mpi-bugs@mcs.anl.gov'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_EXHAUSTED
|
|
Packit Service |
c5cf8c |
. MPI_ERR_INTERN - This error is returned when some part of the MPICH
|
|
Packit Service |
c5cf8c |
implementation is unable to acquire memory.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_IN_STATUS
|
|
Packit Service |
c5cf8c |
. MPI_ERR_IN_STATUS - The actual error value is in the 'MPI_Status' argument.
|
|
Packit Service |
c5cf8c |
This error class is returned only from the multiple-completion routines
|
|
Packit Service |
c5cf8c |
('MPI_Testall', 'MPI_Testany', 'MPI_Testsome', 'MPI_Waitall', 'MPI_Waitany',
|
|
Packit Service |
c5cf8c |
and 'MPI_Waitsome'). The field 'MPI_ERROR' in the status argument
|
|
Packit Service |
c5cf8c |
contains the error value or 'MPI_SUCCESS' (no error and complete) or
|
|
Packit Service |
c5cf8c |
'MPI_ERR_PENDING' to indicate that the request has not completed.
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
The MPI Standard does not specify what the result of the multiple
|
|
Packit Service |
c5cf8c |
completion routines is when an error occurs. For example, in an
|
|
Packit Service |
c5cf8c |
'MPI_WAITALL', does the routine wait for all requests to either fail or
|
|
Packit Service |
c5cf8c |
complete, or does it return immediately (with the MPI definition of
|
|
Packit Service |
c5cf8c |
immediately, which means independent of actions of other MPI processes)?
|
|
Packit Service |
c5cf8c |
MPICH has chosen to make the return immediate (alternately, local in MPI
|
|
Packit Service |
c5cf8c |
terms), and to use the error class 'MPI_ERR_PENDING' (introduced in MPI 1.1)
|
|
Packit Service |
c5cf8c |
to indicate which requests have not completed. In most cases, only
|
|
Packit Service |
c5cf8c |
one request with an error will be detected in each call to an MPI routine
|
|
Packit Service |
c5cf8c |
that tests multiple requests. The requests that have not been processed
|
|
Packit Service |
c5cf8c |
(because an error occured in one of the requests) will have their
|
|
Packit Service |
c5cf8c |
'MPI_ERROR' field marked with 'MPI_ERR_PENDING'.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_PENDING
|
|
Packit Service |
c5cf8c |
. MPI_ERR_PENDING - Pending request (not an error). See 'MPI_ERR_IN_STATUS'.
|
|
Packit Service |
c5cf8c |
This value indicates that the request is not complete nor has a encountered
|
|
Packit Service |
c5cf8c |
a detected error.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_REQUEST
|
|
Packit Service |
c5cf8c |
. MPI_ERR_REQUEST - Invalid 'MPI_Request'. Either null or, in the case of a
|
|
Packit Service |
c5cf8c |
'MPI_Start' or 'MPI_Startall', not a persistent request.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_BUFFER_ALIAS
|
|
Packit Service |
c5cf8c |
. MPI_ERR_BUFFER - This error class is associcated with an error code that
|
|
Packit Service |
c5cf8c |
indicates that two buffer arguments are `aliased`; that is, the
|
|
Packit Service |
c5cf8c |
describe overlapping storage (often the exact same storage). This
|
|
Packit Service |
c5cf8c |
is prohibited in MPI (because it is prohibited by the Fortran
|
|
Packit Service |
c5cf8c |
standard, and rather than have a separate case for C and Fortran, the
|
|
Packit Service |
c5cf8c |
MPI Forum adopted the more restrictive requirements of Fortran).
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_PERM_KEY
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ARG - This error class is associated with an error code that
|
|
Packit Service |
c5cf8c |
indicates that an attempt was made to free one of the permanent keys.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_PERM_GROUP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ARG - This error class is associated with an error code that
|
|
Packit Service |
c5cf8c |
indicates that an attempt was made to free one of the permanent groups.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_INIT
|
|
Packit Service |
c5cf8c |
. MPI_ERR_OTHER - This error class is associated with an error code that
|
|
Packit Service |
c5cf8c |
indicates that an attempt was made to call 'MPI_INIT' a second time.
|
|
Packit Service |
c5cf8c |
'MPI_INIT' may only be called once in a program.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_INFO
|
|
Packit Service |
c5cf8c |
. MPI_ERR_INFO - Invalid Info
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_INFO_KEY
|
|
Packit Service |
c5cf8c |
. MPI_ERR_INFO_KEY - Invalid or null key string for info.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_INFO_VALUE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_INFO_VALUE - Invalid or null value string for info
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_INFO_NOKEY
|
|
Packit Service |
c5cf8c |
. MPI_ERR_INFO_NOKEY -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_NAME
|
|
Packit Service |
c5cf8c |
. MPI_ERR_NAME -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_NO_MEM
|
|
Packit Service |
c5cf8c |
. MPI_ERR_NO_MEM - Insufficient memory available for allocation by
|
|
Packit Service |
c5cf8c |
'MPI_Alloc_mem'
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_NOT_SAME
|
|
Packit Service |
c5cf8c |
. MPI_ERR_NOT_SAME -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_PORT
|
|
Packit Service |
c5cf8c |
. MPI_ERR_PORT -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_QUOTA
|
|
Packit Service |
c5cf8c |
. MPI_ERR_QUOTA -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_SERVICE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_SERVICE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_SPAWN
|
|
Packit Service |
c5cf8c |
. MPI_ERR_SPAWN -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_UNSUPPORTED_OPERATION
|
|
Packit Service |
c5cf8c |
. MPI_ERR_UNSUPPORTED_OPERATION -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_WIN
|
|
Packit Service |
c5cf8c |
. MPI_ERR_WIN - Invalid MPI window object
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_BASE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_BASE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_LOCKTYPE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_LOCKTYPE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_RMA_CONFLICT
|
|
Packit Service |
c5cf8c |
. MPI_ERR_RMA_CONFLICT -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_RMA_SYNC
|
|
Packit Service |
c5cf8c |
. MPI_ERR_RMA_SYNC -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_SIZE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_SIZE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_DISP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_DISP -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_ASSERT
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ASSERT -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* MPI I/O Information */
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_FILE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_FILE - Invalid MPI File handle
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_ACCESS
|
|
Packit Service |
c5cf8c |
. MPI_ERR_ACCESS -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_AMODE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_AMODE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_BAD_FILE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_BAD_FILE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_FILE_EXISTS
|
|
Packit Service |
c5cf8c |
. MPI_ERR_FILE_EXISTS -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_FILE_IN_USE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_FILE_IN_USE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_NO_SPACE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_NO_SPACE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_NO_SUCH_FILE
|
|
Packit Service |
c5cf8c |
. MPI_ERR_NO_SUCH_FILE -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_IO
|
|
Packit Service |
c5cf8c |
. MPI_ERR_IO -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_READ_ONLY
|
|
Packit Service |
c5cf8c |
. MPI_ERR_READ_ONLY -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_CONVERSION
|
|
Packit Service |
c5cf8c |
. MPI_ERR_CONVERSION -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_DUP_DATAREP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_DUP_DATAREP -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_ERR_UNSUPPORTED_DATAREP
|
|
Packit Service |
c5cf8c |
. MPI_ERR_UNSUPPORTED_DATAREP -
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_NOT_INITIALIZED
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_NOT_INITIALIZED - The MPI tool information interface is not initialized.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_MEMORY
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_MEMORY - The MPI tool information interface is out of memory.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_CANNOT_INIT
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_CANNOT_INIT - The MPI tool information interface is not in the state to be initialized.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_INVALID_INDEX
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_INVALID_INDEX - Index is invalid or has been deleted.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_INVALID_ITEM
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_INVALID_ITEM - Item index queried is out of range.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_INVALID_NAME
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_INVALID_NAME - The variable or category name is invalid
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_INVALID_HANDLE
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_INVALID_HANDLE - The handle is invalid.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_OUT_OF_HANDLES
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_OUT_OF_HANDLES - No more handles available.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_OUT_OF_SESSIONS
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_OUT_OF_SESSIONS - No more sessions available.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_INVALID_SESSION
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_INVALID_SESSION - Session argument is not valid.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_CVAR_SET_NOT_NOW
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_CVAR_SET_NOT_NOW - The control variable can not be set at this moment.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_CVAR_SET_NEVER
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_CVAR_SET_NEVER - The control variable can not be set until end of execution.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_PVAR_NO_STARTSTOP
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_PVAR_NO_STARTSTOP - The performance variable can not be started or stopped.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_PVAR_NO_WRITE
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_PVAR_NO_WRITE - The performance variable can not be written or reset.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N MPI_T_ERR_PVAR_NO_ATOMIC
|
|
Packit Service |
c5cf8c |
. MPI_T_ERR_PVAR_NO_ATOMIC - The performance variable can not be read/write atomically.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N NULL
|
|
Packit Service |
c5cf8c |
Null Handles:
|
|
Packit Service |
c5cf8c |
The MPI 1.1 specification, in the section on opaque objects, explicitly
|
|
Packit Service |
c5cf8c |
disallows freeing a null communicator. The text from the standard is\:
|
|
Packit Service |
c5cf8c |
.vb
|
|
Packit Service |
c5cf8c |
A null handle argument is an erroneous IN argument in MPI calls, unless an
|
|
Packit Service |
c5cf8c |
exception is explicitly stated in the text that defines the function. Such
|
|
Packit Service |
c5cf8c |
exception is allowed for handles to request objects in Wait and Test calls
|
|
Packit Service |
c5cf8c |
(sections Communication Completion and Multiple Completions ). Otherwise, a
|
|
Packit Service |
c5cf8c |
null handle can only be passed to a function that allocates a new object and
|
|
Packit Service |
c5cf8c |
returns a reference to it in the handle.
|
|
Packit Service |
c5cf8c |
.ve
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N COMMNULL
|
|
Packit Service |
c5cf8c |
Because MPI specifies that null objects (e.g., 'MPI_COMM_NULL') are invalid
|
|
Packit Service |
c5cf8c |
as input to MPI routines unless otherwise specified, using 'MPI_COMM_NULL'
|
|
Packit Service |
c5cf8c |
as input to this routine is an error.
|
|
Packit Service |
c5cf8c |
N*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*N AttrErrReturn
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
Return value from attribute callbacks:
|
|
Packit Service |
c5cf8c |
The MPI-2 versions of the attribute callbacks should return either
|
|
Packit Service |
c5cf8c |
'MPI_SUCCESS' on success or a valid MPI error code or class on failure.
|
|
Packit Service |
c5cf8c |
The MPI standard is ambiguous on this point, but as MPI-2 provides
|
|
Packit Service |
c5cf8c |
the routines 'MPI_Add_error_class' and 'MPI_Add_error_code' that allow the
|
|
Packit Service |
c5cf8c |
user to define and use MPI error codes and classes.
|
|
Packit Service |
c5cf8c |
N*/
|