parallel / 4-2010
.pdf" #$
*
:
int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)
MPI_Irecv(buf, count, datatype, source, tag, comm, request, ierr)
# ,
, ,
, (source).
2008
" #$
(
( request. , (
:
;
( ;
;
.
, (
( $ .
2008
" #$
"
! (
,
$ ,
« »,
2008
" #$
,
, ,
.
/ :
1.$ ;
2.$ ;
3.$ .
) . :
1.« »;
2.« ».
2008
" #$
#$%
! MPI_Wait $
:
int MPI_Wait(MPI_Request *request, MPI_Status *status)
MPI_Wait(request, status, ierr)
request ( ,
(status).
2008
" #$
0$ MPI_Wait
MPI_Ibsend , (
,
(, MPI_Buffer_attach.. . /
, (
. .
MPI_Cancel, ,
.
2008
" #$
! & "
! $ :
int MPI_Waitall(int count, MPI_Request requests[], MPI_Status statuses[])
MPI_Waitall(count, requests, statuses, ierr)
! .
, ,
requests, .
. . '
statuses. count - (
requests statuses).
2008
" #$
MPI_Waitall , ( ,
, .
MPI_REQUEST_NULL.
$
MPI_Waitall $
MPI_ERR_IN_STATUS $
$ .
/ $ ,
MPI_SUCCESS, , $ -
MPI_ERR_PENDING. 1
, .
2008
" #$
! $" ' "
! $
:
int MPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status *status)
MPI_Waitany(count, requests, index, status, ierr)
, ,
, (requests) $ .
:
requests - ;
count - . requests.
:
index - ( C . 0 count – 1, Fortran 1 count) requests;
status - .
2008
" #$
/ ,
$ MPI_UNDEFINED
.
2008