次の方法で共有


MPI_Igather関数

非ブロッキングの方法で、グループのすべてのメンバーから 1 つのメンバーにデータを収集します。

構文

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            MPI_Datatype sendtype,
  _Out_opt_ void         *recvbuf,
  _In_      int          recvcount,
  _In_      MPI_Datatype recvtype,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

パラメーター

  • sendbuf [in]
    ルートに送信されるデータを含むバッファーへのポインター。 バッファーは、sendtype ハンドルによって示されるMPI_Datatypesendcount の連続する要素で構成されます。 メッセージの長さは、バイト数ではなく、要素の数で指定されます。

  • sendcount
    sendbuf 内の sendtype 要素の数。 値が 0 の場合、メッセージのデータ部分は空です。

  • sendtype
    sendbuf 内の各要素のデータ型を表すMPI_Datatype ハンドル。

  • recvbuf [out, optional]
    ルート プロセスによって送信されたデータを含む、ルート上の各プロセスから受信したデータを含むバッファーへのポインター (ルートでのみ有効)。 受信バッファー recvbuf は、ルート以外のすべてのプロセスでは無視されます。 ルート プロセスでは、 recvbufrecvtype ハンドルによって示される MPI_Datatyperecvcount 連続する要素で構成されます。 メッセージの長さは、バイト数ではなく、要素の数で指定されます。

  • recvcount [in]
    recvbuf 内の recvtype 要素の数。 値が 0 の場合、メッセージのデータ部分は空です (ルートでのみ有効)。

  • recvtype [in]
    recvbuf 内の各要素のデータ型を表すMPI_Datatype ハンドル (ルートでのみ有効)。

  • root [in]
    MPI_Commcomm 内の受信プロセスのランク。

  • comm [in]
    MPI_Comm コミュニケーター ハンドル。

  • request [out]
    通信操作を表す MPI_Request ハンドル。

戻り値

成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。

Fortran では、戻り値は IERROR パラメーターに格納されます。

Fortran

    MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

注釈

非ブロッキング呼び出しは、個別の完了呼び出しで完了する必要がある集合収集操作を開始します。 開始されると、操作は、参加プロセスでの計算やその他の通信とは無関係に進行する可能性があります。 この方法では、非ブロッキング収集操作は、"バックグラウンド" で実行することで、収集操作の同期効果を軽減できます。

非ブロッキング収集操作では、すべての完了呼び出し ( MPI_Waitなど) がサポートされます。

要件

製品

Microsoft MPI v6

ヘッダー

Mpi.h;Mpif.h

ライブラリ

Msmpi.lib

[DLL]

Msmpi.dll

こちらもご覧ください

MPI 集合関数

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome