エンタープライズ、クラウド、HPC、AI アプリケーションの並列コードを高速化

Ronald W Green
テクニカル・コンサルティング・エンジニア
インテル コーポレーション IAGS CPDP CEE DTC
2019 年 12 月

インテル® Parallel Studio XE - 概要

エンタープライズ、クラウド、HPC、AI 向けの高速でスケーラブルな並列アプリケーションを開発
インテル® Parallel Studio XE とは

対象ユーザー

使用すべき理由

エンタープライズ、クラウド、HPC、AI 向けのハイパ
フォーマンスでスケーラブルな並列アプリケーションを開発するための統合ツールスイート▪ OEM/ISV▪ インテル® Xeon® プロセッサーおよびインテル®
Core™ プロセッサーのパフォーマンスを向上▪ C++、Fortran、Python* パフォーマンス・ツールを含む: 業界最先端のコンパイラー、数値ライブラリー、
パフォーマンス・プロファイラー、コード・アナライザー▪ エンタープライズ、データセン
ター/クラウド、HPC、AI アプリ
ケーションのソフトウェア開発者、
ドメイン・スペシャリスト▪ Windows*、Linux*、macOS* をサポート▪ C++、Fortran、Python* 開発者▪ 少ない労力で、高速かつ安定した、スケーラブル
な並列コードを作成▪ コードを効率的に現代化 - 現在および将来のインテル® プラットフォーム向けに最適化▪ 標準規格に対応

30 日間無料評価版のダウンロード: www.xlsoft.com/jp/products/download/intelj.html
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

2

バージョン 2020 の新機能

インテル® Parallel Studio XE: クラウド、HPC、AI アプリケーションの並列コードを高速化
人工知能 (AI) の推論を高速化 - インテル® コンパイラーおよびアナライザーで、第 2 世代インテル® Xeon® スケーラブル・プロセッサー (開発コード名 Cascade
Lake/Cascade Lake AP) で利用可能なベクトル・ニューラル・ネットワーク命令(VNNI) をサポート
最大 512GB DIMM のパーシステント・メモリーに対応 - インテル® VTune™
プロファイラーを使用して、インテル® Optane™ DC パーシステント・メモリー向けのインテル® プラットフォームを特定、最適化、およびチューニング可能
言語規格のサポートを拡張 - 追加の Fortran 2018 機能、C++17 をフルサポート、
イニシャル C++20 をサポート
粗粒度のプロファイルを拡張 - インテル® VTune™ プロファイラーのプラット
フォーム・レベルの収集と解析

HPC クラウドをサポート - AWS* Elastic Fabric Adapter のサポートにより、
MPI アプリケーションで低レイテンシー、高帯域幅の通信を実現
新しい OS をサポート - Amazon* Linux* 2

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

3

インテル® Parallel Studio XE のコンポーネント
包括的なソフトウェア開発ツールスイート
Composer Edition
ビルド
コンパイラーとライブラリー
インテル®
C/C++、Fortranコンパイラーインテル® MKL1
インテル® DAAL2
インテル® TBB3
C++ スレッド・ライブラリー

インテル® IPP4

Professional Edition
解析
解析ツール
インテル® VTune™
プロファイラー
パフォーマンス・プロファイラー

インテル® Inspector
メモリー/スレッドのデバッガー

Cluster Edition
スケール
クラスターツール
インテル® MPI ライブラリー
メッセージ・パッシング・インターフェイス・ライブラリーインテル® Trace Analyzer &Collector
MPI チューニングと解析

画像、信号、データ処理

インテル® Advisor

Python* 向けインテル® ディストリビューション
ハイパフォーマンスな Python*

ベクトル化の最適化、スレッドのプロトタイプ生成、
フローグラフ解析

インテル® Cluster Checker
クラスター診断エキスパート・システム

オペレーティング・システム: Windows*、Linux*、macOS*5

インテル® アーキテクチャー・ベースのプラットフォーム

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

1 インテル® マス・カーネル・ライブラリー
2 インテル® データ・アナリティクス・アクセラレーション・ライブラリー
3 インテル® スレッディング・ビルディング・ブロック
4 インテル® インテグレーテッド・パフォーマンス・プリミティブ
5 インテル® Parallel Studio XE Composer Edition でのみ利用可能

4

HPC ソフトウェアの最適化の成功事例
インテル® Parallel Studio XE

科学/研究

人工知能

アプリケーション・パフォー

マンスが最大35 倍向上インテルにより最適化された scikit-learn はstock scikit-learn の最大

23 倍高速ライフサイエンス
シミュレーションが7.6 倍高速化し電力効率が 9 倍向上**
最大

NERSC (National Energy Research
Scientific Computing Center)

Google Cloud Platform*

LAMMPS コード - Sandia National
Laboratories

ケーススタディーblog (英語)テクノロジー概要 (英語)

その他の成功事例は、インテル® Parallel Studio XE のケーススタディーを参照**インテル® Xeon Phi™ プロセッサー・ソフトウェア・エコシステム・モーメンタム・ガイド (英語)
性能の測定結果は 2016-2017 年のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、http://www.intel.com/performance/ (英語) を参照してください。システム構成は、個々のケーススタディーのリンクを参照してください。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

5

インテル® Parallel Studio XE の活用例
さまざまな業界でハイパフォーマンスでスケーラブルなソフトウェアを実現
人工知能

Google Cloud Platform*

23 倍

エネルギー

10 倍

EDA

11 倍
8倍

科学/研究

the Walker Molecular
4倍Dynamics lab

製造業

1.4 倍

京都大学

1.35 倍

4倍

25 倍

政府機関
コンピューター・ソフトウェア

2.5 倍

IT

5倍

ヘルスケア

3倍

1.25 倍

1.3 倍
2倍

ほかの成功事例▪ インテル® Parallel
Studio XE のケーススタ
ディー▪ ケーススタディー (英語)
サイト

20 倍

デジタルメディア通信

2.5 倍

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は ~2015-2017年のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロー
ドは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。システム構成は、インテル®
Parallel Studio XE ケーススタディーおよびケース・スタディー・サイト (英語) を参照してください。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

6

ビルド

解析

スケール

インテル® C++ コンパイラー
インテル® Fortran コンパイラー
Python* 向けインテル® ディストリビューション
インテル® MKL
インテル® IPP
インテル® TBB
インテル® DAAL
Composer Edition に含まれる

インテル® VTune™ プロファイラー
インテル® Advisor
インテル® Inspector

インテル® MPI ライブラリー
インテル® Trace Analyzer & Collector
インテル® Cluster Checker

Professional Edition に含まれる

Cluster Edition に含まれる

インテル® コンパイラーによる高速でスケーラブルな並列コード
最先端の C/C++ および Fortran コード・パフォーマンスを実現、最新のインテル® プロセッサーの能力を最大限に活用▪ インテル® Xeon® スケーラブル・プロセッサー
コード名 Cascade Lake を含むインテル® アーキ
テクチャー向けに最適化およびベクトル化された
コードを開発▪ 最新の言語標準と OpenMP* 標準規格の利用、
主要なコンパイラーおよび IDE との互換性

詳細: xlsoft.com/jp/products/intel/compilers/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

9コンパイラーのバージョンは 19.1
▪ インテル® Parallel Studio XE 2020 に含まれているならバージョン 20 では?

▪ 次のコンパイラーのバージョンは 19.1、パッケージはインテル® Parallel Studio XE 2020
– 混乱を招き … お詫びします▪ コンパイラー 19.1 の特徴– インテル® Fortran コンパイラー 19.1
これまでのリリースで最も多くの項目を追加– 多くの新しい F2018 標準規格の機能を追加 (Co-Array Atomic、IEEE 組込み関数、–stand f18 オプションによる F18 標準規格のチェックおよび準拠など)– インテル® C++ コンパイラー 19.1
– 大きな新機能の追加はなし– いくつかの C++ 標準規格は追加されたがほとんどは不具合の修正最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

10インテル® C++ コンパイラーの新機能• C++17 の対応を完了、C++20 の対応に移行• C++20 では consteval と constexpr 仮想関数を利用可能

consteval int sqr(int n) {return n*n;}
constexpr int r = sqr(100); // OK

consteval int f() { return 42; }consteval auto g() { return f; }consteval int h(int (*p)() = g()) { return p(); }constexpr int r = h(); // OK
constexpr auto e = g(); // 不正:// 即時関数の// ポインターは// 定数式の結果// として使用できない

int x = 100;
int r2 = sqr(x); // エラー: 呼び出しで定数が生成されない最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

11

新しいプロセッサー (開発コード名 Cascade Lake) に対応• 新機能: VNNI (ベクトル・ニューラル・ネットワーク命令)• 畳み込みニューラル・ネットワーク (NN) ベースのアルゴリズム向けに設計• 組込み関数とインライン・アセンブリーによりサポート• NN ライブラリー、カーネルのクリエーターに役立つ (インテル® MKL-DNN など)• …/include/icc/zmmintrin.h バージョン 19 以降• コンパイラーは VNNI 命令を自動生成しない• ハイレベルのアルゴリズムを認識して VNNI に変換する方法はない• -x および –ax cascadelake コンパイラー・オプション (–m オプションなし)• –xskylake-avx512 –qopt-zmm-usage=high と同じ最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

12

Fortran の新機能 – 大量
F2015: SELECT RANK 構文の実装
F2015: Co-Array Fortran: COARRAY COLLECTIVE 組込みプロシージャーの実装
F2015: Co-Array Fortran: 新しい ATOMIC 組込み関数の実装
F2015: 汎用インターフェイスの宣言に GENERIC 文を使用可能
F2015: 非標準組込みプロシージャーとモジュール、または標準モジュールの非標準組込み関数の使用の診断には F2015 コンパイラーが必要
F2008/F2015: ISO_C_BINDING、IEEE_ARITHMETIC、および IEEE_EXCEPTIONS で宣言された変換関数を仕様表現で利用可能
F2015: ラベル付き DO ループは非推奨の警告を表示
F2015: 算術 IF 文を削除
F2015: COMMON、EQUIVALENCE、および BLOCK DATA は非推奨に
F2015: ノンブロック DO 構造は削除される機能
F2015: SIZE= 指定子をアドバンシング入力とともに使用可能
F2015: INQUIRE 文の RECL= 指定子で割り当てられる値を標準化
F2015: D、E、EN、および ES 編集記述子でゼロ幅のフィールドを使用可能、F 編集記述子と同様
F2015: データ編集記述子の指数幅 e はゼロ、ゼロ幅のフィールドと同様
F2015: 浮動小数点形式の入力に ISO/IEC/IEEE 60559:2011 に準拠した 16 進仮数を利用可能
F2015: 新しい EX 編集記述子を実装
F2015: KIND 引数にはキーワードなし複素実引数の組込み関数 CMPLX への参照が必要
F2015: SIGN 関数の引数が異なる種類にF2015: IMPLICIT NONE (EXTERNAL | TYPE)
F2015: 特定の組込みプロシージャーが非推奨にF2015: DO CONCURRENT の変数の局所性が DO CONCURRENT 文で宣言可能に
F2018: IEEE_RINT 関数にオプションの ROUND 引数を追加
F2018: IEEE_NEXT_DOWN および IEEE_NEXT_UP 組込みモジュール関数を実装
F2018: IEEE_AWAY 丸めモードを追加
F2018: IEEE_FMA (融合積和) 関数を実装
F2018: IEEE_SIGNBIT 組込みモジュール関数を実装
F2018: IEEE_GET_ROUNDING_MODE および IEEE_SET_ROUNDING_MODE 関数にオプションの RADIX 引数を追加
F2015: IEEE_MAX|MIN_NUM[_MAG] 組込み関数を実装
F2015: SUBNORMAL は DENORMAL と同義に
F2015: IEEE_QUIET|SIGNALING_COMPARE (COMPARE は EQ、GE、GT、LE、LT、または NE) を実装
F2015: 保留中の非同期操作で INQUIRE 文の POS= および SIZE= の値を標準化
F2015: ATOMIC_DEFINE および ATOMIC_REF に STAR 引数、MOVE_ALLOC および CRITICAL 構文に STAT と ERRMSG、画像セレクターに STAT= をそれぞれ追加最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

13

SELECT RANK 構文 (ランク引き継ぎ変数)•

ランク引き継ぎ変数のランクに基づいて実行するブロックの 1 つを選択する••型に基づいて選択する SELECT TYPE 構文に似ている

ランク引き継ぎ変数はランクと関連付けられた実引数からランクを継承する仮引数。新しい配列定義“(..)” 構文で引数を定義。例:

SUBROUTINE process_array(x)real :: x(..)•! ランク引き継ぎ配列 – 任意のランク配列引数

SELECT RANK の構文[name:] SELECT RANK ([assoc-name => ] selector)[rank-case-stmt block]...

END SELECT [name]各 rank-case-stmt は次のいずれか:

RANK (scalar-int-const-expr) [name]RANK (*) [name]RANK DEFAULT [name]

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

14

SELECT RANK 構文 - 例
PROGRAM select_rank
SUBROUTINE process_array(x)real :: a, b(5), d(5,5,5)
real :: x(..) ! ランク引き継ぎ配列
call process_array(a) ! Rank(0) ブロック SELECT RANK(y=>x)
call process_array(b) ! Rank(1) ブロック
RANK (0) ! スカラー•
call sub(d) ! Rank (*) ブロックy=0
contains
print *, RANK(y) ! print 0
SUBROUTINE sub (y)RANK (1) ! 1 次元配列
real :: y(*)! 大きさ引き継ぎy(::2) = 1
call process_array(y)print *, RANK(y) ! print 1•
END SUBROUTINERANK (*)
do i=1,125•y(i) = 3
end doprint *, RANK(y) ! print 1
RANK DEFAULT
print *, 'Error: Unexpected rank ',RANK(y)END SELECTEND SUBROUTINE process_arrayEND PROGRAM select_rank

想定される出力は 0 1 1

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

RANK (*)
select rank 構文は実行される 1 つのブロックを選択する。セレクターに対応する実引数がサイズ引き継ぎ配列の場合、RANK (*) 文ブロックが実行される。
そうでない場合、セレクターのランクと一致する
RANK (scalar-int-const-exp) ブロックが選択される。
RANK (DEFAULT)
一致がなく、RANK (DEFAULT) 文がある場合、その文に続くブロックが実行される。

15

インテル® Fortran コンパイラー 19.1 Co-Array Fortran の機能
Co-Array 集合組込み関数•

CO_BROADCAST、CO_MIN、CO_MAX、CO_REDUCE、および CO_SUM。

•

集合サブルーチンは画像の計算を行い、結果を 1 つの画像またはすべての画像に割り当てる。同期は不要。

•

集合サブルーチンはすべてのアクティブな画像で同じ文で呼び出される。サブルーチンの対応する参照は同じ集合に関係する。

•

今後の予定: バージョン 19.1 では複数のチームはまだサポートされていない。集合組込
みサブルーチンの唯一のチームは、すべての画像を含む初期のチーム。

例: CO_MAX (A, [,RESULT_IMAGE, STAT, ERRMSG])
画像数が 2 の場合、整数配列 R(1:4) は画像 1 で [5, 10, 20, 15]、画像 2 で [10, 15, 20, 5]
CALL CO_MAX (R) - エラーがない場合、R の値は両方の画像で [10, 15, 20, 15]
CALL CO_MAX (R, 1) - 画像 1 の R は [10, 15, 20, 15]、画像 2 の R は未定義
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

16

インテル® Fortran コンパイラー 19.1 Co-Array Fortran の機能(続き)

Co-Array アトミック組込み関数• アトミック・サブルーチンは ATOM 引数のアクションをアトミックに実行する。
• OLD 引数が含まれる場合、その引数に割り当てられた値もアトミックに決定される。
• アクションは ATOM 引数で実行される。ほかの引数の評価または定義はアトミックに実行されない。
例: ATOMIC_ADD (ATOM, VALUE [, STAT]) – アトミック加算
アトミック操作が CALL ATOMIC_ADD (N[12], 10) で実行された場合、N[12] は 4
アトミック操作が完了した場合、N[12] は 14

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

17

コンパイラー 19.1 の対応 OS - Windows*• Windows* 10• Windows Server* 2019
• Windows Server* 2016 (1607)• Visual Studio*▪ Visual Studio* 2017 + Windows* SDK 10、Visual Studio* 2017 Build Tools + Windows* SDK 10▪ Visual Studio* 2019 + Windows* SDK 10、Visual Studio* 2017 Build Tools + Windows* SDK 10
インテル® Visual Fortran コンパイラーの Visual Studio* 統合 - 上記の Visual Studio* IDE と同じ** 注:• Visual Studio* Shell の提供は終了• Visual Studio* 2015 のサポートを廃止 – Visual Studio* 2017 以前の古い Visual Studio* には統合されない最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

19コンパイラー 19.1 の対応 OS - Linux*
最新/対応予定▪ Red Hat* Enterprise Linux* 7.5**、8▪ SuSE* Linux* Enterprise Server (SLES) 15▪ Fedora* 30、31 (サポート中のリリースに対応)▪ Ubuntu* 18.04 LTS、18.10、19.04▪ Debian* 9▪ Amazon* Linux*▪ インテルの Clear Linux*
注: 上記ディストリビューションをベースとする CentOS*、OpenSUSE* でも動作します** 2020 年以降の新しい Linux* ディストリビューションでは GCC 5.x 以降が必要
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

20

コンパイラー 19.1 の対応 OS - macOS*
macOS* 10.15、Xcode* 11* macOS* 11 から 32 ビット・アプリケーションはサポートされない(Apple のサポート方針)
macOS* 10.14 Mojave、Xcode* 10

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

21

Python* 向けインテル® ディストリビューションで Python* を高速化
科学計算、データ解析、マシンラーニング、ディープラーニング向けのハイパフォーマンスな Python*

高速なパフォーマンス

優れた生産性

エコシステムの互換性

パフォーマンス・ライブラリー、並列化、マルチスレッド化、言語拡張

事前ビルドの高速化されたパッケージ

Python* 3.7、conda、pip をサポート▪ インテル® MKL1 とインテル® oneDAL2により NumPy*/SciPy*/scikit-learn を高速化▪ 数値計算、マシンラーニング/ディープラーニング、HPC、データ解析向けの事前ビルドの最適化されたパッケージ▪ Python* 3.7 をサポート、最適化を
Anaconda* ディストリビューションに統合▪ scikit-learn、daal4py によるデータ解析、
マシンラーニング、ディープラーニング▪ 既存の Python* から簡単に移行可能 コード変更不要▪ Numba と Cython によるスケーリング▪ Matplotlib を含む▪ ディストリビューションおよび最適化されたパッケージは conda、pip、apt get、yum、
DockerHub から利用可能、さまざまなパ
フォーマンスの最適化を Anaconda* ディストリビューションに統合▪ 最適化された mpi4py、Dask & PySparkで動作▪ 商用開発を含むすべてのユーザーに無料で提供▪ 最適化はメインの Python* トランクに反映される▪ 最新のインテル® アーキテクチャー向けに最適化

オペレーティング・システム: Windows*、Linux*、macOS*3

インテル® アーキテクチャー・ベースのプラットフォーム

詳細: xlsoft.com/jp/products/intel/python/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

1 インテル® マス・カーネル・ライブラリー
2 インテル® oneAPI データ・アナリティクス・ライブラリー
3 インテル® Parallel Studio XE Composer Edition でのみ利用可能

23

ネイティブコードに近いパフォーマンスを実現▪ 科学計算、マシンラーニング、データ解析向けに
NumPy*/SciPy*/scikit-learn を高速化
▪ 既存の Python* から簡単に移行可能 - コード変更不要▪ 最新のインテル® プロセッサー向けの高度な最適化

バージョン 2020 の新機能
▪ Python* のバージョンを 3.7 に更新▪ インテル® DAAL を使用して高速化された scikit-learn の主要アルゴリズムによりマシンラーニングのパフォーマン
スを向上▪ 改良された daal4py パッケージを使用して Python* API
でインテル® DAAL 機能を利用するデータ・サイエンティス
トのニーズに対応

インテル® MKL を使用したネイティブ
コードに対するパフォーマンス効率

Python* 向けインテル® ディストリビューションで Python* を高速化
インテルによる Python* 向け最適化はネイティブコード scikit-learn に匹敵するパフォーマンスを達成 - インテル® Xeon® プロセッサー

Python* 向けインテル® ディストリビューション 2020

stock Python*

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は 2019 年 11 月 27 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用される
ソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。

2019 年 11 月 27 日時点のインテルによるテスト。システム構成: stock Python*: python 3.7.5 h0371630_0 を conda でインストール。numpy 1.17.4、numba 0.46.0、llvmlite 0.30.0、scipy 1.3.2、scikit-learn 0.21.3 を pip でインストール。Python* 向けインテル® ディストリビューション 2020 Gold: python 3.7.4 hf484d3e_3、numpy 1.17.3 py37ha68da19_4、mkl 2020 intel_133、mkl_fft 1.0.15 py37ha68da19_3、mkl_random 1.1.0
py37ha68da19_0、numba 0.45.1 np117py37_1、llvmlite 0.29.0 py37hf484d3e_9、scipy 1.3.1 py37ha68da19_2、scikit-learn 0.21.3 py37ha68da19_14、daal 2020 intel_133、daal4py 2020 py37ha68da19_4。
Linux* OS: CentOS* 7.3.1611、カーネル 3.10.0-514.el7.x86_64。ハードウェア: インテル® Xeon® Platinum 8280 プロセッサー @ 2.70GHz (2 ソケット、28 コア/ソケット、インテル® ハイパースレッディング・テクノロジー無効)、
256GB DDR4 RAM、16 DIMM (16GB @ 2666MHz)。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

24

インテル® MKL 2020 による高速でスケーラブルなコード
製品概要:

インテル® MKL に含まれる機能
密線形代数

▪

高度に最適化、スレッド化、ベクトル化された数学関数により、科学、工学、金融アプリケーションにおける計算を高速化▪

密/疎線形代数 (BLAS、LAPACK、PARDISO)、FFT、ベクト
ル演算、サマリー統計、スプラインなどの主な機能を提供▪

コードを分岐せずに各プロセッサー向けに最適化されたコードを自動ディスパッチ

高速フーリエ変換▪

シングルコアのベクトル化およびキャッシュ効率を向上する
最適化

ベクトル演算▪

マルチコア CPU の自動並列化、コアからクラスターにス
ケーリング

▪

yum、apt-get、conda、Cloudera および NuGet でダウンロードまたは無料のライブラリー・プログラムの一部として
入手

疎線形代数

ベクトル RNG
その他

インテル® Parallel Studio XE およびインテル® System Studio の一部として利用可能

インテル® アーキテクチャー・ベースのプラットフォーム
オペレーティング・システム: Windows*、Linux*、macOS*
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

26

インテル® MKL の機能
線形代数

FFT

ベクトル

サマリー

ベクトル

RNG

統計

演算

尖度

三角

BLAS

多次元
LAPACK

エンジン

変化係数

ScaLAPACK

スパース BLAS
反復法スパースソルバー
クラスター・
スパース・ソルバー
PARDISO

クラスター
FFT

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

スプライン

双曲線
指数

FFTW
インターフェイス

その他

補間

順序統計量
対数
分布

最小/最大
分散/共分散

信頼領域

累乗
累乗根

高速ポアソンソルバー

27

インテル® MKL 2020 の新機能 (ドメイン別リスト)
BLAS• インテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) およびインテル® アドバンスト・ベクトル・エクステンション
512 (インテル® AVX-512) 命令セットで C オフセットが非ゼロの場合に小から中サイズの iGEMM のパフォーマンスが向上• N が小さい TN ケースの SGEMM のパフォーマンスが向上• GEMM_S8U8S32 および GEMM_S16S16S32 でインテル® TBB のスレッドを有効化、チームの小規模な更新• インテル® AVX およびインテル® ストリーミング SIMD 拡張命令 4.2 (インテル® SSE4.2) 命令セットで 8 ビット/16 ビット iGEMMの最適化を追加• アルファスケール係数が整数値でない場合のインテル® AVX2 およびインテル® AVX-512 アーキテクチャーにおける
GEMM_S8U9S32 と SGEMM_S16S16S32 の精度問題に対処

ScaLAPACK• 実上準三角行列の一部またはすべての右/左固有ベクトルの計算向けの P{D,S}TREVC 関数を追加

乱数ジェネレーター (RNG)• MRG32k3a/Philox4x32-10/ARS-5 基本乱数ジェネレーターの乱数ジェネレーター向けの高度な SkipAhead メソッドを追加• インテル® AVX-512 システムの ARS-5 基本乱数ジェネレーターのパフォーマンスを向上

サマリー統計• インテル® AVX2 およびインテル® AVX-512 命令セットでロー/中心積率/和、分散/共分散/相関/クロス積行列の高速計算メソッドのパフォーマンスが向上

ライブラリー・エンジニアリング• モジュール・ファイル・サポートを追加最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

28

第 2 世代インテル® Xeon® スケーラブル・プロセッサーにおけるインテル® MKL 2020 と競合製品のパフォーマンスの比較
インテル® Xeon® Platinum プロセッサー上での DGEMM

インテル® Xeon® Platinum プロセッサー上での SGEMM
インテル® MKL 2020 Gold と競合製品のSGEMM の比較 (56 スレッド)
パフォーマンス (GFLOPS)

パフォーマンス (GFLOPS)

インテル® MKL 2020 Gold と競合製品のDGEMM の比較 (56 スレッド)

問題サイズ (M = N = K)
OpenBLAS 0.3.7

BLIS 0.5.2

インテル® MKL 2020

問題サイズ (M = N = K)
OpenBLAS 0.3.7

BLIS 0.5.2

インテル® MKL 2020

上記のベンチマーク結果は、追加のテストによって変更が必要になる可能性があります。結果は、テストに使用される特定のプラットフォーム構成や作業負荷に依存します。個々のユーザーのコンポーネント、コンピューター・システム、作業負荷では同様の結果が得られない可能性があります。結果は、必ずしもほかのベンチマークを代表するものではなく、ほかのベンチマークでは、結果が異なることがあります。性能の測定結果は 2019 年 11 月 7 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コン
ポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 7 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8280L プロセッサー @ 2.70GHz (2 ソケット、28 コア/ソケット、H0 ステッピング、TDP 205W)、192GB DDR4-2666。インテル® MKL
2020。ベンチマークの出典: インテル コーポレーション。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

29

画像、信号、データ処理アプリケーション向けのビルディング・ブロック
インテル® IPP
最適化

画像処理

インテル® IPP の概要••

ハイパフォーマンス
簡単に使える API
開発期間を短縮
プロダクション環境にも対応
クロスプラットフォーム API•••

さまざまな取り組み

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

データセンター

IoT

組込みシステム

ADAS
自動ソート
生体認証
視覚探索

ゲーム (高度なオーディオコンテンツやエフェクト)
エコー・キャンセレーション
通信
エネルギー

データ圧縮と暗号化

インテル® IPP の入手方法• インテル® Parallel Studio XE• インテル® System Studio• 無料ツールプログラム (英語)

•
•
•
•

信号処理

サポート

インテル® IPP を使用する理由
•
•
•
•
•

医療用画像
コンピューター・ビジョン
デジタル監視••インテル® IPP は、画像処理、信号処理、デー
タ圧縮、暗号化計算を高速化する、すぐに使える、プロセッサー向けに最適化された関数を開発者に提供

クラウド・
コンピューティング

•
•
•
•
•
•

データセンターエンタープライズ・データ管理
ID 検査
スマートカード/スマートウォレット
電子署名
情報セキュリティー/サイバーセキュリティー

詳細: https://www.xlsoft.com/jp/products/intel/perflib/ipp/フォーラム (英語): http://software.intel.com/en-us/forums/intel-integrated-performance-primitives

30

インテル® IPP

ハイパフォーマンスで使いやすいプロダクション環境対応の API

画像処理

信号処理

コンピューター・ビジョン
カラー変換
画像ドメイン

データ圧縮
暗号化

ベクトル演算信号ドメイン

文字列処理
データドメインインテル® アーキテクチャー・ベースのプラットフォーム
オペレーティング・システム: Windows*、Linux*、Android*、macOS*1
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

1 インテル® Parallel Studio XE Composer Edition でのみ利用可能

31

インテル® IPP の利点
クラウドおよびサーバー・アプリケーション▪ ウェブ画像の処理 (サイズ変更、フィルターなど)▪ ウェブデータの圧縮と転送、データ暗号化/復号化

マシンビジョン
▪ 画像フィルター、セグメンテーション▪ エッジ検出、パターン認識

医療用画像▪ CT、MRI 信号処理
▪ 医用画像処理

車載システム▪ 画像、オーディオデータ処理

ストレージ▪ ストレージデータ圧縮▪ ストレージデータ暗号化/復号化
画像印刷▪ 画像拡張および補正▪ データ圧縮
デジタル監視▪ コンピューター・ビジョン▪ 画像認識信号処理▪ 地震データ解析、レーダーおよびソナー信号処理最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

生体認証▪ 生体画像および信号処理
視覚探索▪ 画像コンテンツの検査 (色、形、テクスチャーなど)
通信▪ ワイヤレス通信信号処理▪ 通信向け CRC および MIMO 関数
その他▪ デジタルメディア、セキュリティー、モバイル……
32

インテル® IPP の画像処理サイズ変更関数によるスピードアップ
線形、立方、ランチョス補間、インテル® Pentium® J4205 プロセッサー
インテル® IPP 画像サイズ変更関数のパフォーマンス向上

1

1

1

ippiResizeLinear_8u_C1R

ippiResizeCubic_8u_C1R

コンパイル済み C コード

2.5x

2.9x

2.7x

スピードアップ

インテル® IPP により最適化されたコードとコンパイル済み C コードの比較

ippiResizeLanczos_8u_C1R

インテル® IPP SSE4.2

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販
売店にお問い合わせください。性能の測定結果は 2019 年 11 月 8 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark*や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。性能やベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、
http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 8 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8260L プロセッサー @ 2.30GHz、64GB RAM、インテル® ハイパースレッディング・テクノロジー有効。ソフトウェア: インテル® コンパイラー
18.0.0、GCC 4.8.2。Linux* OS: Red Hat* Enterprise Linux* 7.4、カーネル 3.10.0-693.11.6.el7.x86_64。インテル® IPP v.2020.0.0。コンパイラー・オプション: インテル® C++ コンパイラー 18.0.0: -O3 –fstack-protector-ffreestanding –xATOM_SSE4.22。GCC 4.8.2 -O2。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

33

ZFP 圧縮/展開のパフォーマンスを向上
インテル® IPP

インテル® IPP とオリジナル ZFP ライブラリーの
データ圧縮パフォーマンスの比較
x11.69x11.00x10.95x11.68x11.65インテル® IPP とオリジナル ZFP ライブラリーのデータ展開パフォーマンスの比較

x12.49
x5.02

x4.95

x5.48

x5.15

x5.28

x5.69

x5.35

x4.87

インテル® IPP とオープンソース・ インテル® IPP とオープンソース・ インテル® IPP とオープンソース・バージョン 0.5.2
バージョン 0.5.4
バージョン 0.5.5

中データ

密データ

x1.92

x1.74

x1.64

疎データ

x5.57

インテル® IPP とオープンソース・ インテル® IPP とオープンソース・ インテル® IPP とオープンソース・バージョン 0.5.2
バージョン 0.5.4
バージョン 0.5.5

疎データ

中データ

密データ

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は 2019 年 4 月 22 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成
情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。性能やベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、
http://www.intel.com/benchmarks/ (英語) を参照してください。インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice/#opt-jp
を参照してください。
2019 年 4 月 22 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8180 プロセッサー、2.50GHz、2x28 コア、188GB RAM、L3=38.5MB。Red Hat* Enterprise Linux* Server 7.5。GNU* コンパイラー 4.8.2。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

34

インテル® TBB による高度なスレッド化
スレッド化を利用してマルチコア・パフォーマンスとヘテロジニ
アス・コンピューティングを活用▪ CPU、GPU、FPGA にわたって計算負荷の高い作業を並列処理 - C++
で高レベルのシンプルなソリューションを提供▪ 並列プログラミング向けの機能が豊富で包括的なソリューション
▪ 優れた移植性、構成の容易性、コスト、アプローチを備えた将来にわたるスケーラビリティー

バージョン 2020 の新機能
▪ NUMA 対応アプリケーションの開発を簡素化するため task_arena
インターフェイスを拡張▪ 非推奨の機能が使用されたときに警告を表示▪ フローグラフのノードに C++17 推定ガイドを追加
詳細: xlsoft.com/jp/products/intel/perflib/tbb/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

35

インテル® TBB のコンポーネント

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

36

ヘテロジニアス・サポート
インテル® TBB

ヘテロジニアス調整レイヤーとしてインテル® TBB のフローグラフは最適化の可能性を保持し、既存のモデルで構成+

インテル® TBBOpenVX*
OpenCL*
COI/SCIF…

CPU、統合 GPU など
ライブラリー実装の構成レイヤーとしてのインテル® TBB▪ 1 つのスレッドエンジンで CPU 側の全処理に対応

調整レイヤーとしてのインテル® TBB フローグラフ▪ ヘテロジニアス・ハードウェアとソフトウェアをつなぎ合わせる▪ ブロック間の並列性を示し、統合を容易にする
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

37

インテル® DAAL による解析とマシンラーニングのスピードアップ
マシンラーニングとビッグデータ解析のパフォーマンス
を高速化▪ アプリケーションがより速くより優れた予測を行えるように支援▪ 最高のパフォーマンスを引き出せるようにデータの取り込みとアルゴリズムの計算を最適化▪ 広範なアプリケーションのニーズを満たす、オフライン、ストリーミ
ング、分散型使用モデルをサポート▪ エッジデバイスとクラウドサービス間で解析ワークロードを分割してアプリケーション全体のスループットを最適化

バージョン 2020 の新機能
新しいアルゴリズム▪ ハイパフォーマンス多項 Adaboost、広く利用されている分類
アルゴリズム▪ 拡張勾配ブースティング機能、確率的分類と変数の重要度計算を提供▪ 拡張決定木機能、確率的分類と加重データを提供

詳細: xlsoft.com/jp/products/intel/perflib/daal/

前処理

変換

解析

モデリング

検証

意思決定

展開、
フィルタリング、正規化

集計、
次元縮小

サマリー統計
クラスタリングなど

マシンラーニング (訓練)、パラメーター推定、
シミュレーション

仮説検証、
モデルエラー

予測、決定木など

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

38

インテル® DAAL のアルゴリズム
マシンラーニング

リッジ回帰
線形回帰

2019 Update 5 の新機能

DBSCAN

2019 Update 5 の新機能

LASSO

回帰
2020 の新機能

教師あり学習決定木

AdaBoost

ランダムフォレスト

Brown/Logit
ブースティング

勾配ブースティング

ナイーブベイズ分類

ロジスティック
回帰kNN
バッチ処理をサポートするアルゴリズム

教師なし学習K 平均法

EM (GMM)

協調
フィルタリング

交互最小 2 乗
(ALS)

アプリオリ

SVM

バッチおよび分散処理をサポートするアルゴリズム
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

39

インテル® DAAL のアルゴリズム
データ変換および解析
データセットの
基礎統計

補正と依存性

低次モーメント

コサイン距離行列の因数分解

SVD

次元縮小

外れ値検出

PCA

単変量

QR
相関距離

分位数

コレスキー

順序統計量

分散共分散
行列

tSVD

相関ルール
マイニング
(アプリオリ)

多変量

最適化ソルバー(SGD、AdaGrad、lBFGS、CD)

数学関数(exp、log、…)

バッチ処理をサポートするアルゴリズム
バッチ、オンライン、分散処理をサポートするアルゴリズム
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

40

勾配ブースティングのパフォーマンス (数値が大きいほど高性能)
インテル® DAAL 2020 と DMLC XGBoost* 0.9 の比較
60

54.8

スピードアップ

50
40
28.4

30

19.8

20
8.4

10

10.4
2.8

17.1
8.4 11.0

5.0

13.4

8.9 11.5

MNIST

MSRank2.3

0AbaloneLetters

Mortgage

Higgs

トレーニング

Airline推論

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販
売店にお問い合わせください。性能の測定結果は 2019 年 11 月 11 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成
情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。性能やベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、
http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 11 日時点のインテルによるテスト。システム構成: CPU 構成: c5.metal AWS* インスタンス (第 2 世代インテル® Xeon® スケーラブル・プロセッサー、2 ソケット、インテル® ハイパースレッディング・テクノロジー有効、インテル® ターボ・ブースト・テクノロジー有効、RAM 192GB (12 スロット/16GB/2933MHz)。OS: Ubuntu* 18.04.2 LTS。BIOS: 1.0 Amazone EC2 (ucode: 0x5000017)。OMP 環境: OMP_NUM_THREADS=48
OMP_PLACES={0}:96:1)。ソフトウェア: XGBoost 0.9 (pip でダウンロード)、インテル® DAAL: 2020。Python* 環境: Python* 3.6、Numpy* 1.16.4、pandas 0.25、scikit-learn 0.21.2。XGBoost のパラメーター (CPU) { 'alpha': 0.9,
'max_bin': 256, 'scale_pos_weight': 2, 'learning_rate': 0.1, 'subsample': 1, 'reg_lambda': 1, "min_child_weight": 0, 'max_depth': 8, 'max_leaves': 2**8, ‘tree_method’: 'hist‘, 'predictor‘: 'cpu_predictor' }。XGBoost のパラメー
ター (GPU) { 'alpha': 0.9, 'max_bin': 256, 'scale_pos_weight': 2, 'learning_rate': 0.1, 'subsample': 1, 'reg_lambda': 1, "min_child_weight": 0, 'max_depth': 8, 'max_leaves': 2**8, ‘tree_method’: ‘gpu_hist‘, 'predictor‘:‘gpu_predictor' }。入力データ形式: Numpy* 配列、目的関数: 'binary:logistic‘ (二項分類)、‘multi:softmax’ (多項)、‘reg:squarederror’ (回帰)。反復数: 200 (MNIST)、100 (Mortgage)、1000 (その他)。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

41

スピードアップインテル® DAAL 2020 と Apache Spark* MLlib のパフォーマンス
(数値が大きいほど高性能)
20
18
16
14
12
10
8
6
4
2
0

18.2

18.1
13.8

7.4
3.6
1

1

1

暗黙的 ALS

K 平均法

線形回帰

Apache Spark* MlLib

1

1

相関

PCA

インテル® DAAL

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は 2019 年 11 月 11 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 11 日時点のインテルによるテスト。システム構成: 7 x m5.2xlarge AWS* インスタンス。インテル® DAAL 2020。相関 (サンプル = 10M、特徴 = 1000 (インテル® DAAL = 35.2 秒、MLLib = 638.2 秒))、PCA (サンプル = 10M、特徴 = 1000 (インテル® DAAL = 35.2 秒、MLLib = 639.8 秒))、暗黙的 ALS (ユーザー = 1M、項目 = 1M、係数 = 100、反復 = 1 (インテル® DAAL = 37.6 秒、MLLib = 134.9 秒))、
線形回帰 (サンプル = 100M、特徴 = 50 (インテル® DAAL = 16.3 秒、MLLib = 224.5 秒))、K 平均法 (サンプル = 100M、特徴 = 50、クラスター = 10、反復 = 100 (インテル® DAAL = 211 秒、MLLib = 1567.3 秒))。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

42

ビルド

解析

スケール

インテル® C++ コンパイラー
インテル® Fortran コンパイラー
Python* 向けインテル® ディストリビューション
インテル® MKL
インテル® IPP
インテル® TBB
インテル® DAAL
Composer Edition に含まれる

インテル® VTune™ プロファイラー
インテル® Advisor
インテル® Inspector

インテル® MPI ライブラリー
インテル® Trace Analyzer & Collector
インテル® Cluster Checker

Professional Edition に含まれる

Cluster Edition に含まれる

インテル® VTune™ プロファイラーによるアプリケーションのパフォーマンスの解析とチューニング
より分かりやすい製品名に変更
コードの最適化にかかる時間を短縮▪ C、C++、Fortran、Python*、Go*、Java* に加えて、これらの言語が混在したコードを正確にプロファイル▪ CPU、スレッド、メモリー、キャッシュ、ストレージほかを最適化▪ 時間を節約: 詳細な解析により洞察が得られる▪ プライオリティー・サポートの利用– インテルのエンジニアに技術的な質問を直接問い合わせ可能 (有償バージョン)

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

詳細: xlsoft.com/jp/products/intel/vtune/

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

▪ プラットフォーム・プロファイラーの正式リリース - 長いデータ収集▪ インテル® Optane™ DC パーシステント・メモリー向けに設計
および最適化▪ アプリケーション・パフォーマンス・スナップショット - 通信パター
ン診断を追加、多くのランクをプロファイル▪ Linux* - perf の使用を拡張、ドライバーを追加しない解析が可能
44

さまざまな分野に対応した豊富なプロファイル機能インテル® VTune™ プロファイラー

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

45

インテル® VTune™ プロファイラー 2020

(より分かりやすい製品名に変更)

新機能(一部のみ抜粋)

新しいプロダクション機能
▪
▪
▪
▪
▪
▪
▪
▪
▪

プロダク
インテル® Optane™ DC パーシステント・メモリー向けに設計および最適化
ション機能
プラットフォーム・プロファイラー - システムメトリックを素早く分かりやすく表示
I/O 解析 - PCIe* デバイスメトリックを強化
Linux* - perf の使用を拡張、ドライバーを追加しない解析が可能
パフォーマンス解析クックブック – 一般的な解析手法のレシピ
HPC 解析 - ベクトル化メトリックを合理化、プロセス/スレッド・アフィニティーを表示
アプリケーション・パフォーマンス・スナップショット - 通信パターン診断、多くのランクをプロファイル
マイクロアーキテクチャー解析 – 最新のプロセッサーに対応 (開発コード名 Cascade Lake など)
OpenCL* 解析 – インラインフィルター、中間言語、命令カウント

新しいプレビュー/試験的機能▪
▪
▪
▪

プロセス・スレッド・アフィニティー可観測性 (プレビュー機能)
ファブリック・プロファイラー – 通信ボトルネックを診断 (プレビュー機能)
Lustre* 並列ファイル I/O 解析 (試験的機能)
プロセッサー・トレース – 非常に短い異常検知 (試験的機能)最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

プレビュー
機能

46

インテル® Optane™ DC パーシステント・メモリー向けに最適化
新しいメモリー・テクノロジー
インテル® Optane™ DC パーシステント・
メモリー

DRAM
属性

Nand
SSD 属性

低レイテンシーでDRAM に匹敵する
パフォーマンス1

DRAM よりも
高容量で
データを
保持2

インテル® VTune™
プロファイラーで解析

プロダク
ション機能

より大きなメモリーの構成の問題点と可能性を検出

プラットフォーム・
プロファイラー

ホット/ウォーム/クール
メモリーのデータ構造を識別

メモリー解析

I/O ボトルネックを特定

ストレージ
解析

パーシステント・メモリーの使用をチューニング

上記のすべて1. “DRAM に匹敵するパフォーマンス” - インテル® Optane™ DC パーシステント・メモリーは DDR4 DRAM に近いレイテンシーで動作すると予想される。ベンチマークおよび詳細は近日公開予定。
“低レイテンシー” - メモリーバス間のデータ転送のレイテンシーは PCIe* または I/O バスと NAND/ハードディスク間のデータ転送に比べて桁違いに低い。ベンチマークおよび詳細は近日公開予定。
2. インテル® Optane™ DC パーシステント・メモリーは 3 つの異なる容量 (128GB、256GB、512GB) を提供。DDR4 DRAM の個々の DIMM は最大 256GB。
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

47

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

検出

パフォーマンス・メトリック▪ 構成の問題点▪ 適切にチューニングされていないソフト
ウェア

▪
▪
▪
▪

ターゲットユーザー▪ インフラストラクチャー・アーキテクト▪ ソフトウェア・アーキテクト/QA

プロダク
ション機能

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

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

コア間の比較

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

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

48

未活用のパフォーマンスを素早く発見する方法

インテル® VTune™ プロファイラー - アプリケーション・パフォーマンス・スナップショット

プロダク
ション機能

パフォーマンスの概要を簡単に素早く確認▪ 休憩中にテストケースをインストールして実行可能

すべてのデータを 1 カ所に表示▪ MPI + OpenMP* + メモリー + 浮動小数点

一般的な MPI 実装をサポート▪ インテル® MPI、MPICH、OpenMPI、Cray* MPIバージョン 2020 の新機能
▪ 通信パターン診断▪ 平均だけでなく高帯域幅の時間を確認▪ 64K ランクを超える大きな MPI アプリケーションを
プロファイルLinux* のみ

無料ダウンロード: http://www.intel.com/performance-snapshot (英語)
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

49

多くのランクのスナップショット

インテル® VTune™ プロファイラー - アプリケーション・パフォーマンス・スナップショット

プロダク
ション機能

効率の低い MPI スケーリングを引き起こす MPI 通信パターンを検出▪ 時間と量の両方でランク間通信を確認▪ 平均だけでなく高帯域幅の時間を確認
大きな MPI アプリケーションを
プロファイル▪ 64K ランクを超えてスケール最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

50

通信ボトルネックを診断
インテル® VTune™ プロファイラー

アプリケーション・
パフォーマンス・
スナップショット

一般的なボトルネック▪ 遅いスイッチまたは遅いノードアダプター▪ 効率の低いスケジューリング

MPI ランク間通信

プロダク
ション機能

▪ アプリケーション・パフォーマンス・スナップショット

ファブリック・プロファイラー (プレビュー機能、旧 ESP)
▪ インテル® VTune™ プロファイラー 2020 に付属▪ プレビューでは別のインターフェイス▪ 最初は SHMEM のみ (MPI は未対応)▪ InfiniBand*、Cray* Aries およびインテル® Omni-Path アーキテクチャー
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

2020
プレビュー
機能

ファブリック・プロファイラー
通信時系列

同期統計

遅延 hotspot
解析51

プロセス・スレッド・アフィニティー可観測性
インテル® VTune™ プロファイラー - HPC パフォーマンス特性

2020
プレビュー
機能

スレッド・アフィニティーとマイグレーションを視覚化▪ CPU の不十分な利用と NUMA 関連のパフォーマンス
問題を特定▪ アフィニティー設定が予想通りに動作していることを素早く確認

コマンドラインまたは UI▪ 個別の HTML レポートを生成最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

52

新規ユーザーにも使いやすい
インテル® VTune™ プロファイラー

ようこそページに新規ユーザー向けの情報を追加▪ ドキュメントとトレーニングへのクイックアクセス

ビルトインのサンプルコード、事前収集済みの結果▪ チュートリアルを容易に利用可能

ツアーを用意▪ 重要なユーザー・インターフェイスのコントロールを素早く習得

コマンドライン・ヘルプを改良▪ 構造を改良、詳細を提供

Linux* - さらに多くの perf をサポート▪ インテルのドライバーをインストールできない場合に perf で結果を表示最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

53

短いパフォーマンス異常を診断

インテル® VTune™ プロファイラー - プロセッサー・トレース

2020
試験的
機能

統計メソッドを示唆する問題を特定▪ 外部割り込み▪ スキップされたビデオフレーム▪ 長いネットワーク・パケット処理▪ 長い金融取引
非常に細粒度の時間およびイベントデータ▪ すべての分岐をキャプチャー
▪ マイクロおよびナノ秒の粒度▪ 多くのデータを生成▪ 循環バッファーおよびマネージ収集のトリガー
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

54

Lustre* 並列ファイル I/O 解析
インテル® VTune™ プロファイラー

2020
試験的
機能

主要メトリックでアプリケーション・パフォーマンスに与える I/O の影響を測定▪ I/O 待機時間、I/O 帯域幅、パケットレート、パケットサイズ
平均メトリックのサマリー:

タイムライン: 時間でメトリックをフィルター(オプション)

詳細メトリック: 並列ファイルシステム共有で整理

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

55

インテル® Advisor で最新のソフトウェアを設計
ベクトル化の最適化、スレッドのプロトタイプ生成、フローグラフの作成と解析

機能
▪
▪
▪
▪
▪

ベクトル化とその最適化
メモリーパターン解析
迅速なスレッドのプロトタイプ生成
各ループのパフォーマンスのヘッドルームを示す
フローグラフを作成して解析バージョン 2020 の新機能 (一部のみ抜粋)▪ インテル® AVX-512 VNNI をサポート▪ 統合ルーフライン▪ ボトルネックを引き起こしているキャッシュレベルを正確に特定▪ ルーフライン・ガイダンス▪ ループ固有の実行可能な最適化を推奨

詳細: xlsoft.com/jp/products/intel/advisor/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

▪ ルーフラインの比較▪ 1 つのグラフに複数のルーフラインの結果を表示して最適化の進捗を追跡56

最新ハードウェア向けのコードを設計するツール
ベクトル化の最適化、スレッドのプロトタイプ生成、フローグラフの作成と解析

詳細: xlsoft.com/jp/products/intel/advisor/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

57

“自動” ベクトル化では不十分

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

コンパイラーは常にベクトル化するとは限らない▪ インテル® Advisor でループ伝播の依存性を確認▪ 依存性がない場合はベクトル化を強制し、プラグマ
simd (C++)、SIMD ディレクティブ (Fortran) を使用

すべてのベクトル化が効率的であるわけではない▪ ストライド 1 のほうがストライド 2 以上よりもキャッ
シュ効率が良い - インテル® Advisor を使用して解析▪ SIMD Data Layout Templates (英語) を利用してデータレイアウトの変更を検討

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

以前紹介したベンチマークはすべて “自動ベクトル化” したものではない。ベクトル化を強制し、さらなるパフォーマンスを引き出す
ため、コンパイラー・ディレクティブを使用している。
構造体配列はデータを直感的に整理するのには適しているが、配列構造体よりも効率が悪いため、
SIMD Data Layout Templates(英語) を利用してベクトル化に適した効率良いレイアウトに
データをマップする。

58

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

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

最も大きな利点が得られる個所をベクトル化
ベクトル化を妨げているものを素早く特定
効率良いベクトル化のためのヒント
安全にコンパイラーによるベクトル化を強制
メモリーストライドを最適化必要なデータとガイダンス▪ コンパイラー診断 + パフォーマンス・データ +SIMD 効率▪ 問題の検出と修正に関する推奨事項▪ ループ伝播の依存性解析▪ メモリー・アクセス・パターン解析

インテル® AVX-512 対応ハードウェアの有無に関係なくインテル® AVX-512 向けに最適化
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

xlsoft.com/jp/products/intel/advisor/59効率良い最適化手法を特定

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

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

▪ 次の最適化ステップを提案

ソフトウェア・アーキテクト、Nicolas Alferez 氏
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

60

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

インテル® Advisor のスレッドのプロトタイプ生成 - 開発を妨げることなく設計可能問題▪ アプリケーションをスレッド化してもパフォーマンスがそれほど向上しない▪ "スケーラビリティーの限界" に達したのか?
▪ 同期問題によりリリースを延期

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

複数の選択肢のプロトタイプを迅速に生成
大規模なシステムにおけるスケーリングを予測
スレッド化する前に同期問題を発見
開発を妨げることなく設計可能より少ない労力とリスクで、より大きな効果が得られる並列処理を実装

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

「インテル® Advisor により、並列化候補のプロトタイプを素早く生成し、開発者の時間と労力を節約することができました。」
Sandia National Laboratories
シニア・テクニカル・スタッフ
Simon Hammond 氏
61フローグラフをインタラクティブにビルド、検証、解析
インテル® Advisor - フローグラフ・アナライザー
フローグラフの設計および解析▪ コードスタブを視覚的に生成▪ 並列 C++ プログラムを生成▪ アルゴリズムのノードやエッジをクリックしてズームし、並列データとプログラムフローを理解▪ ロードバランス、コンカレンシー、その他の並列特性を解析し、プログラムを細かくチューニング
▪ インテル® TBB または OpenMP* 5 (ドラフト) OMPTAPI を使用最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

62

インテル® Inspector によるメモリーとスレッドのデバッグ

メモリーリーク、異常、データ競合、デッドロック、パーシステント・メモリー・エラーの特定とデバッグ
正当性検証ツールにより ROI が 12%-21%1 向上▪ 早期に問題を発見したほうが修正コストが少なくて済む▪ 競合やデッドロックは簡単に再現できない▪ メモリーエラーをツールなしで発見するのは困難

デバッガー・ブレークポイントにより迅速な診断が可能▪ 問題が発生する直前にブレークポイントを設定▪ デバッガーで変数とスレッドを確認

パーシステント・メモリー・エラーをデバッグ▪ 不足しているキャッシュフラッシュ、ストアフェンスなど
詳細: xlsoft.com/jp/products/intel/inspector/

バージョン 2020 の新機能
▪ 最新の OS および IDE をサポート

1 コスト要因 - Square Project による分析

CERT: U.S. Computer Emergency Readiness Team および Carnegie Mellon CyLabNIST: National Institute of Standards & Technology : Square Project の結果最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

63

ビルド

解析

スケール

インテル® C++ コンパイラー
インテル® Fortran コンパイラー
Python* 向けインテル® ディストリビューション
インテル® MKL
インテル® IPP
インテル® TBB
インテル® DAAL
Composer Edition に含まれる

インテル® VTune™ プロファイラー
インテル® Advisor
インテル® Inspector

インテル® MPI ライブラリー
インテル® Trace Analyzer & Collector
インテル® Cluster Checker

Professional Edition に含まれる

Cluster Edition に含まれる

インテル® MPI ライブラリーによる高速でスケーラブルなコード
インテル® MPI ライブラリー

分散コンピューティング向けの標準規格準拠の最適化された MPI ライブラリー▪

オープンソースの MPICH 実装をベースに開発▪

低レイテンシー、高帯域幅、高スケーラビリティー向けに
チューニング▪

柔軟な展開を可能にするマルチファブリック・サポート

バージョン 2020 の新機能

詳細: xlsoft.com/jp/products/intel/cluster/mpi/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

▪

Mellanox* InfiniBand* EDR/HDR インターコネクトのサポートを改善▪

AWS* Elastic Fabric Adapter (EFA)、Parallel Cluster、
Amazon* Linux* 2 によるクラウド HPC サポート▪

最新のインテル® Xeon® スケーラブル・プロセッサー向
けにパフォーマンスを最適化
65

インテル® MPI ライブラリーの概要
アプリケーション

最適化された MPI アプリケーション・パフォーマンス
▪
▪
▪
▪

CFD

アプリケーション固有のチューニング
自動チューニング
New! - インテル® Xeon Phi™ プロセッサー (開発コード名
Knights Landing) をサポート
New! – インテル® Omni-Path ファブリックをサポート

業界トップレベルのレイテンシー
OpenFabrics* インターフェイス (OFI) により、ファブリック向けに最適化されたパフォーマンスをサポート

高速な MPI 通信
▪

気候

OCD

BIO

その他...

1 つのファブリック向けにアプリケーションを開発

インテル® MPI ライブラリー
実行時にインターコネクト・ファブリックを選択

低レイテンシーおよび複数のベンダーとの互換性
▪
▪

クラッシュ

TCP/IP

Omni-Path

InfiniBand*

iWarp

共有
メモリー

…その他の
ネットワークファブリック
最適化された MPI パフォーマンス

最適化された集合操作
クラスター

持続性のあるスケーラビリティー (最大 34 万コアまで)▪

ネイティブ InfiniBand* インターフェイス・サポートにより、
低レイテンシー、高帯域幅、メモリー使用量の軽減を実現

安定性に優れた MPI アプリケーション▪

インテル® MPI ライブラリー – 1 つの MPI ライブラリー
で複数のファブリック向けの開発、保守、テストが可能

インテル® Trace Analyzer & Collector とシームレスに連携

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

66

インテル® Xeon® プロセッサー上でのアプリケーションのパフォーマンス

1.60

インテル® MPI ライブラリーの SPEC* MPI Medium ベンチマークのパフォーマンス
384 プロセッサー、8 ノード (Mellanox Technologies Family)、Linux* 64(数値が大きいほど高性能)

1.11
1
1.01
0.93

0.93
0.82

1.16
1

0.59

0.82

1.06
1

1.17
1
1.02
0.92

1.23
1
0.98
0.94

0.89

0.00

0.54

1.03
1

1.22
1
1.00
0.88

1.10

1.41
1
0.94

1.03
1

0.96

1

0.00

0.20

0.52

0.40

0.62

0.60

0.00

0.80

1.06
1
0.87
1.01

1.00

1.01
1
0.94
0.77

1.20
1.06
1
0.94

スピードアップ

1.40

0.00
インテル® C++
18.0.1
GCC 7.2.0
Clang 5.0
インテル® MPI ライブラリー 2019 Update 6

インテル® C++
18.0.1Clang 5.0 GCC 7.2.0
HPC-X* v2.5.0
MVAPICH2 2.3.2
OpenMPI 4.0.2

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は 2019 年 11 月 8 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成
情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 8 日時点のインテルによるテスト。システム構成: インテル® Xeon® Gold 6252 プロセッサー @ 2.10GHz、196GB RAM、インテル® ハイパースレッディング・テクノロジー無効。Mellanox Technologies MT28908
Family [ConnectX*-6]。MLNX_OFED_LINUX-4.6-1.0.1.1(OFED-4.6-1.0.1)。ソフトウェア: インテル® C/C++ コンパイラー 19.0.0、インテル® MKL 2016 Update 1。Linux* OS: Red Hat* Enterprise Linux* 8.0 (Ootpa)、カーネル
4.18.0-80.el8.x86_64。コンパイラー・オプション: -O3 -no-prec-div -xCORE-AVX512。アプリケーション: SPEC* MPI 2007 v2.0。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

67

インテル® Xeon® プロセッサー上でのアプリケーションのパフォーマンス
インテル® MPI ライブラリーの相対 (相乗平均) HPC アプリケーションのパフォーマンス
768 プロセッサー、16 ノード (Mellanox Technologies Family)(数値が大きいほど高性能)
1.60

1
0.71

0.40

0.95

1

1

1.09

1

1.00

0.98

1

0.66

0.60

0.81

1

0.95

0.80

1.01

1.00

1.04

1.20

1.02

1.40

1.40

0.20
0.00
Amber/
v18_native

GROMACS
HPCG/3.1
インテル®
C++(4 ワークロード)
18.0.1
GCC 7.2.0
Clang 5.0
インテル® MPI ライブラリー 2019 Update 6

LAMMPS
MILC
インテル®
C++
(5 ワークロード)(2 ワークロード)
18.0.1Clang 5.0 GCC 7.2.0
MVAPICH2 2.3.2
HPC-X* v2.5.0

VASP(6 ワークロード)インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は 2019 年 11 月 8 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成
情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 8 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8260L プロセッサー @ 2.40GHz、196GB RAM、インテル® ターボ・ブースト・テクノロジー無効、インテル® ハイパースレッディング・テクノロ
ジー無効。Mellanox Technologies MT27700 Family [ConnectX*-4]。MLNX_OFED_4.7-1.0.0.1-1062.4.1-2.10.8。ソフトウェア: インテル® C/C++ コンパイラー 19.0.3、インテル® MKL 2019 Update 1、Cmake 3.10.2、Net CDF
4.6.1。Linux* OS: CentOS* 7.7.1908 (Core)、カーネル 3.10.0-1062.4.1.el7.crt1.x86_64。コンパイラー・オプション: ‘-O3 -xCORE-AVX512’。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

68

インテル® Xeon® プロセッサー上でのアプリケーションのパフォーマンス
インテル® MPI ライブラリーの SPEC* MPI Large ベンチマークのパフォーマンス
768 プロセッサー、16 ノード (インテル® Omni-Path アーキテクチャー)、Linux* 64(数値が大きいほど高性能)
1.4

0.4

0.996
0.938
1

0.958
0.841
1

1.060
0.938
1

1.199
0.965
1

1.049
0.831
1

1.206
1.103
1

1

1.005
0.557

1.131
0.970
1

1

1.010

1

0.538

0.6

1.185
1.127
1

0.8

0.754

1.0

1.144
1.076
1

スピードアップ

1.2

0

0.2
0.0
Clang 5.0

GCC 7.2.0

インテル® C++
18.0.1

インテル® MPI ライブラリー 2019 Update 6

Clang 5.0

GCC 7.2.0

MVAPICH2 2.3.2

インテル® C++
18.0.1OpenMPI 4.0.1

インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。詳細については、http://www.intel.co.jp/ を参照するか、OEM または販売店にお問い合わせください。性能の測定結果は 2019 年 11 月 8 日時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成
情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。
SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
2019 年 11 月 8 日時点のインテルによるテスト。システム構成: インテル® Xeon® Platinum 8260L プロセッサー @ 2.40GHz、196GB RAM、インテル® ハイパースレッディング・テクノロジー無効。インテル® ターボ・ブースト・テクノロ
ジー有効。インテル® Omni-Path ホスト・ファブリック・インターフェイス (HFI) シリコン 100 シリーズ。IFS: 10.10.0.0.445_1062.4.1_2.10.8。ソフトウェア: インテル® C/C++ コンパイラー 19.0.5、インテル® MKL 2016 Update 1。
Linux* OS: CentOS* 7.7.1908 (Core)、カーネル 3.10.0-1062.4.1.el7.crt1.x86_64。コンパイラー・オプション: -O3 -no-prec-div -xCORE-AVX512。アプリケーション: SPEC* MPI 2007 v2.0。

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル®
ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。注意事項の改訂 #20110804

69

インテル® Trace Analyzer & Collector による MPI 解析
インテル® Trace Analyzer & Collector

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

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

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

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

バージョン 2020 の新機能
▪

問題の修正

▪

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

詳細: xlsoft.com/jp/products/intel/cluster/tatc/
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

70

MPI アプリケーションを効率良くプロファイル
インテル® Trace Analyzer & Collector
開発者を支援▪ 並列アプリケーションの動作を視覚化して確認▪ プロファイル統計とロードバランスを評価▪ 通信 hotspot を特定

機能▪ イベントベースのアプローチ▪ 低オーバーヘッド▪ 優れたスケーラビリティー▪ 強力な集合およびフィルター関数▪ イデアライザー▪ スケーラブル
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

71

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

バージョン 2019 Update 5 の新機能: 出力と機能により使いやすさと機能を向上▪ 実行速度の速い新しいデフォルトのテスト▪ 新しい事前定義済みユーザー/管理者固有のテストおよび詳細な解析▪ ノードと問題のサマリー出力を改良、ログファイルに詳細を出力▪ インテル® MPI ライブラリーの必要条件のトラブルシューティング・テスト▪ 最新のインテル® プロセッサーをサポート (インテル® Xeon® Platinum
9200 プロセッサー・ファミリー)▪ 管理者向け BIOS チェック機能、‘syscfg’ ユーティリティーを使用
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

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

事前定義済みチェックグループにより実行を単純化
高速基本チェック (デフォルト)
包括的なテスト、ベンチマーク

自動化されたテストと推奨により問題を修正•

事前または事後アプリケーション
実行•

トラブルシューティング•

単純化されたサポート•

デプロイメントおよび QA

個別のチェック、トラブルシューティング

インテル® Select ソリューションで検証インテル® Cluster Checker

テストのリストを組み合わせてチェックをカスタマイズ

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

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

インストールの検証

操作の検証

パフォーマンス
の検証

評価

評価

評価

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

正しい操作を確認

パフォーマンスを確認

設定

設定

設定

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

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

確立

確認

確認

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

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

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

インテル® Cluster Checker
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

74

並列ハードウェアでパフォーマンスを最適化
インテル® Parallel Studio XE - 繰り返し作業
クラスター
でスケーリ
ングできる
か?

N

MPI
チューニングY

ベクトル化

クラスターでない
場合はスキップY

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

N

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

N

Y
スレッド化

システム構成の問題の可能性メモリー帯域幅に影響されるか?

Y

帯域幅の
最適化

インテル® Cluster Checker76

診断を支援するパフォーマンス解析ツール

インテル® VTune™ プロファイラーのアプリケーション・パフォーマンス・スナップショット

インテル® Parallel Studio XE

最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

クラスター
でスケーリ
ングできる
か?

N

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

Y

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

Y

ベクトル化

N

N

Y
帯域幅の
最適化

スレッド化

インテル® VTune™
プロファイラー

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

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

N

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

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

Y

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

ベクトル化

N

Y
帯域幅の
最適化

スレッド化

システム構成の問題の可能性
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

Y

N

インテル® MKL
インテル® IPP
(メディアおよびデータ・ライブラリー)
インテル® DAAL
インテルによる OpenMP* 実装

インテル® TBB
(スレッド・ライブラリー)
インテル® Cluster Checker

78

プライオリティー・サポートの利用
インテル® ソフトウェア開発ツールの有償ライセンスには購入日から 1 年間のプライオリティー・
サポートが含まれており、満了時に割引価格で更新可能

利点▪ パフォーマンスと生産性を向上 - インテル® ハードウェアでコードのパフォーマンスを最大限に引き出す方法、パフォーマンス・ボトル
ネックや開発の課題を解消する方法などを問い合わせ可能▪ インテルのエンジニアに直接問い合わせることができ、機密の問い合わせやコードサンプルを送信可能▪ 技術的な質問やその他の製品ニーズに対するヘルプ▪ 製品の新しいアップデートおよび以前のバージョンへの無料アクセス
関連情報▪ ほかのエキスパートと知識を共有できるコミュニティー製品フォーラム▪ 過去数十年のハイパフォーマンス・コード作成の経験を基に構築されたドキュメント・ライブラリー
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

80

最適化に役立つ情報
インテル® Parallel Studio XE

最適化の近道登録 (英語)TEC ウェビナーを視聴する▪ 概要、機能、サポート、コードサンプル (英語)▪ トレーニング資料、Tech.Decoded ウェビナー (英語)、HOW TO ビデオと記事 (英語)
▪ お客様の声 (英語) & ケーススタディー▪ その他のインテル® ソフトウェア開発製品

インテル® Code Modernization Program▪ 概要 (英語)▪ ライブ・トレーニング (英語)▪ リモートアクセス
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

https://intel.ly/2PdkNhN (英語)81

法務上の注意書きと最適化に関する注意事項
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark*などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。さ
らに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。
性能の測定結果はシステム構成の日付時点のテストに基づいています。また、現在公開中のすべてのセキュリティー・アップデートが適用されているとは限りません。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。
インテルは、サードパーティーのデータについて管理や監査を行っていません。原典を確認し、ほかの情報も参考にして、参照しているデータが正確かどうかを確認してください。
インテル® テクノロジーの機能と利点はシステム構成によって異なり、対応するハードウェアやソフトウェア、またはサービスの有効化が必要となる場合があります。実際の性能はシステム構成によって異なります。絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。詳細については、各システムメーカーまたは販売店にお問い合わせいただくか、http://www.intel.co.jp/ を参照してください。
インテルは、明示されているか否かにかかわらず、いかなる保証もいたしません。ここにいう保証には、商品適格性、特定目的への適合性、および非侵害性の黙示の保証、ならびに履行の過程、取引の過程、または取引での使用から生じるあらゆる保証を含みますが、これらに限定されるわけではありません。
Intel、インテル、Intel ロゴ、Intel Inside、Intel Inside ロゴ、Intel Atom、Intel Core、Pentium、Xeon、Intel Xeon Phi、Intel Optane、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation またはその子会社の商標です。
最適化に関する注意事項
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。
これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロ
セッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。
注意事項の改訂 #20110804
最適化に関する注意事項© 2020 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

82