Partilhar via


função MPI_Get_accumulate

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

Sintaxe

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

Parâmetros

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

  • origin_count
    número de entradas na memória intermédia

  • origin_datatype
    tipo de dados de cada entrada de memória intermédia

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

  • result_count
    número de entradas na memória intermédia de resultados

  • result_datatype
    tipo de dados de cada entrada na memória intermédia de resultados

  • 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

  • target_count
    número de entradas na memória intermédia de destino

  • tipo de dados
    tipo de dados de cada entrada na memória intermédia de destino

  • op
    operação de redução predefinida

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

Observações

Acumule origin_count elementos do tipo origin_datatype da memória intermédia de origem (origin_addr) para a memória intermédia no 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, especificada por target_disp, target_count e target_datatype. Os dados transferidos da origem para o destino têm de caber, sem truncagem, na memória intermédia de destino. Da mesma forma, os dados copiados do destino para a origem têm de caber, sem truncagem, na memória intermédia de resultados.

As memórias intermédias de origem e de resultados (origin_addr e result_addr) têm de ser desarticuladas. Cada argumento de tipo de dados tem de ser um tipo de dados predefinido ou um tipo de dados derivado em que todos os componentes básicos sejam do mesmo tipo de dados predefinido. Todos os argumentos de tipo de dados têm de ser construídos a partir do mesmo tipo de dados predefinido. A operação de operação aplica-se a elementos desse tipo predefinido. target_datatype não pode especificar entradas sobrepostas e a memória intermédia de destino tem de caber na janela de destino ou na memória anexada numa janela dinâmica. A operação é executada atomicamente para cada tipo de dados básico.

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