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 |