Compartilhar via


Função MPI_Get_accumulate

Executa leitura-modificação-gravação atômica e retorna 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 [in]
    endereço inicial do buffer

  • origin_count
    número de entradas no buffer

  • origin_datatype
    tipo de dados de cada entrada de buffer

  • result_addr [out]
    endereço inicial do buffer de resultados

  • result_count
    número de entradas no buffer de resultados

  • result_datatype
    tipo de dados de cada entrada no buffer de resultados

  • target_rank
    classificação de destino

  • target_disp
    deslocamento do início da janela até o início do buffer de destino

  • target_count
    número de entradas no buffer de destino

  • datatype
    tipo de dados de cada entrada no buffer de destino

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

  • win
    objeto window

Retornar valor

Retorna MPI_SUCCESS em caso de êxito. Caso contrário, o valor retornado será um código de erro.

Em Fortran, o valor retornado é 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

Comentários

Acumular origin_count elementos do tipo origin_datatype do buffer de origem (origin_addr) para o buffer no target_disp de deslocamento, na janela de destino especificada por target_rank e win, usando a operação op e retornar no buffer de resultados result_addr o conteúdo do buffer de destino antes do acúmulo, especificado por target_disp, target_count e target_datatype. Os dados transferidos de origem para destino devem caber, sem truncamento, no buffer de destino. Da mesma forma, os dados copiados de destino para origem devem caber, sem truncamento, no buffer de resultados.

Os buffers de origem e resultado (origin_addr e result_addr) devem ser não contíguos. Cada argumento de tipo de dados deve ser um tipo de dados predefinido ou um tipo de dados derivado em que todos os componentes básicos são do mesmo tipo de dados predefinido. Todos os argumentos de tipo de dados devem ser construídos do mesmo tipo de dados predefinido. A operação op aplica-se a elementos desse tipo predefinido. target_datatype não deve especificar entradas sobrepostas e o buffer de destino deve caber na janela de destino ou na memória anexada em uma janela dinâmica. A operação é executada atomicamente para cada tipo de dados básico.

Requisitos

Produto

Pacote Redistribuível do HPC Pack 2012 MS-MPI, Pacote Redistribuível HPC Pack 2008 R2 MS-MPI, Pacote Redistribuível do HPC Pack 2008 MS-MPI ou Utilitários de Cliente HPC Pack 2008

parâmetro

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções de comunicação de One-Sided MPI