MPI_Igatherv 함수
비차단 방식으로 그룹의 모든 멤버에서 하나의 멤버로 변수 데이터를 수집합니다.
구문
int MPIAPI MPI_Igatherv(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_opt_ const int recvcounts[],
_In_opt_ const int displs[],
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
매개 변수
sendbuf [in, optional]
루트 프로세스로 보낼 데이터가 포함된 버퍼에 대한 핸들입니다.comm 매개 변수가 통신 내를 참조하는 경우 모든 프로세스에서 MPI_IN_PLACE 지정하여 현재 위치 옵션을 지정할 수 있습니다. sendcount 및 sendtype 매개 변수는 무시됩니다. 각 프로세스는 해당 수신 버퍼 요소에 데이터를 입력합니다. n번째 프로세스는 수신 버퍼의 n번째 요소로 데이터를 보냅니다. 루트 프로세스에서 보낸 데이터는 수신 버퍼의 올바른 위치에 있는 것으로 간주됩니다.
sendcount [in]
송신 버퍼의 요소 수입니다. sendcount가 0이면 메시지의 데이터 부분이 비어 있습니다.sendtype [in]
버퍼에 있는 각 요소의 데이터 형식입니다.recvbuf [out, optional]
루트 프로세스에서 보낸 데이터를 포함하여 각 프로세스에서 받은 데이터를 포함하는 루트 프로세스의 버퍼에 대한 핸들입니다. 이 매개 변수는 루트 프로세스에서만 중요합니다. recvbuf 매개 변수는 루트가 아닌 모든 프로세스에 대해 무시됩니다.recvcounts[] [in, optional]
각 프로세스에서 수신되는 요소의 수입니다. 배열의 각 요소는 전송 프로세스의 순위에 해당합니다. 개수가 0이면 메시지의 데이터 부분이 비어 있습니다. 이 매개 변수는 루트 프로세스에서만 중요합니다.displs[] [in, optional]
각 통신기 프로세스의 데이터의 recvbuf 매개 변수를 기준으로 하는 위치입니다. 프로세스 j에서 받은 데이터는 sendbuf 포인터에서 루트 프로세스 오프셋 displs[j] 요소의 수신 버퍼에 배치됩니다.recvbuf, recvcounts 및 displs 매개 변수 배열에서 각 배열의 n번째 요소는 n번째 통신기 프로세스에서 수신된 데이터를 참조합니다.
이 매개 변수는 루트 프로세스에서만 중요합니다.
recvtype [in]
버퍼에 있는 각 요소의 데이터 형식입니다. 이 매개 변수는 루트 프로세스에서만 중요합니다.root [in]
지정된 통신기 내의 수신 프로세스의 순위입니다.comm [in]
MPI_Comm 통신기 핸들입니다.request [out]
통신 작업을 나타내는 MPI_Request 핸들입니다.
반환 값
성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.
Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.
Fortran
MPI_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, COMM, REQUEST, IERROR
설명
비차단 호출은 별도의 완료 호출에서 완료해야 하는 집단 감소 작업을 시작합니다. 시작되면 참여 프로세스에서 모든 계산 또는 기타 통신과 독립적으로 작업이 진행될 수 있습니다. 이러한 방식으로 비차단 감소 작업은 "백그라운드"에서 실행하여 감소 작업의 가능한 동기화 효과를 완화할 수 있습니다.
모든 완료 호출(예: MPI_Wait)은 비차단 감소 작업에 지원됩니다.
요구 사항
제품 |
Microsoft MPI v7 |
헤더 |
Mpi.h; Mpif.h |
라이브러리 |
Msmpi.lib |
DLL |
Msmpi.dll |