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

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

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

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

    #ifdef __INTEL_OFFLOAD
         print "(2X,A,/)", &
               "Checking for Intel(R) MIC Architecture (Target CPU) devices..."
         num_devices = OFFLOAD_NUMBER_OF_DEVICES()
         print "(4X,A,I6,/)","Number of Target devices installed: ",num_devices
    #endif

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

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

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

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

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


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