Dela via


funktionen MPI_Fetch_and_op

Utför atomic read-modify-write på ett dataelement och returnerar dataelementet före den ackumulerade åtgärden.

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

Parametrar

  • origin_addr [in]
    buffertens initiala adress

  • result_addr [ut]
    startadress för resultatbuffert

  • Datatyp
    datatyp för varje post i ursprung, resultat och målbuffert

  • target_rank
    rangordning för mål

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

  • Op
    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_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

Kommentarer

Ackumulera ett element av typen datatyp från ursprungsbufferten (origin_addr) till bufferten vid förskjutning target_disp, i målfönstret som anges av target_rank och vinna, med hjälp av åtgärden op och returnera i resultatbufferten result_addr innehållet i målbufferten före ackumuleringen.

Ursprunget och resultatbuffertarna (origin_addr och result_addr) måste vara åtskilda. Alla fördefinierade åtgärder för MPI_Reduce, samt MPI_NO_OP eller MPI_REPLACE, kan anges som op; användardefinierade funktioner kan inte användas. Argumentet datatyp måste vara en fördefinierad datatyp. Åtgärden körs atomiskt.

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