次の方法で共有


MPI_Ibcast関数

ランク "root" のプロセスから、非ブロッキングの方法でコミュニケーターの他のすべてのプロセスにメッセージをブロードキャストします。

構文

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]
    バッファー内のデータ要素の数。 count パラメーターが 0 の場合、メッセージのデータ部分は空です。

  • datatype [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