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. Funktionen MPI_Allgather liknar funktionen MPI_Gather , förutom att den skickar data till alla processer i stället för endast till roten. Användningsreglerna för MPI_Allgather motsvarar reglerna för MPI_Gather.
Syntax
int MPIAPI MPI_Allgather(
_In_ void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_ void *recvbuf,
int recvcount,
MPI_Datatype recvtype,
MPI_Comm comm
);
Parametrar
sendbuf [in]
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 [out]
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
Antalet element i mottagningsbufferten. Om antalet är noll är datadelen av meddelandet tom.recvtype
MPI-datatypen för elementen i mottagarbufferten.Comm
MPI_Comm communicator-handtaget.
Returvärde
Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.
I Fortran lagras returvärdet i parametern IERROR .
Fortran
MPI_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERROR
Kommentarer
Typsignaturen som är associerad med parametern sendtype i en process måste vara lika med den typsignatur som är associerad med parametern recvtype i en annan process.
Om comm-parametern refererar till en intracommunicator är resultatet av ett anrop till MPI_ALLGATHER(...) som om alla processer som körs n anropar för MPI_Gather(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,root,comm)root = 0 , ..., n-1.
Om kommaparametern refererar till en intercommunicator bidrar varje process i en grupp, till exempel grupp A, med antalet dataobjekt som anges i parametern sendcount . Dessa data sammanfogas och resultatet lagras vid varje process i den andra gruppen, grupp B. Omvänt lagras sammanfogningen av data för processerna i grupp B vid varje process i grupp A. Parametrarna för att skicka buffert i grupp A måste vara konsekventa med parametrarna för mottagningsbufferten i grupp B och vice versa.
Antalet objekt som skickas av processer i grupp A behöver inte vara lika med antalet objekt som skickas av processer i grupp B. I synnerhet kan du flytta data i endast en riktning genom att ange sendcount == 0 för kommunikationen i omvänd riktning.
Krav
Produkt |
HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package eller HPC Pack 2008 Client Utilities |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |