MPI_Comm_split 함수
지정된 통신자와 연결된 그룹을 지정된 수의 연결되지 않은 하위 그룹으로 분할합니다.
구문
int MPIAPI MPI_Comm_split(
MPI_Comm comm,
int color,
int key,
_Out_ MPI_Comm *newcomm
);
매개 변수
통신
분할할 통신기입니다.color
호출 프로세스를 할당할 새 통신기입니다. 색 값은 음수가 아니어야 합니다.프로세스에서 MPI_UNDEFINED 색 값을 지정하는 경우 함수는 newcomm 매개 변수의 MPI_COMM_NULL 호출 프로세스에 반환합니다.
key
새 통신기 그룹에서 호출 프로세스의 상대 순위입니다. 키 및 색 매개 변수 사용에 대한 자세한 내용은 비고를 참조하세요.newcomm [out]
반환할 때 에는 새 통신자에 대한 핸들이 포함됩니다.
반환 값
성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.
Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.
Fortran
MPI_COMM_SPLIT(COMM,COLOR,KEY,NEWCOMM,IERROR)
INTEGER COMM, COLOR, KEY, NEWCOMM, IERROR
설명
이는 집합적 함수이지만 각 프로세스는 색 및 키 매개 변수에 대해 서로 다른 값을 지정할 수 있습니다.
이는 단일 통신 프로세스 그룹을 임의의 수의 하위 그룹으로 나누는 매우 강력한 메커니즘입니다. 하위 그룹의 수는 모든 프로세스에 대해 지정된 색 수에 따라 결정됩니다. 결과 전달자는 겹치지 않습니다. 이러한 방식으로 통신기를 세분화하면 멀티그리드 또는 선형 대수와 같은 계산 계층 구조를 정의하는 데 유용합니다.
각 하위 그룹에는 색 매개 변수에 대해 동일한 값을 지정한 모든 프로세스가 포함됩니다. 각 하위 그룹 내에서 프로세스는 키 매개 변수의 값으로 정의된 순서대로 순위가 지정되며 이전 그룹의 순위에 따라 관계가 끊어집니다.
통신 내 통신기를 사용하면 에 대한 호출은 에 대한 호출 MPI_COMM_CREATE(comm, group, new-comm)
MPI_COMM_SPLIT(comm, color, key, newcomm)
과 동일합니다. 여기서 그룹 멤버인 프로세스는 모든 비연속 그룹의 고유 번호 매기기를 기반으로 그룹 수를 지정하고 , 색 매개 변수 및 키 매개 변수에 대한 그룹의 순위에 대해 그룹 번호를 지정합니다. 그룹의 멤버가 아닌 모든 프로세스는 색 매개 변수에 대한 MPI_UNDEFINED 지정합니다.
하나의 색에 대해 키 값이 고유할 필요는 없습니다. MPI_Comm_split 함수는 키 매개 변수의 값에 따라 프로세스를 순서대로 정렬하고 원본 그룹의 상대 순위를 기준으로 관계를 정렬합니다. 모든 키 매개 변수에 대해 동일한 값을 지정하면 지정된 색의 모든 프로세스는 부모 그룹에 있는 것과 동일한 상대 순위 순서를 갖습니다.
통신 내 함수의 경우 MPI_Comm_split 및 MPI_Comm_create 함수는 통신 그룹을 연결되지 않은 하위 그룹으로 분할하는 유사한 기능을 제공합니다.
MPI_Comm_split 함수는 일부 프로세스에 그룹의 다른 멤버에 대한 전체 정보가 없지만 모든 프로세스에 속한 그룹의 색이 있는 경우에 사용됩니다. 이 경우 MPI 구현은 통신을 통해 다른 그룹 멤버를 검색합니다.
MPI_Comm_create 함수는 모든 프로세스에 그룹 멤버의 전체 정보가 있는 경우에 사용됩니다. 이 경우 MPI 구현은 그룹 멤버 자격을 검색하는 데 필요한 추가 통신을 방지할 수 있습니다.
MPI_Comm_split 만든 Communicator는 겹칠 수 없습니다. 이 제한을 극복하기 위해 MPI_Comm_split 함수를 여러 번 호출할 수 있습니다. 이러한 방식으로 여러 겹치는 통신 구조를 만들 수 있습니다. 이러한 분할 작업에서 색 및 키 매개 변수를 창의적으로 사용하는 것이 좋습니다.
상호 통신기에서 MPI_Comm_split 함수의 결과는 오른쪽에 있는 프로세스와 동일한 색의 왼쪽에 있는 프로세스가 결합되어 새 상호 통신기를 만드는 것입니다. 키 매개 변수는 상호 통신기 양쪽에 있는 프로세스의 상대 순위를 정의합니다. MPI_COMM_NULL 핸들이 있는 새 통신자는 MPI_UNDEFINED 색으로 지정하거나 상호 통신기의 한쪽에만 지정된 색을 지정하는 프로세스에 반환됩니다.
요구 사항
제품 |
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 |