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


функция MPI_Fetch_and_op

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

Синтаксис

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

Параметры

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

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

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

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

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

  • Op
    операция reduce

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

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

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

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

Комментарии

Накапливайте один элемент типа datatype из исходного буфера (origin_addr) в буфер со смещением target_disp в целевом окне, заданном параметром target_rank и win, используя операцию операции и возвращая в буфер результата result_addr содержимое целевого буфера перед накоплением.

Исходный и результирующий буферы (origin_addr и result_addr) должны быть несвязанными. Любые предопределенные операции для MPI_Reduce, а также MPI_NO_OP или MPI_REPLACE можно указать как op; Пользовательские функции нельзя использовать. Аргумент 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