Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Samlar in data från alla medlemmar i en grupp och skickar data till alla medlemmar i gruppen på ett icke-blockerande sätt.
Syntax
int MPIAPI MPI_Iallgather(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametrar
sendbuf [in, valfritt]
Pekaren till de data som ska skickas till alla processer i gruppen. Antalet och datatypen för elementen i bufferten anges i parametrarna sendcount och sendtype . Varje element i bufferten motsvarar en process i gruppen.Om comm-parametern refererar till en intracommunicator kan du ange ett alternativ på plats genom att ange MPI_IN_PLACE i alla processer. Parametrarna sendcount och sendtype ignoreras. Varje process anger data i motsvarande mottagningsbuffertelement. Den n:e processen skickar data till det n:e elementet i mottagningsbufferten.
sendcount [in]
Antalet element i bufferten som anges i parametern sendbuf . Om sendcount är noll är datadelen av meddelandet tom.sendtype [in]
MPI-datatypen för elementen i sändningsbufferten.recvbuf [ut, valfritt]
Pekaren till en buffert som innehåller de data som tas emot från varje process. Antalet och datatypen för elementen i bufferten anges i parametrarna recvcount och recvtype .recvcount [in]
Antalet element i mottagningsbufferten. Om antalet är noll är datadelen av meddelandet tom.recvtype [in]
MPI-datatypen för elementen i mottagningsbufferten.comm [in]
Den MPI_Comm kommunikationshandtaget.begäran [ut]
Den MPI_Request hanterar 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_IALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR
Kommentarer
Ett icke-blockerande anrop initierar en kollektiv minskningså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 minskningsåtgärder minimera möjliga synkroniseringseffekter av minskningsåtgärder genom att köra dem i "bakgrunden".
Alla slutförandeanrop (t.ex. MPI_Wait) stöds för icke-blockerande minskningsåtgärder.
Krav
Produkt |
Microsoft MPI v7 |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |