インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

CPU の環境変数を設定してコプロセッサーの実行環境を変更する

このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーをターゲットとする場合にのみ適用されます。

デフォルトでは、オフロードが発生すると、CPU プログラムを実行する環境で定義されているすべての環境変数がコプロセッサーの実行環境に複製されます。この動作は、環境変数 MIC_ENV_PREFIX を定義することで変更できます。MIC_ENV_PREFIX を特定のプリフィクスに設定すると、すべての CPU 環境変数ではなく、MIC_ENV_PREFIX 環境変数のプリフィクス値で始まる環境変数のみ複製されます。コプロセッサーに設定される環境変数のプリフィクス値は削除されます。この処理により、共通の環境変数名を使用する OpenMP*、インテル® Cilk™ Plus、その他の実行環境を個別に制御できます。

インテル® Cilk™ Plus は古い機能 (非推奨) です。

すべてのコプロセッサーに複数の環境変数を設定する

個別の値を持つ複数の変数をすべてのコプロセッサーに引き渡すことができます。

次の形式を使用します。

mic_prefix_VAR=variable1=value1|variable2=value2|variable3=value3|...

ここで、variableN は変数、valueN はその値です。

特定のコプロセッサーを指定する

特定のコプロセッサーを指定することができます。これは、複数のコプロセッサーが搭載されている場合に便利です。

次の形式を使用します。

mic_prefix_card_number_var=value

card_number の値は、1 つ目のデバイスが 0、2 つ目が 1、となります。

同様に、複数の環境変数を設定する場合は、card_number を使用して特定のコプロセッサーを指定します。

すべてのコプロセッサーに 1 つの環境変数を設定する例

次の環境変数定義は、CPU とすべてのコプロセッサーに、異なる値の OMP_NUM_THREADS を設定します。

MIC_ENV_PREFIX=ABC
OMP_NUM_THREADS=8
ABC_OMP_NUM_THREADS=124

すべてのコプロセッサーに複数の環境変数を設定する例

次の環境変数定義は、すべてのコプロセッサーに、X=xY=y を設定します。

MIC_ENV_PREFIX=ABC
ABC_VAR=X=x|Y=y

特定のコプロセッサーに 1 つの環境変数を設定する例

次の環境変数定義は、CPU と 5 つ目のコプロセッサーに、異なる値の OMP_NUM_THREADS を設定します。

MIC_ENV_PREFIX=ABC
OMP_NUM_THREADS=8
ABC_4_OMP_NUM_THREADS=124

特定のコプロセッサーに複数の環境変数を設定する例

次の環境変数定義は、5 つ目のコプロセッサーに、X=xY=y を設定します。

MIC_ENV_PREFIX=ABC
ABC_4_VAR=X=x|Y=y

関連情報