Dela via


funktionen MPI_Get_accumulate

Utför atomisk läs-ändra-skrivning och returnerar data före den ackumulerade åtgärden.

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
);

Parametrar

  • origin_addr [in]
    buffertens initiala adress

  • origin_count
    antal poster i bufferten

  • origin_datatype
    datatyp för varje buffertpost

  • result_addr [ut]
    startadress för resultatbuffert

  • result_count
    antal poster i resultatbufferten

  • result_datatype
    datatyp för varje post i resultatbufferten

  • target_rank
    rangordning efter mål

  • target_disp
    förskjutning från början av fönstret till början av målbufferten

  • target_count
    antal poster i målbufferten

  • Datatyp
    datatyp för varje post i målbufferten

  • Op
    fördefinierad reduce-åtgärd

  • Vinna
    fönsterobjekt

Returvärde

Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.

I Fortran lagras returvärdet i parametern IERROR .

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

Kommentarer

Ackumulera origin_count element av typen origin_datatype från ursprungsbufferten (origin_addr) till bufferten vid förskjutning target_disp, i målfönstret som anges av target_rank och vinna, med operation op och retur i resultatbufferten result_addr innehållet i målbufferten före ackumuleringen, som anges av target_disp, target_count och target_datatype. De data som överförs från ursprunget till målet måste passa, utan trunkering, i målbufferten. På samma sätt måste de data som kopieras från mål till ursprung passa, utan trunkering, i resultatbufferten.

Ursprung och resultatbuffertar (origin_addr och result_addr) måste vara åtskilda. Varje datatypargument måste vara en fördefinierad datatyp eller en härledd datatyp där alla grundläggande komponenter har samma fördefinierade datatyp. Alla datatypsargument måste konstrueras från samma fördefinierade datatyp. Åtgärdsåtgärden gäller för element av den fördefinierade typen. target_datatype får inte ange överlappande poster, och målbufferten måste få plats i målfönstret eller i det anslutna minnet i ett dynamiskt fönster. Åtgärden körs atomiskt för varje grundläggande datatyp.

Krav

Produkt

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package eller HPC Pack 2008 Client Utilities

Huvud

Mpi.h; Mpif.h

Bibliotek

Msmpi.lib

DLL

Msmpi.dll

Se även

MPI One-Sided Communications Functions