共用方式為


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 參數為零,則訊息的資料部分是空的。

  • 資料類型 [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 參數參考 intercomicator,則呼叫會牽涉到內部通訊器中的所有進程,但有一個群組 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