次の方法で共有


MPI_Init_thread関数

スレッド実行のために、呼び出し元の MPI プロセスの実行環境を初期化します。

構文

int MPIAPI MPI_Init_thread(
  _In_opt_ int                        *argc,
           _In_opt_count_(*argc) char ***argv,
  _In_     int                        required,
  _Out_    int                        *provided
);

パラメーター

  • argc [in, optional]
    プログラムの引数の数へのポインター。 この値には NULL を指定できます。

  • argv [省略可能]
    プログラムの引数リストへのポインター。 この値には NULL を指定できます。

  • 必須 [入力]
    目的のスレッドサポートのレベル。 同じジョブ内の複数の MPI プロセスで異なる値が使用される場合があります。

    MPI_THREAD_SINGLE プログラム内の 1 つのスレッドのみが実行されます。
    MPI_THREAD_FUNNELED プロセスには複数のスレッドが含まれる場合がありますが、 MPI 関数呼び出しを行うのは MPI_Init_thread を呼び出したスレッドだけです。
    MPI_THREAD_SERIALIZED プロセスには複数のスレッドが含まれている場合があり、これらのスレッドはすべて MPI 関数呼び出しを行うことができますが、一度に 1 つだけです。
    MPI_THREAD_MULTIPLE 複数のアプリケーション スレッドは、制限なしで MPI 関数を呼び出す場合があります。 この値は現在、Windows Server 2012、Windows Server 2012 R2、Windows 8、Windows 8.1で実行されている MS-MPI V6 でのみサポートされています。

     

  • provided [out]
    指定されたスレッド サポートのレベル。 返される値は、上の表の値になります。

     

戻り値

関数が正常に返された場合は、MPI_SUCCESSします。 その他の理由で呼び出しが失敗した場合のその他のエラー コード (無効な引数など)。

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

Fortran

    MPI_INIT_THREAD(REQUIRED, PROVIDED, IERROR)
        INTEGER REQUIRED, PROVIDED, IERROR

注釈

この関数は、1 つのスレッドでのみ呼び出す必要があります。 そのスレッドは "メイン スレッド" と呼ばれ、 MPI_Finalizeを呼び出すには同じスレッドである必要があります。

MPI_Init_threadの Fortran バインドでは、ARGC パラメーターと ARGV パラメーターを受け入れません。

要件

製品

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_Finalize

MPI_Init