다음을 통해 공유


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
    축소 작업

  • 승리
    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

설명

데이터 형식 의 한 요소를 원본 버퍼(origin_addr)에서 오프셋 target_disp 버퍼로 누적하고, target_rankwin으로 지정된 대상 창에서 작업 작업을 사용하고, 누적 전에 대상 버퍼의 콘텐츠를 result_addr 결과 버퍼에 반환합니다.

원본 및 결과 버퍼(origin_addrresult_addr)는 연결 해제되어야 합니다. MPI_NO_OP 또는MPI_REPLACE 뿐만 아니라 MPI_Reduce 대해 미리 정의된 작업은 op로 지정할 수 있습니다. 사용자 정의 함수를 사용할 수 없습니다. 데이터 형식 인수는 미리 정의된 데이터 형식이어야 합니다. 작업은 원자성으로 실행됩니다.

요구 사항

제품

HPC Pack 2012 MS-MPI 재배포 가능 패키지, HPC Pack 2008 R2 MS-MPI 재배포 가능 패키지, HPC Pack 2008 MS-MPI 재배포 가능 패키지 또는 HPC Pack 2008 클라이언트 유틸리티

헤더

Mpi.h; Mpif.h

라이브러리

Msmpi.lib

DLL

Msmpi.dll

추가 정보

MPI One-Sided Communications Functions