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

intel_omp_task

インテルの以前のタスク用に、潜在的に異なるスレッドで実行される作業単位を指定します。

構文

#pragma intel_omp_task [clause[[,]clause]...]

structured-block

引数

clause

次のいずれかです。

private(variable-list)

taskvariable-list にある各オブジェクトの default-constructed バージョンの private を生成します。 変数に参照されるオリジナルのオブジェクトは、構造に入る時点で中間値を持ちます。構造の動的範囲内では、オブジェクトは変更してはなりません。そして、構造から出る時点で中間値を持ちます。

captureprivate(variable-list)

task がエンキューされた時点で、taskvariable-list に各オブジェクトにある copy-constructed バージョンの private を生成します。 各変数に参照されるオリジナルのオブジェクトは、その値を保持しますが、task 構造の動的範囲内では、変更してはなりません。

説明

intel_omp_task プラグマは、潜在的に異なるスレッドで実行される作業単位を指定します。

このプラグマは、-qopenmp オプションによって行われる並列化に影響を与えます。 OpenMP* を使用するオプションは、インテル製マイクロプロセッサーおよび互換マイクロプロセッサーの両方で利用可能ですが、両者では結果が異なります。 両者の結果が異なる可能性のある OpenMP* 構造および機能の主なリストは次のとおりです: ロック (内部的なものおよびユーザーが利用可能なもの)、SINGLE 構造、バリア (暗黙的および明示的)、並列ループ・スケジュール、リダクション、メモリーの割り当て、スレッド・アフィニティー、バインド。