MPI_Ireduce 함수
비 차단 방식으로 그룹의 모든 멤버에서 전역 축소 작업(예: 합계, 최대 또는 논리 및)을 수행합니다.
구문
int MPIAPI MPI_Ireduce(
_In_ void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
매개 변수
sendbuf [in]
감소에 사용할 이 순위의 데이터를 포함하는 버퍼에 대한 포인터입니다. 버퍼는 데이터 형식 핸들로 표시된 MPI_Datatype연속 요소 수로 구성됩니다. 메시지 길이는 바이트 수가 아닌 요소 수로 지정됩니다.recvbuf [out, optional]
감소 작업의 결과를 받을 버퍼에 대한 포인터입니다. 이 매개 변수는 루트 프로세스에서만 중요합니다.count [in]
이 프로세스에서 보낼 요소의 수입니다.datatype [in]
sendbuf에 있는 각 요소의 데이터 형식을 나타내는 MPI_Datatype 핸들입니다.op [in]
수행할 전역 감소 작업을 나타내는 MPI_Op 핸들입니다. 핸들은 기본 제공 또는 애플리케이션 정의 작업을 나타낼 수 있습니다. 미리 정의된 작업 목록은 MPI_Op 항목을 참조하세요.root [in]
MPI_Commcomm 내의 수신 프로세스의 순위입니다.comm [in]
MPI_Comm 통신기 핸들입니다.request [out]
통신 작업을 나타내는 MPI_Request 핸들입니다.
반환 값
성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.
Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.
Fortran
MPI_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR
설명
비차단 호출은 별도의 완료 호출에서 완료해야 하는 집단 감소 작업을 시작합니다. 시작되면 참여 프로세스에서 모든 계산 또는 기타 통신과 독립적으로 작업이 진행될 수 있습니다. 이러한 방식으로 비차단 감소 작업은 "백그라운드"에서 실행하여 감소 작업의 가능한 동기화 효과를 완화할 수 있습니다.
모든 완료 호출(예: MPI_Wait)은 비차단 감소 작업에 지원됩니다.
요구 사항
제품 |
Microsoft MPI v6 |
헤더 |
Mpi.h; Mpif.h |
라이브러리 |
Msmpi.lib |
DLL |
Msmpi.dll |