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

このステップでは、エディターでソースコードを開き、コードがどのようにシステムに動作中のコプロセッサーがあるかどうか判断し、動作中のコプロセッサーの数を特定しているか確認します。

  1. ソースコードをエディターで開きます。

  2. 次のソースコードを探します。

    #ifdef __INTEL_OFFLOAD
       printf(" Checking for Intel(R) MIC Architecture (Target CPU)devices...\n\n");
       num_devices = _Offload_number_of_devices();
       printf(" Number of Target devices installed: %d\n\n",num_devices);
    #endif

このコードブロックの宣言子には、事前定義済みマクロ __INTEL_OFFLOAD が含まれています。 このマクロはコンパイラーによって定義され、CPU とコプロセッサーでコードブロックを実行します。デフォルトでは、コンパイラーは、この宣言子内のコードブロックをコンパイルします。no-offload コンパイラー・オプションを使用してコードをコンパイルすると、この宣言子が除外され、CPU でのみ実行するアプリケーションが生成されます。 コードをコプロセッサーにオフロードする前にコードの動作を確認する場合、この宣言子を除外すると便利です。

このチュートリアルの後で、no-offload コンパイラー・オプションを使用して同じソースコードをコンパイルするときに、この宣言子を除外します。

宣言子内には、システムに動作中のコプロセッサーがあるかどうか判断して動作中のコプロセッサーの数を特定するコードが含まれています。_Offload_number_of_devices 関数は、システムで動作中のコプロセッサーの数を返します。 システムに動作中のコプロセッサーがない場合、関数は -1 を返します。 システムに複数のコプロセッサーが含まれている場合、戻り値を使用して特定のコプロセッサーで実行するコードセクションを指定することもできます。

次のステップでは、ホスト CPU とコプロセッサーの両方で実行するように定義されているソースコードのセクションを確認します。

サンプル・アプリケーションを準備する Open the Building the OpenMP Version topic


このヘルプトピックについてのフィードバックを送信
その他の入門チュートリアルを表示