このステップでは、エディターでソースコードを開き、コードがどのようにシステムに動作中のコプロセッサーがあるかどうか判断し、動作中のコプロセッサーの数を特定しているか確認します。
ソースコードをエディターで開きます。
次のソースコードを探します。
#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 とコプロセッサーの両方で実行するように定義されているソースコードのセクションを確認します。