次の方法で共有


MPI_Rsend関数

準備モードの送信操作を実行し、送信バッファーを安全に再利用できる場合に を返します。

構文

int MPIAPI MPI_Rsend(
  _In_opt_ void         *buf,
           int          count,
           MPI_Datatype datatype,
           int          dest,
           int          tag,
           MPI_Comm     comm
);

パラメーター

  • buf [in, optional]
    送信するデータを含むバッファーへのポインター。

  • count
    バッファー内の要素の数。 メッセージのデータ部分が空の場合は、 count パラメーターを 0 に設定します。

  • datatype
    バッファー内の要素のデータ型。

  • dest
    comm パラメーターで指定されたコミュニケーター内の宛先プロセスのランク。

  • tag
    さまざまな種類のメッセージを区別するために使用できるメッセージ タグ。

  • comm
    コミュニケーターへのハンドル。

戻り値

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

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

Fortran

    MPI_RSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR

注釈

この関数はローカル以外です。 この関数は、送信バッファーを再利用できるとすぐにを返し、一致する受信操作の状態に依存しません。 ただし、送信操作全体が正常に完了するかどうかは、一致する受信操作の存在によって異なります。

この関数は、一致する受信操作が既に転記されている場合にのみ呼び出すことができます。 それ以外の場合、関数はエラーを返し、その結果は未定義です。 一部のシステムでは、この要件により、他のモードで使用されるハンドシェイクの一部が排除され、標準または同期送信操作と比較してパフォーマンスが向上する可能性があります。

MPI_Rsend関数は、MPI_Send関数およびMPI_Ssend関数と同じセマンティクスを持ちますが、一致する受信が既に投稿されていることをシステムに通知します。 この情報により、オーバーヘッドが少し節約される可能性があります。 したがって、正しいプログラムでは、準備完了の送信を標準送信に置き換え、パフォーマンス以外のプログラムの動作に影響を与えることができません。

要件

製品

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_Send

MPI_Bsend

MPI_Ssend

MPI_Recv