Blame man/man3/MPI_Irsend.3

Packit 0848f5
.TH MPI_Irsend 3 "11/10/2017" " " "MPI"
Packit 0848f5
.SH NAME
Packit 0848f5
MPI_Irsend \-  Starts a nonblocking ready send 
Packit 0848f5
.SH SYNOPSIS
Packit 0848f5
.nf
Packit 0848f5
int MPI_Irsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit 0848f5
               MPI_Comm comm, MPI_Request *request)
Packit 0848f5
.fi
Packit 0848f5
.SH INPUT PARAMETERS
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B buf 
Packit 0848f5
- initial address of send buffer (choice) 
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B count 
Packit 0848f5
- number of elements in send buffer (integer) 
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B datatype 
Packit 0848f5
- datatype of each send buffer element (handle) 
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B dest 
Packit 0848f5
- rank of destination (integer) 
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B tag 
Packit 0848f5
- message tag (integer) 
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B comm 
Packit 0848f5
- communicator (handle) 
Packit 0848f5
.PD 1
Packit 0848f5
Packit 0848f5
.SH OUTPUT PARAMETERS
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B request 
Packit 0848f5
- communication request (handle) 
Packit 0848f5
.PD 1
Packit 0848f5
Packit 0848f5
.SH THREAD AND INTERRUPT SAFETY
Packit 0848f5
Packit 0848f5
This routine is thread-safe.  This means that this routine may be
Packit 0848f5
safely used by multiple threads without the need for any user-provided
Packit 0848f5
thread locks.  However, the routine is not interrupt safe.  Typically,
Packit 0848f5
this is due to the use of memory allocation routines such as 
Packit 0848f5
.I malloc
Packit 0848f5
or other non-MPICH runtime routines that are themselves not interrupt-safe.
Packit 0848f5
Packit 0848f5
.SH NOTES FOR FORTRAN
Packit 0848f5
All MPI routines in Fortran (except for 
Packit 0848f5
.I MPI_WTIME
Packit 0848f5
and 
Packit 0848f5
.I MPI_WTICK
Packit 0848f5
) have
Packit 0848f5
an additional argument 
Packit 0848f5
.I ierr
Packit 0848f5
at the end of the argument list.  
Packit 0848f5
.I ierr
Packit 0848f5
is an integer and has the same meaning as the return value of the routine
Packit 0848f5
in C.  In Fortran, MPI routines are subroutines, and are invoked with the
Packit 0848f5
.I call
Packit 0848f5
statement.
Packit 0848f5
Packit 0848f5
All MPI objects (e.g., 
Packit 0848f5
.I MPI_Datatype
Packit 0848f5
, 
Packit 0848f5
.I MPI_Comm
Packit 0848f5
) are of type 
Packit 0848f5
.I INTEGER
Packit 0848f5
in Fortran.
Packit 0848f5
Packit 0848f5
.SH ERRORS
Packit 0848f5
Packit 0848f5
All MPI routines (except 
Packit 0848f5
.I MPI_Wtime
Packit 0848f5
and 
Packit 0848f5
.I MPI_Wtick
Packit 0848f5
) return an error value;
Packit 0848f5
C routines as the value of the function and Fortran routines in the last
Packit 0848f5
argument.  Before the value is returned, the current MPI error handler is
Packit 0848f5
called.  By default, this error handler aborts the MPI job.  The error handler
Packit 0848f5
may be changed with 
Packit 0848f5
.I MPI_Comm_set_errhandler
Packit 0848f5
(for communicators),
Packit 0848f5
.I MPI_File_set_errhandler
Packit 0848f5
(for files), and 
Packit 0848f5
.I MPI_Win_set_errhandler
Packit 0848f5
(for
Packit 0848f5
RMA windows).  The MPI-1 routine 
Packit 0848f5
.I MPI_Errhandler_set
Packit 0848f5
may be used but
Packit 0848f5
its use is deprecated.  The predefined error handler
Packit 0848f5
.I MPI_ERRORS_RETURN
Packit 0848f5
may be used to cause error values to be returned.
Packit 0848f5
Note that MPI does 
Packit 0848f5
.B not
Packit 0848f5
guarentee that an MPI program can continue past
Packit 0848f5
an error; however, MPI implementations will attempt to continue whenever
Packit 0848f5
possible.
Packit 0848f5
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_SUCCESS 
Packit 0848f5
- No error; MPI routine completed successfully.
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_ERR_COMM 
Packit 0848f5
- Invalid communicator.  A common error is to use a null
Packit 0848f5
communicator in a call (not even allowed in 
Packit 0848f5
.I MPI_Comm_rank
Packit 0848f5
).
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_ERR_COUNT 
Packit 0848f5
- Invalid count argument.  Count arguments must be 
Packit 0848f5
non-negative; a count of zero is often valid.
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_ERR_TYPE 
Packit 0848f5
- Invalid datatype argument.  Additionally, this error can
Packit 0848f5
occur if an uncommitted MPI_Datatype (see 
Packit 0848f5
.I MPI_Type_commit
Packit 0848f5
) is used
Packit 0848f5
in a communication call.
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_ERR_TAG 
Packit 0848f5
- Invalid tag argument.  Tags must be non-negative; tags
Packit 0848f5
in a receive (
Packit 0848f5
.I MPI_Recv
Packit 0848f5
, 
Packit 0848f5
.I MPI_Irecv
Packit 0848f5
, 
Packit 0848f5
.I MPI_Sendrecv
Packit 0848f5
, etc.) may
Packit 0848f5
also be 
Packit 0848f5
.I MPI_ANY_TAG
Packit 0848f5
\&.
Packit 0848f5
The largest tag value is available through the 
Packit 0848f5
the attribute 
Packit 0848f5
.I MPI_TAG_UB
Packit 0848f5
\&.
Packit 0848f5
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_ERR_RANK 
Packit 0848f5
- Invalid source or destination rank.  Ranks must be between
Packit 0848f5
zero and the size of the communicator minus one; ranks in a receive
Packit 0848f5
(
Packit 0848f5
.I MPI_Recv
Packit 0848f5
, 
Packit 0848f5
.I MPI_Irecv
Packit 0848f5
, 
Packit 0848f5
.I MPI_Sendrecv
Packit 0848f5
, etc.) may also be 
Packit 0848f5
.I MPI_ANY_SOURCE
Packit 0848f5
\&.
Packit 0848f5
Packit 0848f5
.PD 1
Packit 0848f5
.PD 0
Packit 0848f5
.TP
Packit 0848f5
.B MPI_ERR_INTERN 
Packit 0848f5
- This error is returned when some part of the MPICH 
Packit 0848f5
implementation is unable to acquire memory.  
Packit 0848f5
.PD 1
Packit 0848f5