インテル® ソフトウェア開発ツールで始める

コードの現代化と最適化
パフォーマンス・ツールを活用して工程を短縮
2019 年 4 月
iSUS 編集長
すがわら きよふみインテル® Parallel Studio XE のコンポーネント
包括的なソフトウェア開発ツールスイート
Composer Edition

Professional Edition

Cluster Edition

ビルド
コンパイラーとライブラリー

解析
解析ツール

スケール
クラスターツール

インテル® VTune™
Amplifierインテル® MPI ライブラリー

インテル® Inspector

インテル® Trace Analyzer &Collector

インテル® C/C++
コンパイラー
最適化コンパイラー

インテル® Fortran
コンパイラーインテル® MKL2
インテル® IPP3

画像、信号、データ処理

最適化コンパイラー

インテル® DAAL4

インテル® TBB1

インテル® Distribution
for Python*C++ スレッド・ライブラリー

ハイパフォーマンスなスクリプト

メッセージ・パッシング・
インターフェイス・ライブラリー

パフォーマンス・
プロファイラー

メモリー/スレッドのデバッガー

インテル® Advisor

ベクトル化の最適化とスレッドのプロトタイプ生成

MPI チューニングと解析

インテル® Cluster Checker

クラスター診断エキスパート・システム

インテル® アーキテクチャー・ベースのプラットフォーム
オペレーティング・システム: Windows*、Linux*、macOS*
1インテル® スレッディング・ビルディング・ブロック
２インテル® マス・カーネル・ライブラリー
3インテル® インテグレーテッド・パフォーマンス・プリミティブ
4インテル® データ・アナリティクス・アクセラレーション・ライブラリー

コードを強力に支援 - isus.jp/intel-parallel-studio-xe/© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

2

インテル® VTune™ Amplifier パフォーマンス・プロファイラーによるアプリ
ケーションのパフォーマンスとスケーラビリティーの解析とチューニング
コードの最適化にかかる時間を短縮•••

C、C++、Fortran、Python*、Go*、Java* に加えて、これらの言語が混在したコードを正確にプロファイル
CPU、スレッド、メモリー、キャッシュ、ストレージほかを最適化
時間を節約: 詳細な解析により洞察が得られるバージョン 2019 の新機能 (一部のみ抜粋)

詳細: isus.jp/intel-vtune-amplifier-xe/•

拡張されたアプリケーション・パフォーマンス・スナップショット: 新
しいデータ選択と一時停止/再開により有益なデータに注目(Linux*)•物理コアの CPU 使用率を解析•

サーバー/クラウド・アプリケーションの JIT プロファイルを向上•改良されたユーザー・インターフェイスにより単純化されたプロファイル・ワークフローを提供© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

3

さまざまな分野に対応した豊富なプロファイル機能インテル® VTune™ Amplifier© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

4

バージョン 2019 の新機能
インテル® VTune™ Amplifier

新しい、単純化されたセットアップ、分かりやすい結果
新しいプラットフォーム・プロファイラー – 長いデータ収集
 ハードウェア構成の問題点を検出
 適切にチューニングされていないアプリケーションを特定

スマートで高速なアプリケーション・パフォーマンス・スナップショット
 スマート: 物理コアの CPU 使用率を解析
 高速: 低オーバーヘッド、データ選択、一時停止/再開

クラウド、コンテナー、Linux* での .NET サポートの追加

LLVM または HHVM PHP サーバーでの JIT プロファイル
OpenJDK* 9 および Oracle* JDK 9 での Java* 解析
Linux* での .NET のサポートおよび Hyper-V* のサポート

SPDK & DPDK I/O 解析 - "空の" ポーリングサイクルを測定
CPU/FPGA のロードバランスの調整

組込み OS と環境を追加© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

5

単純化されたセットアップ、分かりやすい結果
インテル® VTune™ Amplifier

新しく改良された解析セットアップ• 単純化されたワークフロー• 使い慣れた用語• 論理的なグループ化
パフォーマンス調査の方向性• 詳細な解析のヒント改良された表示• 新しいハードウェア・パイプライン
表示© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

6

適切で高速なアプリケーション・パフォーマンス・スナップショット
インテル® VTune™ Amplifier

適切な情報
•

物理コアの CPU 使用率解析•

低 MPI トレース・オーバーヘッドと高速な結果処理
新しいデータ選択と一時停止/再開により有益なデータに注目

低オーバーヘッド•より簡単に使用可能••

ランク間とノード間の MPI 通信を視覚化インテル® Trace Analyzer & Collector のプロファイルを簡単に設定

注: MPI 解析は Linux* 版のみ© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

7

ワークロードとシステム構成のチューニング
インテル® VTune™ Amplifier

検出••

構成の問題点適切にチューニングされていないソフトウェア

ターゲットユーザー••

インフラストラクチャー・アーキテクト
ソフトウェア・アーキテクト/QA

パフォーマンス・メトリック••••

キャプチャー時間の拡張 (数分～数時間)
低オーバーヘッド – 粗粒度のメトリック
OS/ハードウェア・パフォーマンス・カウンターのサンプリングスクリプトによる解析が簡単な RESTful API

タイムラインとヒストグラム

コア間の比較

サーバートポロジーの概要

8© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® Advisor によるコードの現代化
ベクトル化の最適化、スレッドのプロトタイプ生成、フローグラフの作成と解析

パフォーマンスの良い現代化されたコード

新しいハードウェア世代ごとにパフォーマンスが向上

109 2 項オプション SP/秒
(数値が大きいほど高性能)

200

ベクトル化
とスレッド化'自動' ベクトル化では不十分
多くの場合は明示的なプラグマと最適化が必要

150

機能

130 倍
スレッド化

• ベクトル化とその最適化• メモリーパターン解析• 迅速なスレッドのプロトタイプ生成

ベクトル化
シリアル

バージョン 2019 の新機能 (一部のみ抜粋)

100
50
0

2010

2012

2013

2014

2016

• ベクトル化 (インテル® AVX-512/インテル® AVX2を使用)
• 効率良いメモリーアクセス• スレッド化

2017

インテル® Xeon® インテル® Xeon® インテル® Xeon® インテル® Xeon® インテル® Xeon® インテル® Xeon®
プロセッサープロセッサープロセッサープロセッサープロセッサー
Platinum 81xx
X5680
E5-2600
E5-2600 v2
E5-2600 v3
E5-2600 v4
プロセッサー
開発コード名製品ファミリー
製品ファミリー
製品ファミリー
製品ファミリー
開発コード名Westmere
開発コード名
開発コード名
開発コード名
開発コード名Skylake Server
Sandy Bridge
Ivy Bridge
Haswell
Broadwell• 階層ルーフライン解析を拡張• 共有可能な HTML ルーフライン• フローグラフ解析

ベンチマーク: 2 項オプション価格モデルhttps://software.intel.com/en-us/articles/binomial-options-pricing-model-code-for-intel-xeon-phi-coprocessor (英語)。
パフォーマンス結果は 2017 年 8 月時点のテスト結果に基づいたものであり、公開されている利用可能なすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、構成の開示を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能やベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。2010 - 2017 のシステム構成については、補足資料の「ベクトル化およびスレッド化する
か、パフォーマンスを諦めるか」にあるベンチマークを参照してください。2017 年 8 月時点のインテルによるテスト。

詳細: isus.jp/intel-advisor-xe/
9© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

‘自動’ ベクトル化では不十分

優れたコンパイラーはベクトル化の最適化によりさらなる利点を得ることができる — インテル® Advisor

コンパイラーは常にベクトル化するとは限らない•

インテル® Advisor でループ伝播の依存性を確認•

依存性がない場合はベクトル化を強制し、プラグマ simd(C++)、SIMD ディレクティブ (Fortran) を使用

すべてのベクトル化が効率的であるわけではない•

ストライド 1 のほうがストライド 2 以上よりもキャッシュ効率が良い - インテル® Advisor を使用して解析•

SIMD Data Layout Templates (英語) を利用してデータ
レイアウトの変更を検討© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

これまでに紹介したベンチマークはすべて ‘自動ベクトル化’ ではない。
ベクトル化を強制し、さらなるパフォー
マンスを引き出すため、コンパイラー・
ディレクティブを使用している

構造体配列はデータを直感的に整理するのには適しているが、配列構造体よりも効率が悪いため、
SIMD Data Layout Templates(英語) を利用してベクトル化に適した効率良いレイアウトに
データをマップする

10ブレークスルーのベクトル化パフォーマンスを実現
インテル® Advisor — ベクトル化アドバイザー

素早くベクトル化を最適化
•
•
•
•
•

最も大きな利点が得られる個所をベクトル化
ベクトル化を妨げているものを素早く特定
効率良いベクトル化のためのヒント
安全にコンパイラーによるベクトル化を強制
メモリーストライドを最適化必要なデータとガイダンス
•

•
•
•

コンパイラー診断 + パフォーマンス・データ +SIMD 効率問題の検出と修正に関する推奨事項
ループ伝播の依存性解析
メモリー・アクセス・パターン解析

インテル® AVX-512 対応ハードウェアの有無に関係なくインテル® AVX-512 向けに最適化
11© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

効率的な最適化手法の発見

インテル® Advisor — キャッシュを考慮したルーフライン解析

ルーフライン・パフォーマンスの詳細な情報• パフォーマンスの悪いループをハイライト• 各ループの「最大」パフォーマンスを表示− 最適化可能なループ− 最適化する価値のあるループ• ボトルネックの原因の可能性を表示• 次の最適化ステップを提案「インテル® Advisor の新しい “統合ルーフライン” は素晴らしい機能です。メモリー転送の最適化とベクトル化という重要で難しい課題に、ステップ・バイ・ステップのアプローチで対処できるのです。」

Onera (フランス国立航空宇宙研究所)
ソフトウェア・アーキテクト、Nicolas Alferez 氏© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

12

設計、チューニング、デバッグ、実装

インテル® Advisor のスレッドのプロトタイプ生成 — 開発を妨げることなく設計可能問題••

アプリケーションをスレッド化してもパフォーマンスがそれほど向上しない"スケーラビリティーの限界" に達したのか?
同期問題によりリリースを延期

•
•
•
•

複数の選択肢のプロトタイプを迅速に生成
大規模なシステムにおけるスケーリングを予測
スレッド化する前に同期問題を発見
開発を妨げることなく設計可能•

データに基づくスレッド設計

より少ない労力とリスクで、より大きな効果が得られる並列処理を実装© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

「インテル® Advisor により、並列化候補のプロトタイプを素早く生成し、開発者の時間と労力を節約することができました。」
Sandia National Laboratories
シニア・テクニカル・スタッフ
Simon Hammond 氏
13

並列処理を視覚化 — アルゴリズムをインタラクティブにビルド、検証、解析
インテル® Advisor — フローグラフ・アナライザー (FGA)•

コードスタブを視覚的に生成•

並列 C++ プログラムを生成•

アルゴリズムのノードやエッジをクリックしてズームし、並列データとプログラムフローを理解•

ロードバランス、コンカレンシー、その他の並列特性を解析し、プログラムを細かくチューニング

インテル® TBB または OpenMP* 5 (ドラフト) OMPTAPI を使用© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

14

インテル® Inspector によるメモリーとスレッドのデバッグ
メモリーリーク、異常、データ競合、デッドロックの特定とデバッグ

正当性検証ツールにより ROI が 12%-21%1 向上•••

早期に問題を発見したほうが修正コストが少なくて済む
競合やデッドロックは簡単に再現できない
メモリーエラーをツールなしで発見するのは困難

デバッガー統合により迅速な診断が可能••

問題の直前にブレークポイントを設定
デバッガーで変数とスレッドを確認

バージョン 2019 の新機能
不揮発性メモリーエラーを発見

詳細: isus.jp/intel-inspector-xe/
1コスト要因 - Square Project による分析

CERT: U.S. Computer Emergency Readiness Team および Carnegie Mellon CyLabNIST: National Institute of Standards & Technology : Square Project の結果

•
•
•
•

不足している/冗長なキャッシュフラッシュ
ストアフェンスの不足
アウトオブオーダーの不揮発性メモリーストア
PMDK トランザクションの Redo (やり直し) ログエラー© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

15

バージョン 2019 の新機能
インテル® Inspector

電源をオフにしてもデータを保持するには?
•キャッシュから不揮発性メモリーへのフラッシュが必要

不揮発性メモリーエラーを発見••••

不足している/冗長なキャッシュフラッシュ
ストアフェンスの不足
アウトオブオーダーの不揮発性メモリーストア
PMDK トランザクションの Redo (やり直し)
ログエラー

PMDK = Persistent Memory Developer Kit (不揮発性メモリー開発キット、旧 NVML)© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

16

インテル® Parallel Studio XE により
アプリケーションのパフォーマンスを大幅に向上 どこから開始すべきか?
 どこで終了すべきか?
 スレッドの問題
 ベクトル化の問題
 メモリー/ストレージの問題
 クラスターのスケーラビリティー© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

17

どこから開始して、どこで終了すべきか?
 どのような最適化の可能性があるか?
• 答えはアプリケーションに依存します 最適化を開始する前に問題を高レベルで理解します• インテル® Advisor – ルーフライン解析• アプリケーション・パフォーマンス・スナップショット (APS)• インテル® VTune™ Amplifier – HPC パフォーマンス特性解析
 特にアプリケーションがクロスノードよりもクラスターでスケールする場合は、通信の問題に対応する必要があります 単一ノードの最適化では、一般に次の問題に対応します• スレッドの問題• ベクトル化の問題• メモリー/ストレージの問題© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

19

並列ハードウェアでパフォーマンスを最適化
インテル® Parallel Studio XE

繰り返し作業
クラスター
でスケーリ
ングできる
か?

N

MPI
チューニングクラスターでない場合は
スキップ

Y

効率良く
スレッド化されて
いるか?

Y

ベクトル化

メモリー帯域幅に影響されるか?

N

N

Y
スレッド化

帯域幅の
最適化

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

20

診断を支援するパフォーマンス解析ツール
インテル® Parallel Studio XE
クラスター
でスケーリ
ングできる
か?

N

MPI
チューニングインテル® Trace
Analyzer & Collector
MPI チューナー

Y

効率良くスレッド化されて
いるか?

Y

ベクトル化

メモリー帯域幅に影響されるか?

N

Y

スレッド化
インテル® VTune™
AmplifierN

インテル®
Advisor

帯域幅の最適化
インテル® VTune™
Amplifier© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

21

ハイパフォーマンスな実装を支援するツール
インテル® Parallel Studio XE
クラスター
でスケーリ
ングできる
か?

N

インテル® MPI ライブラリーとインテル® MPI Benchmarks

MPI
チューニングY
インテル® コンパイラー
効率良くスレッド化されて
いるか?

Y

ベクトル化

N

メモリー帯域幅に影響されるか?

N

Y

スレッド化

帯域幅の
最適化

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® MKL
インテル® IPP
(メディアおよびデータ・ライブラリー)
インテル® DAALOpenMP*
インテル® TBB
(スレッド・ライブラリー)

22

キャッシュを考慮したルーフライン概念•

ビデオ: インテル® Advisor 2018/2019 のルーフライン解析

データ収集前にインテル® Advisor は簡単なベンチマークを実行してハードウェアの能力を評価しますFLOPS
FMA ピーク

ベクトル加算ピーク− 計算の制限− メモリー帯域幅の制限• これらがパフォーマンスの "ルーフ" となる

スカラー加算ピーク• ループと関数にはアルゴリズムがあり、特定の AI があります• ループと関数のパフォーマンス (FLOPS) を測定します• 最適化によりパフォーマンスは変化します。
目標は最大限のパフォーマンスを達成することです

演算強度 (AI)
ルーフラインは最初にカリフォルニア大学バークレー校によって提案された:
Roofline: An Insightful Visual Performance Model for Multicore Architectures (英語), 2009
キャッシュを考慮したルーフラインはリスボン工科大学によって提案された:
Cache-Aware Roofline Model: Upgrading the Loft (英語), 2013

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

23

キャッシュを考慮したルーフライン
使用法

最初にトップルーフから最も離れている
大きな赤色の点に注目します•

大きな赤色の点 = 多くの時間を費やしています•

ルーフよりも下にある = パフォーマンス向上の可能性があります

下のルーフ: ルーフのすぐ上にある場合を除き、ボトルネックの可能性は低い
上のルーフ: ボトルネックの可能性が高く、最も近い上のルーフがボトルネックの原因の可能性が高い

注:
すべてのアルゴリズムは、すべてのルーフを超えることはできません! 一部のアルゴリズムでは本質的に特定のボトルネックが避けられません© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

24ベクトル化、スレッド化、メモリー、MPI – インテル® VTune™ Amplifier
HPC パフォーマンスの鍵
新機能!

MPI インバランス・メトリック
 クリティカル・パスのランクのパフォーマンスに関するメトリック
 インテル® VTune™ Amplifier で計算ボトルネックと外れ値のランクの動作を確認可能 ランク間の通信パターンの問題にはインテル® Trace Analyzer & Collector(ITAC) を使用

スレッド: CPU 使用率 シリアル時間と並列時間
 パフォーマンス向上の可能性がある上位の OpenMP* 領域を表示
 ヒント: 詳細は Hotspot OpenMP* 領域解析を使用

メモリーアクセスの効率

日本語版が
利用できる
ようになり
ました！！

 メモリー階層でストール
 帯域幅の使用状況
 ヒント: メモリーアクセス解析を使用

ベクトル化: FPU 使用率 サンプリングから FLOPS1 を推定
 ヒント: 正確なメトリックとベクトル化の最適化にはインテル® Advisor を使用

1第 3、5、6,7, 8, 9 世代インテル® Core™ プロセッサーと第 2 世代インテル® Xeon Phi™ プロセッサー (開発コード名 Knights Landing) 向け© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

25

インテル® Advisor 2019 の新機能
1. コンパイラー診断 + パフォーマンス・データ + SIMD 効率

2. ガイダンス: 問題の検出と修正方法の推奨

モジュールを除外、
インテル® MKL

推奨事項の追加
3. "正確な" 反復回数と FLOPS。ルーフライン解析。
アプリケーションの特徴付け。

呼び出し回数、インテル® MKL、命令数、より上位のルーフライン

4. ループ伝播の依存性解析

ルーフラインを正式サポート!

5. メモリー・アクセス・パターン解析

オーバーヘッドが減少© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

キャッシュ・
シミュレーション(プレビュー機能)27インテル® Advisor の調査: 注目 + 特徴付け
ベクトル化されたループを順序付けして注目

効率 – パフォーマンスの温度計
推奨事項 – パフォーマンス向上のヒント (スカラーループにも適用)© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

28

データ依存性 – 困難な問題 1
コンパイラーにベクトル化を強制しても安全か?
DO I = 1, N
A(I) = A(I-1) * B(I)ENDDO

void scale(int *a, int *b){for (int i = 0; i < 1000; i++)b[i] = z * a[i];}© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

29

インテル® Advisor のメモリー・アクセス・パターン (MAP):
アクセスパターンを把握

ユニットストライド・アクセス

黄赤可変ストライド・アクセス
固定ストライド・アクセス
青ストライド・アクセス

for (i=0; i<N; i++)A[i] = C[i]*D[i]固定ストライドアクセス
for (i=0; i<N; i++)point[i].x = x[i]可変ストライドアクセス
for (i=0; i<N; i++)A[B[i]] = C[i]*D[i]© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

30

インテル® Advisor 2019 : インテル® AVX-512 固有のパフォーマンスに関する詳細情報インテル® AVX-512 をネイティブ・プロファイル
正確な FLOPS とマスク使用状況のプロファイラー
インテル® AVX-512 に関するアドバイスと"特徴"
その他...
•

インテル® AVX-512 コードのパフォーマンス・
サマリー•

インテル® AVX-512 のギャザー/スキャッター・
プロファイラーインテル® AVX-512 対応ハードウェアが手元になくても解析可能•–ax , /Qax オプションとインテル® Advisor の新しい調査機能を利用してインテル® AVX-512 コードを検証可能✝開発コード名© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

31

キャッシュを考慮したルーフライン
次のステップ

メモリールーフの下または近くの場合• MAP 解析を実行する
適切なキャッシュの最適化を行います• キャッシュを最適化できない場合は、アルゴリズ
ムを見直して AI を上げますベクトル加算ピークよりも下の場合[サーベイレポート] の [特性] カラムで FMA が使用されているか確認使用されていない場合は、FMA が使用されるようにコードを変更するか、オプションを使用
FLOPS

スカラー加算ピークのすぐ上の場合[サーベイレポート] でベクトル化の効率を確認。効率が悪い場合は、推奨事項に従って改善します

FMA ピーク

ベクトル加算ピーク

スカラー加算ピーク

スカラー加算ピークの下の場合…
[サーベイレポート] でループがベクトル化されているか確認。ベクトル化されていない
場合は、可能であればベクトル化されるようにする。必要に応じて、依存性解析を実行
して、安全にベクトル化を強制できるか確認します

演算強度 (AI)© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

32

パフォーマンス・プロファイラーとスレッドのプロトタイプ生成ツールによりスレッドを最適化• インテル® VTune™ Amplifier− CPU 使用率とスレッドの並行性 (コンカレンシー) を解析− OpenMP* 解析• インテル® Advisor− スレッドのプロトタイプ生成と適合性解析© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

34

インテル® VTune™ Amplifier パフォーマンス・プロファイラーによるアプリ
ケーション・パフォーマンスとスケーラビリティーの解析とチューニング
コードの最適化にかかる時間を短縮• C、C++、Fortran、Python*、Go*、Java* に加えて、これらの言語が混在したコードを正確にプロファイル• CPU、スレッド、メモリー、キャッシュ、ストレージほかを最適化• 時間を節約: 詳細な解析によりさらに詳しい情報が得られるバージョン 2019 の新機能 (一部のみ抜粋)• 拡張されたアプリケーション・パフォーマンス・スナップショット:
新しいデータ選択と一時停止/再開により有益なデータに注目(Linux*)• 物理コアの CPU 使用率を解析• サーバー/クラウド・アプリケーションの JIT プロファイルを向上

詳細: isus.jp/intel-vtune-amplifier-xe/• 改良されたユーザー・インターフェイスにより単純化されたプロファイル・ワークフローを提供© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

35

CPU 使用率とスレッドの並行性 (コンカレンシー) を解析
インテル® VTune™ Amplifier

スレッドの並行性の
平均は?

CPU を効率良く使用できているか?

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

36

アイドル (待機) 時間が多い理由は?
インテル® VTune™ Amplifier
上位の同期ポイント

待機時間と呼び出し回数© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

37

スレッド化モデルの詳細な解析
インテル® VTune™ Amplifier

OpenMP*
解析
アプリケーションのシリアル時間がスケーリングを妨げているか?

理想的な並列実行に対してアプリケーションはどれくらい効率的か？
インバランス/オーバーヘッドのチューニングへの投資からどれくらい潜在的なゲインを得られるか？

どの領域が投資に対してよりゲインがあるか ?
リンクをクリックしてグリッドビューでさらに詳しい情報を表示© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

38
38

設計、チューニング、デバッグ、実装
開発を妨げることなく設計可能 — インテル® Advisor のスレッドのプロトタイプ生成問題••

アプリケーションをスレッド化してもパフォーマンスがそれほど向上しない"スケーラビリティーの限界" に達したのか?
同期による問題からリリースを延期

•
•
•
•

複数の選択肢のプロトタイプを素早く生成
大規模システムでのスケーリングを予測
スレッド化を実装する前に同期エラーを発見
開発を妨げることなく設計可能•

データに基づくスレッド設計

より少ない労力とリスクで、より大きな効果が得られる並列処理を実装© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

「インテル® Advisor により、並列化候補のプロトタイプを素早く生成し、開発者の時間と労力を節約することができました。」
Sandia National Laboratories
シニア・テクニカル・スタッフ
Simon Hammond 氏
39

設計ツールにより非効率的なスレッド化コードのプロトタイプを生成
インテル® Advisor

スピード
アップを計算!

コードが CPU 数
でスケーリング
するか?

インテル® Advisor© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

40

メモリーアクセスの最適化
メモリーアクセス解析 - インテル® VTune™ Amplifier
パフォーマンス向上のためデータ構造をチューニング
•キャッシュミスを (コード行だけでなく) データ構造に紐付け•

カスタム・メモリー・アロケーターのサポート

NUMA レイテンシーとスケーラビリティーの最適化•••

共有とフォルス・シェアリングの最適化
システムの最大帯域幅を自動検出
ソケット間の帯域幅のチューニングが容易

簡単なインストール、最新のプロセッサー••

Linux* では特別なドライバーは不要
インテル® Xeon Phi™ プロセッサーの MCDRAM(高帯域幅メモリー) 解析© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

42

ストレージデバイス解析 (HDD、SATA、NVMe SSD)
インテル® VTune™ Amplifier
I/O 依存か、CPU 依存か?
••••I/O 操作 (非同期/同期) と計算の間のインバランスを調査
ストレージアクセスをソースコードにマップ
CPU が I/O を待機している個所を確認
ストレージへのバス帯域幅を測定

スライダーでI/O キューの深さのしきい値を設定
I/O 待機を伴う遅いタスク

レイテンシー解析••

レイテンシー・ヒストグラムを利用してストレー
ジアクセスをチューニング
I/O を複数のデバイスに分散© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

43

メモリーアクセス解析
インテル® VTune™ Amplifier

メモリー関連の問題に特化したインテル® VTune™
Amplifier の "メモリーアクセス" 解析タイプ• メモリー階層別のパフォーマンスの問題 (L1、
L2、LLC、DRAM 依存)• 帯域幅によって制限されるアクセス− DRAM および QPI 帯域幅• NUMA の問題• パフォーマンス・イベントをメモリー・オブジェク
トに関連付け (データ構造)
以前のバージョンのインテル® VTune™ Amplifierの “帯域幅” 解析の後継© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

44

プログラムのレイテンシーに影響される
メモリー・オブジェクトは?
インテル® VTune™ Amplifier"lin_stream.cpp:100 (152MB)" は、ソースファイル lin_stream.cpp の行 100 で割り当てられたメモリー・オブジェクトを意味し、152MB は割り当てサイズ© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

45

メモリー帯域幅を使用しているコードセクションとメモリー・オブジェクトの特定帯域幅の使用状況ヒストグラムを使用して、システム帯域幅の使用状況を特定の値ごと (帯域幅ドメインごと) に確認• 下のスライダーを使用して、帯域幅の使用率を "高"、"中"、"低" に分類可能© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

46

ハイパフォーマンス MPI アプリケーションのプロファイルと解析
インテル® Trace Analyzer & Collector

MPI アプリケーション向けの強力なプロファイ
ラー、解析、視覚化ツール•

低オーバーヘッドで正確なプロファイル、解析、正当性
チェック•

チューニングと最適化に必要なプロセスの相互作用、
hotspot、ロードバランスを簡単に視覚化•

柔軟なワークフロー: コンパイル、リンク、または実行

バージョン 2019 の新機能•

小規模な更新と拡張•

最新のインテル® Xeon® スケーラブル・プロセッサー
をサポート

詳細: isus.jp/itatc/© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

48

MPI アプリケーションを効率良くプロファイル
インテル® Trace Analyzer & Collector

開発者を支援•並列アプリケーションの動作を視覚化して確認•

プロファイル統計とロードバランスを評価•

通信 hotspot を特定

機能•

イベントベースのアプローチ•

低オーバーヘッド•

優れたスケーラビリティー•

強力な集合およびフィルター関数•

イデアライザー•

スケーラブル© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

49

ハイパフォーマンスな計算クラスター向けの広範な診断ツールセット
インテル® Cluster Checker (Linux*)
クラスターシステムの状態を確認
 クラスターシステムの詳細を提供するエキスパート・システム・アプローチ- システム・ヘルス・チェック: 問題の特定、推奨アクションの提示 幅広いフレームワークを提供、統合サポート用 API
 操作やパフォーマンスに影響する可能性のある 100 項目を超える特性をチェック – 稼働時間と生産性を向上

バージョン 2019 の新機能: 出力と機能により使いやすさと機能を向上• 単一コマンドで実行を単純化• 全体的なサマリーを含む新しい出力形式− 'CRITICA'、'WARNING'、または 'INFORMATION' で問題の評価を簡素化− 問題、診断、観測の詳細を含むログファイルへの出力を拡張• Slurm 使用時の自動ノード検出機能を追加• クラスターの状態の 2 つのスナップショットを比較して変更を特定• その他 ...
© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

アプリケーション開発者、クラスター・アーキテクト/
ユーザー、システム管理者向け

50

機能、均一性、パフォーマンス・テスト
インテル® Cluster Checker

クラスターシステムの詳細を提供
HPC エキスパートおよび HPC 初心者向け
ノードのサブセットの選択したグループでテストを実行可能
機能テスト

インテル® Cluster Checker

機能

均一性

システムレベル

ハードウェア ノード
 コネクティビティー
 クラスター






検証
パフォー
マンス

均一性テスト アプリケーション・プラッ
トフォーム・コンプライア
ンス
 ソリューション・コンプラ
イアンス

CPU
メモリー
インターコネクト
ディスク

パフォーマンス・テスト
ベンチマーク
ソフトウェア インストールされている パッケージとバージョン さまざまなカーネルおよび BIOS 設定

DGEMM
HPCG
HPL
インテル® MPI Benchmarks
IOzoneSTREAM

統合用 API が利用可能

サマリー出力とログファイルコンパクトなレポートの作成、問題の特定、ステータスの検証© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

51

インテル® Cluster Checker によるシステムの検証
起動から稼働中のクラスターの操作まで 3 つの使用フェーズ

インストールの検証

操作の検証

パフォーマンス
の検証

評価

評価

評価

正しいインストールを確認

正しい操作を確認

パフォーマンスを確認

設定

設定

設定

インストールを仕様に合わせる操作を仕様に合わせる

パフォーマンスを仕様に合わせる

確立

確認

確認

クラスターのベースライン

クラスターが仕様/システム・コン
プライアンスを満たしている

クラスターが顧客のパフォーマンス目標を満たしている

インテル® Cluster Checker© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

52

アプリケーション・パフォーマンス・スナップショットに MPI を追加
MPI + OpenMP* + メモリーのデータを 1 個所にまとめる — インテル® VTune™ Amplifier

パフォーマンスの概要を簡単に素早く確認 パフォーマンス・チューニングが必要か?

MPI と非 MPI アプリケーション✝
 シングル/マルチスレッドの分散 MPI
 共有メモリー・アプリケーション

一般的な MPI 実装をサポート
 インテル® MPI ライブラリー
 MPICH と Cray* MPI

計算効率に関する豊富なメトリック CPU (プロセッサー・ストール、メモリーアクセス)
 FPU (ベクトル化メトリック)✝MPI は Linux* でのみサポート© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

53

オンラインのライブセミナー
iSUS では定期的にオンラインのライブセミナーを開催中です
https://www.isus.jp/products/psxe/webinar-2018/• 2018 年秋のシリーズ (録画も公開中)
日時 (日本時間)

タイトル

内容

対象レベル

インテル® VTune™ Amplifier 2019 によるアプリケーションのパ
11 月 26 日 (月) 11:00am – 12:00pm インテル® VTune™ Amplifier 2019 活用パート 2
フォーマンス解析例を使用して、ツールが表示する情報を理解する アプリケーションの最適化に注目する開発者向け。
方法を紹介します。
インテル® VTune™ Amplifier 2019 の一新されたユーザー・イン
11 月 9 日 (金) 11:00am – 12:00pm インテル® VTune™ Amplifier 2019 の新機能活用
アプリケーションの最適化に注目する開発者向け。
ターフェイスと関連する機能について説明します。
最新のインテル® アーキテクチャーとその開発環境につ
現代のニーズに応えるためにインテルが拡張している最新ハード
インテルの最新プロセッサーとソフトウェア開発製品のアッいて知りたい方、インテル® アーキテクチャーやインテ
11 月 1 日 (木) 10:05am – 11:00am
技術と製品、およびそれらをサポートするためのソフトウェア開発
プデート
ルの展開する最新製品を用いた機器のパフォーマンス
用のツールについてご説明します。
向上のための情報に関心のある方向け。
インテル® Advisor 2019 の新機能を使用した整数/浮動小数点演
アプリケーションのベクトル化効率とメモリーアクセス
10 月 19 日 (金) 1:00pm – 2:00pm
インテル® Advisor 2019 の新機能の活用算を行うアプリケーションの解析とキャッシュを考慮したメモリーの最適化に注目する開発者向け。
アクセスの解析方法を紹介します。
インテル® C/C++ および Fortran コンパイラーの OpenMP* インテル® コンパイラー・バージョン 19.0 でサポートされる
OpenMP を使用して C/C++ または Fortran で開発を
10 月 12 日 (金) 1:00pm – 2:00pm
機能レビュー Part 2
OpenMP* 5.0 の機能を確認します。
行う開発者向け。
®
®
インテル C/C++ および Fortran コンパイラーの OpenMP* インテル コンパイラー・バージョン 19.0 でサポートされる
OpenMP を使用して C/C++ または Fortran で開発を
9 月 28 日 (金) 1:00pm – 2:00pm
機能レビュー Part 1
OpenMP* 5.0 の機能を確認します。
行う開発者向け。
9 月 22 日 (土) 9:00am – 10:00am

iSUS が独自に開発したインテル® Advisor 2018 の日本語版コン インテル® Advisor 2018 を導入済みの開発者、またはインテル® Advisor 2018 日本語版の紹介と 2019 の新機能 ポーネントの導入方法とインテル® Advisor の概要、およびインテル ベクトル化やスレッド化向けに支援ツールを検討され® Advisor の今後の日本語版開発の動向をお知らせします。
ている開発者向け。

9 月 14 日 (金) 9:30am – 10:30am

今後発売される予定の「インテル® Parallel Studio XE」製品の次期 すでにインテル® ソフトウェア開発製品を導入されていインテル® Parallel Studio XE 製品の次期バージョンの案内 バージョンを、インテル Parallel Studio XE 2019 ベータ版の新機 る開発者向けに、新バージョンの新機能や改善点を紹能を参考にご紹介します。
介します。

© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

54

インテル® ソフトウェア開発ツール
日本語版パッケージを提供中

 インテル® Advisor 2018 update 1,2,3
 インテル® Advisor 2019 Initial, update 1,2
https://www.isus.jp/products/advisor/advisor_jp/
 インテル® VTune™ Amplifier 2019 Initial, update 1, 2
https://www.isus.jp/products/vtune/vtune_jp/
インテル® 64 アーキテクチャーおよび IA-32 アーキテクチャー最適化リファレンス・
マニュアル (参考訳最新 040 版)
公開中のインテル® Parallel Universe マガジン日本語版© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

55

参考資料
インテル® VTune™ Amplifier 2019 の新機能
https://www.isus.jp/products/vtune/vtune-2019-overview/
インテル® Advisor 2019 の新機能
https://www.isus.jp/products/advisor/advisor-2019-overview/© 2019 iSUS *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

56