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

システムのコプロセッサー関連情報の特定

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

このセクションで説明している関数を使用して、次の情報を特定できます。

これらの関数のインターフェイスを定義するには、ヘッダーファイル offload.h を使用します。このヘッダーファイルは #include offload.h でインクルードします。

複数のコプロセッサーを搭載したシステムでは、offloadプラグマを使用して確実にデータを保持する場合、target-number 引数を指定する必要があります。target-number を指定せずに alloc_if または free_if を使用してコプロセッサーでデータを保持する場合、コンパイラーのランタイムはランダムにコプロセッサーを選択するため、データを利用できないコプロセッサーが選択されることがあります。

システムのコプロセッサー数の特定

システムのコプロセッサー数を特定するには、関数 int _Offload_number_of_devices() を使用します。

この関数は、システムに搭載され動作しているコプロセッサーの数を整数で返します。搭載され動作しているコプロセッサーがない場合、戻り値は 0 です。

プログラムを実行しているコプロセッサーの特定

プログラムを実行しているコプロセッサーを特定するには、関数 int _Offload_get_device_number() を使用します。

この関数は、プログラムを実行しているコプロセッサーの番号 (0 が最初のカード) を整数で返します。プログラムを CPU で実行している場合、戻り値は -1 です。

コプロセッサーでコードの実行が完了したかどうかの特定

指定されたコプロセッサーでオフロードコードのセクションの実行が完了したかどうか判断するには、_Offload_signaled() API を使用します。

この API の構文は次のとおりです。

extern int _Offload_signaled(int target_number, void *signal);

関連情報