Nonblocking completion operations
mpi.cancel
cancels a nonblocking send or receive request.
mpi.test.cancelled
tests if mpi.cancel
cancels or not.
wait
, waitall
, waitany
, and waitsome
are used
to complete nonblocking send or receive requests. They are not local.
test
, testall
, testany
, and testsome
are used
to complete nonblocking send and receive requests. They are local.
mpi.cancel(request) mpi.test.cancelled(status=0) mpi.test(request, status=0) mpi.testall(count) mpi.testany(count, status=0) mpi.testsome(count) mpi.wait(request, status=0) mpi.waitall(count) mpi.waitany(count, status=0) mpi.waitsome(count)
count |
total number of nonblocking operations. |
request |
a request number. |
status |
a status number. |
mpi.wait
and mpi.test
are used to complete a nonblocking
send and receive request: use the same request number by mpi.isend
or mpi.irecv
. Once completed, the associated request is set to
MPI\_REQUEST\_NULL and status contains information such as source, tag,
and length of message.
If multiple nonblocking sends or receives are initiated, the following calls are more efficient. Make sure that request numbers are used consecutively as request=0, request=1, request=2, etc. In this way, the following calls can find request information in system memory.
mpi.waitany
and mpi.testany
are used to complete one out of
several requests.
mpi.waitall
and mpi.testall
are used to complete all
requests.
mpi.waitsome
and mpi.testsome
are used to complete all
enabled requests.
mpi.cancel
returns no value.
mpi.test.cancelled
returns TRUE if a nonblocking call is cancelled;
FALSE otherwise.
mpi.wait
returns no value. Instead status contains information that
can be retrieved by mpi.get.count
and mpi.get.sourcetag
.
mpi.test
returns TRUE if a request is complete; FALSE otherwise. If
TRUE, it is the same as mpi.wait
.
mpi.waitany
returns which request (index) has been completed. In
addition, status contains information that can be retrieved by
mpi.get.count
and mpi.get.sourcetag
.
mpi.testany
returns a list: index— request index; flag—TRUE if
a request is complete; FALSE otherwise (index is no use in this case).
If flag is TRUE, it is the same as mpi.waitany
.
mpi.waitall
returns no value. Instead statuses 0, 1, ..., count-1
contain corresponding information that can be retrieved by
mpi.get.count
and mpi.get.sourcetag
.
mpi.testall
returns TRUE if all requests are complete; FALSE
otherwise. If TRUE, it is the same as mpi.waitall
.
mpi.waitsome
returns a list: count— number of requests that have
been completed; indices—an integer vector of size \$count of those
completed request numbers (in 0, 1 ,..., count-1). In addition, statuses
0, 1, ..., \$count-1 contain corresponding information that can be
retrieved by mpi.get.count
and mpi.get.sourcetag
.
mpi.testsome
is the same as mpi.waitsome
except that \$count
may be 0 and in this case \$indices is no use.
Hao Yu
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.