MPI_Ibcast函式
以非封鎖方式,將訊息從具有排名「根」的進程廣播至通訊器所有其他進程。
語法
int MPIAPI MPI_Ibcast(
_Inout_ void *buffer,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
參數
緩衝區 [in, out]
數據緩衝區的指標。 在 根 參數所指定的進程上,緩衝區包含要廣播的數據。 在通訊器中由 comm 參數指定的所有其他進程上,緩衝區會接收根進程廣播的數據。 緩衝區 是由 數據類型 句柄所指示之 MPI_Datatype 後續元素 計數所組成。 訊息長度是以項目數目而非位元元組數目來指定。計數 [in]
緩衝區中的數據元素數目。 如果 計數 參數為零,則訊息的數據部分是空的。資料類型 [in]
MPI_Datatype 句柄,表示 緩衝區中每個項目的數據類型。根 [in]
MPI_Commcomm 傳送 緩衝區內的進程排名。comm [in]
MPI_Comm 通訊器句柄。要求 [out]
MPI_Request 表示通訊作業的句柄。
傳回值
傳回成功 MPI_SUCCESS。 否則,傳回值是錯誤碼。
在 Fortran 中,傳回值會儲存在 IERROR 參數中。
Fortran
MPI_IBCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR)
<type> BUFFER(*)
INTEGER COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR
言論
非封鎖呼叫會起始必須在個別完成呼叫中完成的集體廣播作業。 一旦起始之後,作業可能會獨立於參與程式中的任何計算或其他通訊進行。 如此一來,非封鎖的廣播作業就可以藉由在「背景」中執行廣播作業,以減輕廣播作業的可能同步處理效果。
所有完成呼叫(例如,MPI_Wait)都支援非封鎖廣播作業。
要求
產品 |
Microsoft MPI v6 |
頁眉 |
Mpi.h;Mpif.h |
圖書館 |
Msmpi.lib |
DLL |
Msmpi.dll |