Freigeben über


MPI_Get_accumulate-Funktion

Führt atomares Lesen/Ändern-Schreiben aus und gibt die Daten vor dem Akkumulationsvorgang zurück.

Syntax

int MPIAPI MPI_Get_accumulate(
  _In_  void         *origin_addr,
        int          origin_count,
        MPI_Datatype origin_datatype,
  _Out_ void         *result_addr,
        int          result_count,
        MPI_Datatype result_datatype,
        int          target_rank,
        MPI_Aint     target_disp,
        int          target_count,
        MPI_Datatype datatype,
        MPI_Op       op,
        MPI_Win      win
);

Parameter

  • origin_addr [in]
    Anfängliche Adresse des Puffers

  • origin_count
    Anzahl der Einträge im Puffer

  • origin_datatype
    Datentyp jedes Puffereintrags

  • result_addr [out]
    Erste Adresse des Ergebnispuffers

  • result_count
    Anzahl der Einträge im Ergebnispuffer

  • result_datatype
    Datentyp jedes Eintrags im Ergebnispuffer

  • target_rank
    Rang des Ziels

  • target_disp
    Verschiebung vom Anfang des Fensters zum Anfang des Zielpuffers

  • target_count
    Anzahl der Einträge im Zielpuffer

  • datatype
    Datentyp jedes Eintrags im Zielpuffer

  • Op
    vordefinierter Reduzierungsvorgang

  • 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_GET_ACCUMULATE(ORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE, RESULT_ADDR, RESULT_COUNT, RESULT_DATATYPE,
                TARGET_RANK, TARGET_DISP, TARGET_COUNT, TARGET_DATATYPE, OP, WIN, IERROR)
        <type> ORIGIN_ADDR(*), RESULT_ADDR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
        INTEGER ORIGIN_COUNT, ORIGIN_DATATYPE, RESULT_COUNT, RESULT_DATATYPE, TARGET_RANK, TARGET_COUNT,
        TARGET_DATATYPE, OP, WIN, IERROR

Hinweise

Akkumulieren Sie origin_count Elemente vom Typ origin_datatype vom Ursprungspuffer (origin_addr) in den Puffer beim Offset target_disp im Zielfenster, das durch target_rank und Win angegeben wird, mithilfe des Vorgangsbetriebs und zurückgeben Sie im Ergebnispuffer result_addr den Inhalt des Zielpuffers vor der Akkumulation, die durch target_disp angegeben wird, target_count und target_datatype. Die vom Ursprung an das Ziel übertragenen Daten müssen ohne Abschneiden in den Zielpuffer passen. Ebenso müssen die vom Ziel in den Ursprung kopierten Daten ohne Abschneiden in den Ergebnispuffer passen.

Die Ursprungs- und Ergebnispuffer (origin_addr und result_addr) müssen getrennt sein. Jedes Datentypargument muss ein vordefinierter Datentyp oder ein abgeleiteter Datentyp sein, wobei alle grundlegenden Komponenten denselben vordefinierten Datentyp aufweisen. Alle Datentypargumente müssen aus demselben vordefinierten Datentyp erstellt werden. Der Vorgangsvorgang gilt für Elemente dieses vordefinierten Typs. target_datatype darf keine überlappenden Einträge angeben, und der Zielpuffer muss in das Zielfenster oder in den angefügten Arbeitsspeicher in einem dynamischen Fenster passen. Der Vorgang wird für jeden grundlegenden Datentyp 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 Kommunikationsfunktionen