MPI_Allreduce-Funktion
Kombiniert Werte aus allen Prozessen und verteilt das Ergebnis wieder an alle Prozesse.
Syntax
int MPIAPI MPI_Allreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm
);
Parameter
sendbuf [in, optional]
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 count und datatype angegeben.Wenn der comm-Parameter auf einen Intrakommunikationsgeber verweist, können Sie eine direkte Option angeben, indem Sie in allen Prozessen MPI_IN_PLACE angeben. In diesem Fall werden die Eingabedaten bei jedem Prozess aus dem Empfangspuffer übernommen, wo sie durch die Ausgabedaten ersetzt werden.
recvbuf [out, optional]
Der Zeiger auf einen Puffer, um das Ergebnis des Reduzierungsvorgangs zu empfangen. Dieser Parameter ist nur beim Stammprozess von Bedeutung.Anzahl [in]
Die Anzahl der Elemente, die von diesem Prozess gesendet werden sollen.Datentyp [in]
Die MPI_Datatype jedes Elements im Puffer. Dieser Parameter muss mit dem im op-Parameter angegebenen Vorgang kompatibel sein.op [in]
Das MPI_Op-Handle , das den auszuführenden globalen Reduzierungsvorgang angibt. Das Handle kann einen integrierten oder anwendungsdefinierten Vorgang angeben. Eine Liste vordefinierter Vorgänge finden Sie unter MPI_Op.comm [in]
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_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, COMM, IERROR
Hinweise
Wenn comm ein Interkommunikationsgeber ist, wird das Ergebnis der Reduzierung der von Prozessen in Gruppe A bereitgestellten Daten bei jedem Prozess in Gruppe B gespeichert und umgekehrt. Beide Gruppen sollten Count - und Datentypargumente bereitstellen, die dieselbe Typsignatur angeben.
Alle Vervollständigungsaufrufe (z. B. MPI_Wait) werden für nicht blockierende Reduzierungsvorgänge unterstützt.
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 |