スレッド化のパースペクティブには、1 つずつ実行することが推奨されるいくつかの手順があります。
パフォーマンス・メトリックを収集し、[Survey (サーベイ)] 解析を行い並列化の候補を特定します。
並列処理をモデル化するループ/関数に手動でアノテーションを追加します。
並列化の設計オプションをモデル化し、[Suitability (スータビリティー)] 解析でアノテーション付きのループのスピードアップを推測します。
ループ内のループ伝搬依存関係をチェックして、ループ/関数が安全に並列化できることを確認します。
自動スクリプトを使用してインテル® Advisor の環境変数を設定し、advisor コマンドライン・インターフェイス (CLI) 利用できるようにします。
注以下のコマンドでは、コマンドを実行する前に myApplication をアプリケーションの実行可能形式へのパスと名前に置き換える必要があります。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
advisor --collect=survey --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --project-dir=./advi_results --flop -- ./myApplicationサーベイレポートを表示して並列化の候補を特定します。例えば、次のコマンドラインでレポートを出力します。
advisor --report=survey --project-dir=<project-dir>
合計時間が長いループ/関数の解析を検討してください。
アプリケーションのソースコードに、並列処理をモデル化する対象のループ/関数にアノテーションを追加します。
インテル® Advisor でアノテーションを利用できるように、アプリケーションを再ビルドします。
スータビリティー解析を実行して、アノテーション付きのループ/関数のスレッド並列処理をモデル化します。
advisor --collect=suitability --project-dir=./advi_results -- ./myApplication依存関係解析を実行して、アノテーションが追加されたループ内の依存関係を確認します。
advisor --collect=dependencies --project-dir=./advi_results -- ./myApplicationインテル® Advisor のグラフィカル・ユーザー・インターフェイス (GUI) で結果を表示したり、コマンドプロンプト/ターミナルでサマリーを出力またはファイルに保存したりできます。詳細については、以下の結果表示を参照してください。
解析の詳細
スレッド化のパースペクティブにおけるそれぞれの解析では、その動作を変更して追加のパフォーマンス・データを収集する一連の追加オプションがあります。
次のオプションを検討してください。
特性化オプション
コマンドラインから特性化解析を実行するには、次のコマンドラインのアクションを使用します: --collect=tripcounts.
推奨されるアクションのオプション:
オプション |
説明 |
|---|---|
--flop |
AVX-512 プラットフォームの浮動小数点演算と整数演算、メモリー・トラフィック、およびマスク利用率メトリックに関連するデータを収集します。 |
--stacks |
コール・スタック・データの高度な収集を有効にします。 |
依存関係オプション
コマンドラインから依存関係解析を実行するには、次のコマンドラインのアクションを使用します: --collect=dependencies。
推奨されるアクションのオプション:
オプション |
説明 |
|---|---|
--filter-reductions |
すべての潜在的なリダクションと診断をマークします 。 |
オプションについては、advisor コマンドオプションのリファレンスをご覧ください。
スレッド化の結果の調査を続けます。メトリックのレポートに関する詳細は、CPU とメモリーメトリックをご覧ください。