다음을 통해 공유


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

추가 정보

MPI 집합 함수

MPI_Datatype