次の方法で共有


MSMPI_Waitsome_interruptible関数

リスト内のアクティブなハンドルに関連付けられている操作の少なくとも 1 つが完了するか、MSMPI_Queuelock_acquire を呼び出す別のスレッドによって呼び出しが中断されるまで待機します。

構文

int MPIAPI MSMPI_Waitsome_interruptible(
        int                                         incount,
        _Inout_count_(incount) MPI_Request          array_of_requests[],
  _Out_ int                                         *outcount,
        _Out_cap_post_count_(incount,*outcount) int array_of_indices[],
        _Out_cap_post_count_(incount,*outcount) int array_of_statuses[]
);

パラメーター

  • incount
    配列 array_of_requests内の要求の数。

  • array_of_requests
    完了を待機する操作の要求ハンドルの配列。 要求ハンドルが非ブロッキング通信関数によって割り当てられた場合は、割り当てが解除され、関連付けられたハンドルが MPI_REQUEST_NULLに設定されます。

  • outcount [out]
    完了した array_of_requests パラメーターで指定された要求の数と、array_of_indices配列と array_of_statuses 配列内 の要素の 数。

    array_of_requestsにアクティブなハンドルが含まれない場合、関数は outcount パラメーターを MPI_UNDEFINED に設定して直ちにを返します。

    要求が完了する前にこの関数が中断された場合、呼び出しは outcount パラメーターを 0 に設定して を返します。

  • array_of_indices
    完了した操作の array_of_requests パラメーター内のインデックスを返します。 配列インデックスは、C では 0 から始まるインデックスで、Fortran では 1 から始まります。

  • array_of_statuses
    完了した操作の状態を返します。 この配列の要素は、 array_of_indices 配列の要素に対応します。

戻り値

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

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

関数が MPI_ERR_IN_STATUS以外のエラーを返した場合、 array_of_statuses パラメーターの状態のエラー フィールドは更新されません。

注釈

マルチスレッド環境では、ユーザーはMSMPI_Waitsome_interruptibleを呼び出す前に 、MSMPI_Queuelock_acquire 関数を使用してグローバル Microsoft MPI ロックを取得 する必要があります。 この関数は、MPI ライブラリにアクセスするために別のスレッドが MSMPI_Queuelock_acquire 関数を呼び出すと中断されます。

この関数は、標準の拡張機能です。

要件

製品

HPC Pack 2012 MS-MPI 再頒布可能パッケージ、HPC Pack 2008 R2 MS-MPI 再頒布可能パッケージ、HPC Pack 2008 MS-MPI 再頒布可能パッケージまたは HPC Pack 2008 クライアント ユーティリティ

ヘッダー

Mpi.h

ライブラリ

Msmpi.lib

[DLL]

Msmpi.dll

こちらもご覧ください

MPI ポイント対ポイント関数

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome