MPI_Bcast 함수
그룹의 한 멤버에서 그룹의 모든 멤버로 데이터를 브로드캐스트합니다.
구문
int MPIAPI MPI_Bcast(
_Inout_ void *buffer,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ int root,
_In_ MPI_Comm comm
);
매개 변수
buffer [in, out]
데이터 버퍼에 대한 포인터입니다. 루트 매개 변수로 지정된 프로세스에서 버퍼에는 브로드캐스트할 데이터가 포함됩니다. comm 매개 변수로 지정된 통신자의 다른 모든 프로세스에서 버퍼는 루트 프로세스에서 데이터 브로드캐스트를 받습니다.count [in]
버퍼의 데이터 요소 수입니다. count 매개 변수가 0이면 메시지의 데이터 부분이 비어 있습니다.datatype [in]
송신 버퍼에 있는 요소의 MPI 데이터 형식입니다.root [in]
데이터를 보내는 프로세스의 순위입니다.comm [in]
MPI_Comm 커뮤니케이터 핸들입니다.
반환 값
성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.
Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.
Fortran
MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
<type> BUFFER(*)
INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR
설명
각 프로세스의 개수 및 데이터 형식 매개 변수에 지정된 형식 서명은 루트의 형식 서명과 같아야 합니다. 이 요구 사항은 전송되는 데이터의 양이 각 프로세스와 루트 간에 쌍 단위로 수신된 양과 같아야 한다는 것을 의미합니다. MPI_Bcast 및 기타 모든 데이터 이동 집단 루틴은 이러한 제한을 만듭니다. 발신자와 수신자 간의 고유 형식 맵은 여전히 허용됩니다.
comm 매개 변수가 통신 내를 참조하는 경우 MPI_Bcast 함수는 지정된 프로세스의 메시지를 자신을 포함하는 그룹의 모든 프로세스로 브로드캐스트합니다. 동일한 매개 변수를 사용하는 그룹의 모든 멤버가 호출합니다. 반환할 때 루트 버퍼의 콘텐츠는 다른 모든 프로세스에 복사됩니다.
comm 매개 변수가 상호 통신자를 참조하는 경우 호출에는 상호 통신기의 모든 프로세스가 포함되지만 루트 프로세스를 정의하는 하나의 그룹 A 그룹이 포함됩니다. 다른 그룹 B의 모든 프로세스는 루트 매개 변수, 즉 그룹 A의 루트 프로세스 순위에서 동일한 값을 설정합니다. 루트 프로세스는 루트 매개 변수에 MPI_ROOT 값을 설정합니다. 그룹 A의 다른 모든 프로세스는 루트 매개 변수에 MPI_PROC_NULL 값을 설정합니다. 데이터는 루트 프로세스에서 그룹 B의 모든 프로세스로 브로드캐스트됩니다. 그룹 B에 있는 프로세스의 버퍼 매개 변수는 루트 프로세스의 버퍼 매개 변수와 일치해야 합니다.
요구 사항
제품 |
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 |