Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfasst eine variable Datenmenge von jedem Mitglied einer Gruppe und sendet die Daten an alle Mitglieder der Gruppe. Die MPI_Allgatherv Funktion ist wie die MPI_Gatherv, mit der Ausnahme, dass alle Prozesse das Ergebnis und nicht nur den Stamm erhalten. Der Datenblock, der vom j-tenProzess gesendet wird, wird von jedem Prozess empfangen und im j-tenBlock des Puffers recvbuf platziert. Diese Blöcke müssen nicht alle die gleiche Größe haben.
Syntax
int MPIAPI MPI_Allgatherv(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_ void *recvbuf,
_In_ int *recvcounts,
_In_ int *displs,
MPI_Datatype recvtype,
MPI_Comm comm
);
Parameter
sendbuf [in]
Der Zeiger auf die Daten, die an alle Prozesse in der Gruppe gesendet werden sollen. Die Anzahl und der Datentyp der Elemente im Puffer werden in den Parametern sendcount und sendtype angegeben. Jedes Element im Puffer entspricht einem Prozess in der Gruppe.Wenn der comm-Parameter auf einen Intrakommunikations-Parameter verweist, können Sie eine direkte Option angeben, indem Sie in allen Prozessen MPI_IN_PLACE angeben. Die Parameter sendcount und sendtype werden ignoriert. Jeder Prozess gibt Daten in das entsprechende Empfangspufferelement ein. Der nth-Prozess sendet Daten an das nth-Element des Empfangspuffers.
sendcount
Die Anzahl der Datenelemente, die dieser Prozess im Puffer sendet, der im sendbuf-Parameter angegeben ist. Wenn ein Element in sendcount null ist, ist der Datenteil der Nachricht aus diesem Prozess leer.sendtype
Der MPI-Datentyp der Elemente im Sendepuffer.recvbuf [out]
Der Zeiger auf einen Puffer, der die Daten enthält, die von jedem Prozess empfangen werden. Die Anzahl und der Datentyp der Elemente im Puffer werden in den Parametern recvcount und recvtype angegeben.recvcounts [in]
Die Anzahl der Datenelemente aus jedem Communicatorprozess im Empfangspuffer.displs [in]
Der Speicherort der Daten aus den einzelnen Communicatorprozessen relativ zum recvbuf-Parameter .In den Parameterarrays recvbuf, recvcounts und displs bezieht sich das nth-Element jedes Arrays auf die Daten, die vom n-tenCommunicator-Prozess empfangen werden.
recvtype
Der MPI-Datentyp jedes Elements im Puffer.comm
Das MPI_Comm Communicatorhandle.
Rückgabewert
Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.
In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.
Fortran
MPI_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,DISPLS, RECVTYPE,COMM, IERROR)
<type> SENDBUF(*), R.ECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERROR
Hinweise
Die Verwendungsregeln für MPI_Allgatherv entsprechen den Regeln für MPI_Gatherv.
Die Typsignatur, die dem sendtype-Parameter in einem Prozess zugeordnet ist, muss gleich der Typsignatur sein, die dem recvtype-Parameter in jedem anderen Prozess zugeordnet ist.
Wenn der comm-Parameter auf einen Intrakommunikations-Parameter verweist, ist das Ergebnis eines Aufrufs von MPI_Allgatherv(...)so, als ob alle Prozesse Aufrufe von MPI_GatherV(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs,recvtype,root,comm)ausgeführt haben, für root = 0 , ..., n-1.
Wenn der comm-Parameter auf einen Intercommunicator verweist, trägt jeder Prozess einer Gruppe, z. B. Gruppe A, die Anzahl der Datenelemente bei, die im sendcount-Parameter angegeben sind. Diese Daten werden verkettet, und das Ergebnis wird bei jedem Prozess in der anderen Gruppe, Gruppe B, gespeichert. Umgekehrt wird die Verkettung der Daten der Prozesse in Gruppe B bei jedem Prozess in Gruppe A gespeichert. Die Sendepufferparameter in Gruppe A müssen mit den Empfangspufferparametern in Gruppe B konsistent sein und umgekehrt.
Anforderungen
Produkt |
HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package oder HPC Pack 2008 Client Utilities |
Header |
Mpi.h; Mpif.h |
Bibliothek |
Msmpi.lib |
DLL |
Msmpi.dll |