Freigeben über


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 Puffers

  • result_addr [out]
    Erste Adresse des Ergebnispuffers

  • datatype
    Datentyp jedes Eintrags im Ursprungs-, Ergebnis- und Zielpuffer

  • target_rank
    Rang des Ziels

  • target_disp
    Verschiebung vom Anfang des Fensters zum Anfang des Zielpuffers

  • Op
    Reduzieren des Vorgangs

  • win
    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

Weitere Informationen

MPI One-Sided Communications Functions