MPI_Comm_create 함수
별도의 통신기에서 MIMD(다중 명령 다중 데이터) 계산을 위해 프로세스의 하위 집합을 추출합니다.
구문
int MPIAPI MPI_Comm_create(
MPI_Comm comm,
MPI_Group group,
_Out_ MPI_Comm *newcomm
);
매개 변수
통신
원본 통신기입니다.group
원본 통신기에서 프로세스의 요청된 하위 집합을 정의하는 그룹입니다.newcomm [out]
반환할 때 에는 새 통신자에 대한 핸들이 포함됩니다.
반환 값
성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.
Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.
Fortran
MPI_COMM_CREATE(COMM,GROUP,NEWCOMM,IERROR)
INTEGER COMM, GROUP, NEWCOMM, IERROR
설명
이 함수가 만드는 커뮤니케이터는 MPI_Comm_create 함수 또는 다른 통신기 생성자를 사용하여 병렬 하위 계산으로 추가로 세분화할 수 있습니다. MPI_Comm_split 함수는 MPI_Comm 개체를 만드는 보다 일반적인 함수입니다.
comm 매개 변수가 통신 내 매개 변수를 참조하는 경우 이 함수는 그룹 매개 변수에 정의된 대로 통신 그룹과 함께 새 통신자를 반환합니다. 캐시된 정보가 원본 통신기에서 새 통신기로 전파되지 않습니다. 각 프로세스는 원본 통신자와 연결된 그룹의 하위 그룹인 그룹 매개 변수를 사용하여 를 호출해야 합니다. 가능한 값은 MPI_GROUP_EMPTY. 프로세스는 그룹 매개 변수에 대해 다른 값을 지정할 수 있습니다. 프로세스가 비어 있지 않은 그룹을 사용하여 를 호출하는 경우 해당 그룹의 모든 프로세스는 동일한 순서의 동일한 멤버인 그룹 매개 변수에 대해 동일한 값을 가진 함수를 호출해야 합니다. 그렇지 않으면 함수가 오류를 반환합니다. 이 결과는 프로세스에서 지정된 그룹 집합을 분리해야 했음을 의미합니다. 호출 프로세스가 그룹 매개 변수에 지정된 그룹의 멤버인 경우 newcomm 매개 변수는 지정된 그룹을 연결된 그룹으로 사용하는 통신기를 나타냅니다. 프로세스에서 속하지 않는 그룹(예: MPI_GROUP_EMPTY)을 지정하는 경우 newcomm 매개 변수는 MPI_COMM_NULL 반환합니다.
인터페이스는 comm의 모든 프로세스에서 동일한 그룹이 필요한 MPI-1.1의 원래 메커니즘을 지원합니다. MPI-2.2에서 확장되어 사용자가 연결이 해제된 하위 그룹의 멤버 자격을 이미 알고 있을 때 MPI_Comm_split 함수가 발생하는 불필요한 통신을 제거하기 위해 구현을 사용할 수 있도록 비연속 하위 그룹을 사용할 수 있습니다.
MPI_Comm_create 함수는 집합적이며 원본 통신기 그룹의 모든 프로세스에서 호출해야 합니다. 전체 그룹이 통화에 참여해야 하는 요구 사항은 다음과 같은 문제에서 비롯되었습니다.
- 이를 통해 구현은 정기적인 집단 통신 위에 MPI_Comm_create 함수를 계층화할 수 있습니다.
- 특히 부분적으로 겹치는 그룹이 새 커뮤니케이터를 만드는 데 사용되는 경우 추가 안전을 제공합니다.
- 구현에서 컨텍스트 만들기와 관련된 일부 통신을 방지할 수 있습니다.
comm 매개 변수가 상호 통신자를 참조하는 경우 생성된 커뮤니케이터는 로컬 그룹이 그룹 매개 변수에 지정된 프로세스로만 구성된 상호 통신자이기도 합니다. 그룹 매개 변수에서 새 통신기의 일부가 될 입력 상호 통신기의 로컬 그룹에 해당 프로세스만 지정합니다. 통신자의 동일한 로컬 그룹에 있는 모든 프로세스는 그룹 매개 변수에 대해 동일한 값, 즉 동일한 멤버를 동일한 순서로 지정해야 합니다. 두 그룹 중 하나가 상호 통신기의 로컬 그룹에 하나 이상의 프로세스를 지정하지 않거나 호출 프로세스가 그룹에 포함되지 않은 경우 오류가 반환됩니다.
요구 사항
제품 |
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 |