次の方法で共有


MPI_Bcast関数

グループの 1 つのメンバーからグループのすべてのメンバーにデータをブロードキャストします。

構文

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 パラメーターが 0 の場合、メッセージのデータ部分は空です。

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

注釈

各プロセスの count パラメーターと datatype パラメーターで指定された型シグネチャは、ルートの型シグネチャと等しい必要があります。 この要件は、送信されるデータの量が、各プロセスとルートの間のペアごとの受信量と等しい必要があることを意味します。 MPI_Bcast およびその他のすべてのデータ移動集合ルーチンは、この制限を行います。 送信者と受信側の間の個別の型マップは引き続き許可されます。

comm パラメーターがコマンド内を参照している場合、MPI_Bcast関数は、指定されたプロセスから、それ自体を含むグループのすべてのプロセスにメッセージをブロードキャストします。 同じパラメーターを使用しているグループのすべてのメンバーによって呼び出されます。 返されると、ルート バッファーの内容が他のすべてのプロセスにコピーされます。

comm パラメーターが相互通信子を参照している場合、呼び出しには、ルート プロセスを定義する 1 つのグループ 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