共用方式為


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

另請參閱

MPI 集體函式

MPI_Bcast

MPI_Datatype

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome

MPI_Comm