コアが大部分の時間を有益なワークの実行に費やしてビジーである場合、プログラムに並列実行 (並列処理) を加えることでパフォーマンス向上を期待できます。これを達成するには、解析と知識そしてテストが必要です。
シリアルプログラムが並列実行を許容するように設計されていない場合、プログラムの一部を並列実行するように変換すると、並列実行時にのみ予期しないエラーに遭遇することがあります。CPU 時間を消費しないプログラム領域に労力を費やすよりも、ホットスポットおよびメインのエントリーポイントとそれぞれのホットスポット間の機能に注目する必要があります。
十分な準備をせず不用意にプログラムに並列処理を加えると、並列タスクの相互作用から生じる予期しないクラッシュ、プログラムのハングアップ、または誤った結果に遭遇することになります。例えば、誤った並列タスクの相互作用を回避するには同期を追加する必要がありますが、ロックのオーバーヘッドとシリアル同期は並列実行の利点を損ねる可能性があるため、注意深く実装する必要があります。
インテル Advisor は次のことを支援します。
並列実行を追加できる可能性があるコード領域を特定します。
並列実行に最も適したコード領域を選択します。これには、異なる並列コード領域の可能性を調査できるよう、並列パフォーマンスの概算測定が含まれます。
並列実行を導入する前に、データ共有問題の可能性を検出して排除します。