다음을 통해 공유


MPI_Allreduce 함수

모든 프로세스의 값을 결합하고 결과를 모든 프로세스에 다시 배포합니다.

구문

int MPIAPI MPI_Allreduce(
  _In_opt_  const void         *sendbuf,
  _Out_opt_       void         *recvbuf,
  _In_            int          count,
  _In_            MPI_Datatype datatype,
  _In_            MPI_Op       op,
  _In_            MPI_Comm     comm
);

매개 변수

  • sendbuf [in, optional]
    그룹의 모든 프로세스로 보낼 데이터에 대한 포인터입니다. 버퍼에 있는 요소의 수와 데이터 형식은 count 및 datatype 매개 변수에 지정됩니다.

    comm 매개 변수가 통신 내를 참조하는 경우 모든 프로세스에서 MPI_IN_PLACE 지정하여 현재 위치 옵션을 지정할 수 있습니다. 이 경우 입력 데이터는 수신 버퍼의 각 프로세스에서 가져와 출력 데이터로 대체됩니다.

  • recvbuf [out, optional]
    감소 작업의 결과를 받을 버퍼에 대한 포인터입니다. 이 매개 변수는 루트 프로세스에서만 중요합니다.

  • count [in]
    이 프로세스에서 보낼 요소의 수입니다.

  • datatype [in]
    버퍼에 있는 각 요소의 MPI_Datatype . 이 매개 변수는 op 매개 변수에 지정된 작업과 호환되어야 합니다.

  • op [in]
    수행할 전역 감소 작업을 나타내는 MPI_Op 핸들입니다. 핸들은 기본 제공 또는 애플리케이션 정의 작업을 나타낼 수 있습니다. 미리 정의된 작업 목록은 MPI_Op 참조하세요.

  • comm [in]
    MPI_Comm 통신기 핸들입니다.

반환 값

성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.

Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.

Fortran

    MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER COUNT, DATATYPE, OP, COMM, IERROR

설명

comm이 상호 통신자인 경우 그룹 A의 프로세스에서 제공하는 데이터 감소의 결과는 그룹 B의 각 프로세스에 저장되고 그 반대의 경우도 마찬가지입니다. 두 그룹 모두 동일한 형식 서명을 지정하는 개수데이터 형식 인수를 제공해야 합니다.

모든 완료 호출(예: MPI_Wait)은 비차단 감소 작업에 지원됩니다.

요구 사항

제품

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

헤더

Mpi.h; Mpif.h

라이브러리

Msmpi.lib

DLL

Msmpi.dll

추가 정보

MPI 집합 함수

MPI_Reduce

MPI_Datatype

MPI_Op