Поделиться через


функция MPI_Get_accumulate

Выполняет атомарное чтение, изменение и запись и возвращает данные перед операцией накопления.

Синтаксис

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

Параметры

  • origin_addr [in]
    начальный адрес буфера

  • origin_count
    количество записей в буфере

  • origin_datatype
    тип данных каждой записи буфера

  • result_addr [out]
    начальный адрес буфера результатов

  • result_count
    количество записей в буфере результатов

  • result_datatype
    тип данных каждой записи в буфере результатов

  • target_rank
    ранг целевого объекта

  • target_disp
    смещение от начала окна до начала целевого буфера

  • target_count
    число записей в целевом буфере

  • datatype
    тип данных каждой записи в целевом буфере

  • Op
    предопределенная операция уменьшения

  • Выиграть
    объект window

Возвращаемое значение

Возвращает MPI_SUCCESS об успешном выполнении. В противном случае возвращаемое значение является кодом ошибки.

В Fortran возвращаемое значение хранится в параметре 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

Комментарии

Накапливать origin_count элементов типа origin_datatype из исходного буфера (origin_addr) в буфер с смещением target_disp в целевом окне, заданном параметром target_rank , и win, используя операцию операции и возвращая в буфере результатов result_addr содержимое целевого буфера перед накоплением, заданным target_disp. target_count и target_datatype. Данные, передаваемые от источника к целевому объекту, должны помещаться в целевой буфер без усечения. Аналогичным образом, данные, скопированные из целевого объекта в источник, должны помещаться в буфер результатов без усечения.

Исходный и результирующий буферы (origin_addr и result_addr) должны быть несвязанными. Каждый аргумент типа данных должен быть предопределенным или производным типом данных, где все базовые компоненты имеют один и тот же предопределенный тип данных. Все аргументы типа данных должны быть созданы на основе одного и того же предопределенного типа данных. Операция операции применяется к элементам этого предопределенного типа. target_datatype не должны указывать перекрывающиеся записи, а целевой буфер должен помещаться в целевое окно или в подключенной памяти в динамическом окне. Операция выполняется атомарно для каждого базового типа данных.

Требования

Продукт

Распространяемый пакет HPC 2012 MS-MPI, пакет HPC 2008 R2 распространяемый пакет MS-MPI, пакет HPC 2008 MS-MPI распространяемый пакет или служебные программы клиента ПАКЕТА HPC 2008

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

См. также раздел

Функции One-Sided связи MPI