MPI_Fetch_and_op-Funktion
Führt atomischen Lese-/Änderungs-Schreibzugriff für ein Datenelement aus und gibt das Datenelement vor dem Akkumulationsvorgang zurück.
Syntax
int MPIAPI MPI_Fetch_and_op(
_In_ void *origin_addr,
_Out_ void *result_addr,
MPI_Datatype datatype,
int target_rank,
MPI_Aint target_disp,
MPI_Op op,
MPI_Win win
);
Parameter
origin_addr [in]
Anfängliche Adresse des Puffersresult_addr [out]
Erste Adresse des Ergebnispuffersdatatype
Datentyp jedes Eintrags im Ursprungs-, Ergebnis- und Zielpuffertarget_rank
Rang des Zielstarget_disp
Verschiebung vom Anfang des Fensters zum Anfang des ZielpuffersOp
Reduzieren des Vorgangswin
window-Objekt
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_FETCH_AND_OP(ORIGIN_ADDR, RESULT_ADDR, DATATYPE,
TARGET_RANK, TARGET_DISP, OP, WIN, IERROR)
<type> ORIGIN_ADDR(*), RESULT_ADDR(*)
INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
INTEGER DATATYPE, TARGET_RANK, OP, WIN, IERROR
Hinweise
Akkumulieren Sie ein Element des Typdatentyps aus dem Ursprungspuffer (origin_addr) in den Puffer bei Offset target_disp im zielfenster, das durch target_rank und win angegeben wird, indem Sie den Vorgang op verwenden, und geben Sie im Ergebnispuffer result_addr inhalt des Zielpuffers vor der Akkumulation zurück.
Die Ursprungs- und Ergebnispuffer (origin_addr und result_addr) müssen getrennt sein. Alle vordefinierten Vorgänge für MPI_Reduce sowie MPI_NO_OP oder MPI_REPLACE können als op angegeben werden. Benutzerdefinierte Funktionen können nicht verwendet werden. Das Datentypargument muss ein vordefinierter Datentyp sein. Der Vorgang wird atomar ausgeführt.
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 |