Partilhar via


função MPI_Fetch_and_op

Executa read-modify-write atómico num elemento de dados e devolve o elemento de dados antes da operação de acumulação.

Sintaxe

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

Parâmetros

  • origin_addr [em]
    endereço inicial da memória intermédia

  • result_addr [fora]
    endereço inicial da memória intermédia de resultados

  • tipo de dados
    tipo de dados de cada entrada na origem, resultado e memória intermédia de destino

  • target_rank
    classificação do destino

  • target_disp
    deslocamento do início da janela para o início da memória intermédia de destino

  • op
    operação de redução

  • ganhar
    objeto de janela

Valor devolvido

Devolve MPI_SUCCESS com êxito. Caso contrário, o valor devolvido é um código de erro.

Em Fortran, o valor devolvido é armazenado no parâmetro 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

Observações

Acumule um elemento do tipo de tipo datatype da memória intermédia de origem (origin_addr) para a memória intermédia na target_disp de deslocamento, na janela de destino especificada por target_rank e win, utilizando a operação op e devolvendo na memória intermédia de resultados result_addr o conteúdo da memória intermédia de destino antes da acumulação.

As memórias intermédias de origem e de resultados (origin_addr e result_addr) têm de ser desarticuladas. Qualquer uma das operações predefinidas para MPI_Reduce, bem como MPI_NO_OP ou MPI_REPLACE, pode ser especificada como op; as funções definidas pelo utilizador não podem ser utilizadas. O argumento tipo de dados tem de ser um tipo de dados predefinido. A operação é executada atomicamente.

Requisitos

Produto

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

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções de Comunicações One-Sided MPI