funktionen MPI_Igather
Samlar in data från alla medlemmar i en grupp till en medlem på ett icke-blockerande sätt.
Syntax
int WINAPI MPI_Igather(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametrar
sendbuf [in]
Pekaren till en buffert som innehåller de data som ska skickas till roten. Bufferten består av efterföljande sendcount-element i MPI_Datatype som anges av sendtype-handtaget . Meddelandelängden anges i termer av antal element, inte antal byte.sendcount
Antalet sendtype-element i sendbuf. Om värdet är noll är datadelen av meddelandet tom.sendtype
Det MPI_Datatype hantera som representerar datatypen för varje element i sendbuf.recvbuf [ut, valfritt]
Pekaren till en buffert som innehåller de data som tas emot från varje process i roten, inklusive data som skickas av rotprocessen (endast betydande vid roten). Mottagarbuffertens recvbuf ignoreras för alla icke-rotprocesser. I rotprocessen består recvbuf av återräkna efterföljande element i MPI_Datatype som anges av referensen för recvtype . Meddelandelängden anges i termer av antal element, inte antal byte.recvcount [in]
Antalet recvtype-element i recvbuf. Om värdet är noll är datadelen av meddelandet tom (endast betydande vid roten).recvtype [in]
Det MPI_Datatype hantera som representerar datatypen för varje element i recvbuf (endast betydande vid rot).root [in]
Rangordningen för den mottagande processen inom MPI_Commkommatecken.comm [in]
MPI_Comm communicator-handtaget.begäran [ut]
Den MPI_Request hantera som representerar kommunikationsåtgärden.
Returvärde
Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.
I Fortran lagras returvärdet i parametern IERROR .
Fortran
MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Kommentarer
Ett icke-blockerande anrop initierar en kollektiv insamlingsåtgärd som måste slutföras i ett separat slutförandeanrop. När åtgärden har initierats kan den fortsätta oberoende av beräkningen eller annan kommunikation i deltagande processer. På så sätt kan icke-blockerande insamlingsåtgärder minimera möjliga synkroniseringseffekter av insamlingsåtgärder genom att köra dem i "bakgrunden".
Alla slutförandeanrop (t.ex. MPI_Wait) stöds för icke-blockerande insamlingsåtgärder.
Krav
Produkt |
Microsoft MPI v6 |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |