More Related Content Similar to HPCフォーラム2015 B-2 LS-DYNAパフォーマンス研究 Yih-Yih Lin Ph.D (20) More from 日本ヒューレット・パッカード株式会社 (11) HPCフォーラム2015 B-2 LS-DYNAパフォーマンス研究 Yih-Yih Lin Ph.D1. © Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
HPC フォーラム 2015
テクニカルコンピューティング最前線 ~HP-CAST Japan ~
LS-DYNAのパフォーマンス研究
25年の活動と知見
2015年4月24日
Yih - Yih Lin
Hewlett Packard Company
2. © Copyright 2015 Hewlett-Packard Development Company, L.P.2
HPC分野における私の25年の経験
• 1982年にコンピューターサイエンスのPhDを取得 (学位論文『自由表面問題を解析するための有限要
素法プログラムの実装』)
• 1982~1986年にかけて、油井検層ツールからの電磁波伝搬をモデル化する有限要素法プログラムを
実装
• 1986~1994年にかけてのHPCの黎明期に、ボストンにて複数の「スーパーコンピューター」企業に
勤務し、各企業が開発した並列マシンについて、アプリケーションの最適化およびベンチマークの
測定を担当
• 1994年から現在までHPに勤務
− アプリケーション開発者と緊密に連携して、HP HPCハードウェア/ソフトウェア上でのアプリケー
ションの最適化とベンチマークの測定を担当
− LS-DYNA
• SMP LS-DYNAへのOpenMP並列機能の実装とデバッグを支援
• MPP LS-DYNAへのHP-MPIの組み込みとデバッグを支援
• Hybrid LS-DYNAのパフォーマンスに関する初の調査報告書を発行
3. © Copyright 2015 Hewlett-Packard Development Company, L.P.3
HP HPC Application Expertiseグループ
• あらゆる主要なアプリケーションのベンチマークを測定し、それらのアプリケーションの開発者を
支援。アプリケーションごとに1人の担当エキスパートが存在
− CAE分野の例
• ABAQUS
• ANSYS
• LS-DYNA: 私自身が担当エキスパート
− 生命/物質科学分野の例
• Accelrys社のMaterials Studio (CASTEPを含む)
• Gaussian: 私自身が担当エキスパート
• NAMD
• お客様の (科学/技術/工学) アプリケーションのベンチマークを測定
• より大きな価値をお客様に提供するためにHPパートナー (インテル社、NVIDIA社、メラノックス社、
およびDDN社) と連携
4. © Copyright 2015 Hewlett-Packard Development Company, L.P.4
LS-DYNAの概要
実環境で広く活用されている並列アプリケーション - 衝突シミュレーションで
有名
• 3種類の並列処理パラダイムで実装される有限要素法プログラムで、それぞれに単精度版および倍精
度版の2つの異なる実行可能ファイルが存在する
− 共有メモリ型並列処理 (SMP)
− 分散メモリ型並列処理 (DMP)
− 両者のハイブリッド
• 同一実行可能ファイル内に陽解法解析と陰解法解析が実装されている
• 先進的なマルチプロセッサー/マルチコアアーキテクチャーを最大限に活用
• LS-DYNAのパフォーマンス問題を理解することは、他の並列アプリケーションのパフォーマンス問題
を理解するうえで役立つ
5. © Copyright 2015 Hewlett-Packard Development Company, L.P.5
LS-DYNAの概要 (続き)
SMP LS-DYNA (最初のリリースは1988年頃)
• 拡張性はマルチスレッドインターフェイスであるOpenMPによって実現されており、単一の共有メモ
リシステム内の約8コア (CPU) に制約される
• MPP (DMP) LS-DYNAおよびHybrid LS-DYNAのビルディングブロックであり、SMP LS-DYNAのパフォーマ
ンスに影響を及ぼすファクターは、MPP/Hybrid LS-DYNAにも影響を及ぼす
• パフォーマンスは計算負荷によってのみ決定される
− 問題: 問題の規模、要素数、接触数など
− プロセッサー周波数: 高い方が望ましい
• ターボ・ブーストによりパフォーマンスを向上可能
− ベクトル演算速度: コードは (他のあらゆる有限要素法コードと同様に) 間接アドレスベクトルに対
する多数の演算を実行
• AVXによりパフォーマンスを向上可能
6. © Copyright 2015 Hewlett-Packard Development Company, L.P.6
LS-DYNAの概要 (続き)
MPP LS-DYNA (最初のリリースは1994年頃)
• 領域分割法
− 最初に1つの問題を複数の小さい問題 (サブ領域) に分割し、各サブ領域をシリアル (1コア) SMP LS-
DYNAで計算したうえで、すべてのサブ領域の計算結果をMPI (Message Passing Interface) で同期する
ことにより、問題全体の計算結果を得る
− 個々のシリアルSMP LS-DYNAによる計算はMPIプロセス (「ランク」とも呼ばれる) で、1つのジョブ
のためのコア数は次のとおり
コア数 = ノードあたりのランク数 × ノード数
− MPIにより複数ノードにわたるサブ領域の分散が可能になることで、拡張性が実現される
− パフォーマンスは計算負荷に加えて、以下に依存する通信負荷によって決定される
問題の規模
ランクの数: メッセージの数とトータルサイズは、ランク (サブ領域) の数とともに増大する
相互接続
ワークロードバランス
• 最も広く使用されているバージョン
7. © Copyright 2015 Hewlett-Packard Development Company, L.P.7
LS-DYNAの概要 (続き)
Hybrid LS-DYNA (最初のリリースは2008年頃)
• SMP LS-DYNAとMPP LS-DYNAを組み合わせた手法
− 各サブ領域はマルチスレッド化されたSMP LS-DYNAにより計算され、1つのジョブのためのコア数
は次のとおり
コア数 = ランクあたりのスレッド数 × ノードあたりのランク数 × ノード数
• プロセスの配置 (ランクあたりのスレッド数) がパフォーマンスに影響を及ぼす
• 問題とコア数について
• ランク数はスレッド数に反比例する。そのためHybrid LS-DYNAは、純粋なMPI MPP LS-DYNAに比べ
て常に通信負荷が低く、その結果として高い通信負荷に伴うパフォーマンス問題の解決に役立つ
• さらにノードあたりのメモリ要件は、スレッド数にほぼ比例して減少するため、陽解法解析に比
べてはるかに多くのメモリを必要とする陰解法解析で、とりわけ大きな効果を発揮する
• 利用者数が増大している
8. © Copyright 2015 Hewlett-Packard Development Company, L.P.8
プロセッサー E5-2690 v3 E5-2697 v3 E5-2698 v3
コア数 12 14 16
定格周波数 2.6GHz 2.6GHz 2.3GHz
最大ターボ周波数 3.5GHz 3.6GHz 3.6GHz
インテル Xeon E5-2600 v3製品ファミリを搭載した
3種類のHPサーバーシステム
HP ProLiantサーバー サーバーあたりのインテル
Xeonプロセッサー数
サーバーあたり
のコア数
XL230a E5-2690 v3プロセッサー×2 24
BL460c E5-2697 v3プロセッサー×2 28
XL230a E5-2698 v3プロセッサー×2 32
9. © Copyright 2015 Hewlett-Packard Development Company, L.P.9
ソフトウェアとベンチマークについての注記
• LS-DYNAバージョン: R7.1.2、単精度版、MPP (特に記載がない限り)
• OS: RHEL 6.5
• MPI: Platform MPI 9.1 (特に記載がない限り)
• 相互接続: InfiniBand FDR (特に記載がない限り)
• すべてのジョブを共有された相互接続内で実行
• パフォーマンス ∝ 1/経過時間: 経過時間が低い方が望ましい
• 後続のグラフではサーバーを示すためにプロセッサー名を使用している (例: E5-2698 v3は、E5-2698 v3プ
ロセッサーを搭載するXL230aシステムを指す)
• ノード内のすべてのコアがフル搭載された状態: 後続のグラフ内のラベル「NnCc」は、N個のノード、C個
の総コア数でジョブが実行されたことを示す
• 後続のグラフ内のラベル「RrTt」は、Hybrid LS-DYNAジョブ内で「R個のランク、T個のスレッド」が使用
されていることを示す
• y軸方向のスケーリングについてのグラフ内で高速化が「ゼロ」のケースは、ジョブが失敗したことを示
す
• 選定したCar2car問題の結果を次のサイトに公開: http://www.topcrunch.org
10. © Copyright 2015 Hewlett-Packard Development Company, L.P.10
問題 シェル要素数 (単
位100万)
ソリッド要素数
(単位100万)
経過時間 (時)
Car2car 2.4 0.03 2.9
Crash A 6 1 4.5
Crash B 4 1 6.0
Crash C 6 3 8.2
最新のHP ProLiantクラスター上での3ノードLS-DYNAの
パフォーマンス
• すべての問題について120ミリ秒までシミュレーションを実行
• 2006年の時点では、car2carの実行に4台のHP DL140サーバー (それぞれ
4コアXeon 5160プロセッサー×2を搭載) 上で30時間を要した
• Car2car : 入力ファイルを次のサイトからダウンロード可能
http://www.topcrunch.org
HPサーバー ProLiant XL
230a Gen9
プロセッサー
インテル
Xeon E5-2698
v3
定格周波数 2.3GHz
最大ターボ周波数 3.6GHz
ノードあたりのプロ
セッサー数
2
相互接続 InfiniBand FDR
LS-DYNAバージョン
MPP R7.1.2
AVX2、SP
ターボモード 有効化
11. © Copyright 2015 Hewlett-Packard Development Company, L.P.11
1.00 1.06 1.06
0.00
0.20
0.40
0.60
0.80
1.00
1.20
0.00
1.00
2.00
3.00
4.00
5.00
E5-2690 v3 E5-2697 v3 E5-2698 v3
Elapsed Time (h) Relative Performance
HP ProLiantクラスターのパフォーマンス比較
問題: Car2car ノード数: 3
12. © Copyright 2015 Hewlett-Packard Development Company, L.P.12
1.00 1.05 1.04
0.00
0.20
0.40
0.60
0.80
1.00
1.20
0.00
1.00
2.00
3.00
4.00
5.00
E5-2690 v3 E5-2697 v3 E5-2698 v3
Elapsed Time (h) Relative Performance
HP ProLiantクラスターのパフォーマンス比較 (続き)
問題: Crash A ノード数: 3
13. © Copyright 2015 Hewlett-Packard Development Company, L.P.13
1.00
1.89
2.62
3.44 6.25
9.34
13.02
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
0.0
1.0
2.0
3.0
4.0
5.0
1n/32c 2n/64c 3n/96c 4n/128c 8n/256c 16n/512c 32n/1024c
Elapsed Time (h) Scalability
MPP LS-DYNAの拡張性
問題: Car2car サーバー: E5-2698 v3
14. © Copyright 2015 Hewlett-Packard Development Company, L.P.14
1.00
1.80
2.48 3.10 4.23
8.66 12.23
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
0.0
1.0
2.0
3.0
4.0
5.0
1n/32c 2n/64c 3n/96c 4n/128c 8n/256c 16n/512c 32n/1024c
Elapsed Time (h) Scalability
MPP LS-DYNAの拡張性 (続き)
問題: Crash A サーバー: E5-2698 v3
15. © Copyright 2015 Hewlett-Packard Development Company, L.P.15
ターボ・ブースト
• インテル社が開発した、プロセッサーコアを定格周波数よりも高速に動作させるテクノロジー。周
波数の上昇度は、コアのワークロードおよび以下に示す運用環境に応じて動的に制御される
• アクティブコアの数
• 推定消費電流
• 推定消費電力
• プロセッサーの温度
• そのためパフォーマンスは、個々の問題、アプリケーション、サイト、時間などの諸条件により変
動する
16. © Copyright 2015 Hewlett-Packard Development Company, L.P.16
1.06 1.07 1.09 1.08 1.10 1.08
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1n/32c 2n/64c 8n/256c 16n/512c 32n/1024c average
ターボ・ブーストによる高速化
問題: Car2car サーバー: E5-2698 v3
17. © Copyright 2015 Hewlett-Packard Development Company, L.P.17
Advanced Vector Extensions (AVX)
• AVXはx86命令セットアーキテクチャーに対する拡張で、ベクトル演算速度の向上を目的とする。イ
ンテル社による初の実装は、2008年のSandy Bridgeプロセッサー
• AVX2はFMA (Fused Multiple-Add) 演算を追加することで、ベクトル演算の速度をより一層向上する。
インテル社による初の実装は、2014年のHaswellプロセッサー
• LS-DYNAはベクトル演算を多用するプログラムであるため、AVXおよびAVX2によりメリットを得られ
る
• LS-DYNAは、バージョンR7.1.2からAVX2のサポートを開始
18. © Copyright 2015 Hewlett-Packard Development Company, L.P.18
1.13 1.14 1.14 1.13 1.11 1.11 1.13
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1n/32c 2n/64c 4n/128c 8n/256c 16c/512c 32c/1024c average
AVX2による高速化
問題: Car2car サーバー: E5-2698 v3
19. © Copyright 2015 Hewlett-Packard Development Company, L.P.19
1.18 1.17 1.17 1.20 1.15 1.19 1.18
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1n/32c 2n/64c 4n/128c 8n/256c 16n/512c 32n/1024c average
ターボ・ブースト + AVX2による高速化
問題: Car2car サーバー: E5-2698 v3
20. © Copyright 2015 Hewlett-Packard Development Company, L.P.20
1.00 1.00 1.01
0.0
0.2
0.4
0.6
0.8
1.0
1.2
4n/128c 8n/256c 16n/512c
ハイパースレッディングによる高速化
問題: Car2car サーバー: E5-2698 v3
21. © Copyright 2015 Hewlett-Packard Development Company, L.P.21
Car2car問題のための特殊な分割
• MPP LS-DYNAのデフォルトの分割手法は、RCB (Recursive
Coordinate Bisection)
• Car2car問題における大多数の接触は、2台の車のフロント部分同
士で発生する。ワークロードバランスのためには、y軸方向 (車
体の幅) を優先した高い領域密度 (長さあたりのグリッド数) によ
る分割が望ましい
• RCBは最長寸法、すなわちx軸方向 (車体の長さ) を優先する傾向
にあり、より望ましい負荷分散された分割を提供できない
• MPP LS-DYNAのpfile内の分割 { sy t } 仕様は、領域密度をy軸方向
にt 単位で拡張する。ユーザーはtの値を変えながら、パフォーマ
ンスの向上に向けて、適切に負荷分散された分割方法を探るこ
とができる
22. © Copyright 2015 Hewlett-Packard Development Company, L.P.22
1.00
1.14 1.06
0.00 0.00
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
none sy 2 sy 100 sy 500 sy 1000
1n/24c 2n/48c 4n/96c 8n/192c 16n/384c
問題: Car2car サーバー: E5-2690 v3
分割におけるy軸方向のスケーリングによる高速化
(スケーリングなしの場合と比較)
23. © Copyright 2015 Hewlett-Packard Development Company, L.P.23
1.00
1.10 1.02
0.00 0.00
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
none sy 2 sy 100 sy 500 sy 1000
1n/28c 2n/56c 4n/112c 8n/224c 16n/448c
問題: Car2car サーバー: E5-2697 v3
分割におけるy軸方向のスケーリングによる高速化
(スケーリングなしの場合と比較) (続き)
24. © Copyright 2015 Hewlett-Packard Development Company, L.P.24
1.00
1.10 1.03 1.10
0.00
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
none sy 2 sy 100 sy 500 sy 1000
1n/32c 2n/64c 4n/128c 8n/256c 16n/512c
問題: Car2car サーバー: E5-2698 v3
分割におけるy軸方向のスケーリングによる高速化
(スケーリングなしの場合と比較) (続き)
25. © Copyright 2015 Hewlett-Packard Development Company, L.P.25
特殊な分割についての注記
• デフォルトのRCBから負荷分散を改善するためには、試行を繰り返すしかない
• 試行回数を減らすためには、計算負荷の高い部分を特定し、それらの部分に対して高い領域密度が適
用される可能性が最も大きい特殊な分割手法を選択するとよい
• 一般的には、特殊な分割手法が数値結果に影響を及ぼすことはない。ただし、特殊な分割手法により
過度に1方向に細長いメッシュが生成されて、ジョブが失敗する可能性もある ({ sy 1000} で実行するな
ど)
26. © Copyright 2015 Hewlett-Packard Development Company, L.P.26
相互接続
相互接続 レイテンシ
(μs)
帯域幅 (Mb/秒)
10gE 12 1112
40gE 2 4334
InfiniBand FDR 2 5803
デュアルレー
ルIB FDR
2 11901
27. © Copyright 2015 Hewlett-Packard Development Company, L.P.27
1.00 1.00 1.00 1.00 1.00
0.99 1.00 1.00 1.00 1.00
0.99 0.98 0.97 0.95
0.72
1.00 0.98 0.97 0.86
0.69
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
2n/56c 3n/84c 4n/112c 8n/224c 16n/448c
IB FDR Dual IB FDR 40 Gb 10 Gb
問題: Crash A サーバー: E5-2697 v3
相互接続のパフォーマンス比較
28. © Copyright 2015 Hewlett-Packard Development Company, L.P.28
0.90
1.02
1.16
1.43
0.0
0.5
1.0
1.5
2.0
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
8n/256c 16n/512c 32n/1024c 48n/1536c
ElapsedTime(h)
MPP E. T. Hybrid E. T. Relative Perf. (MPP = 1)
問題: Crash A サーバー: E5-2697 v3
HybridとMPPのパフォーマンス比較
29. © Copyright 2015 Hewlett-Packard Development Company, L.P.29
1.15 1.15
1.12
1.14
1.1
1.1
1.1
1.1
1.1
1.2
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
8n/256c 16n/512c 32n/1024c 48n/1536c
ElapsedTime(h)
4r8t 8r4t Relative Perf. (4r8t= 1)
問題: Crash A サーバー: E5-2698 v3
異なるプロセス配置 (4r8tおよび8r4t) についての
Hybrid LS-DYNAのパフォーマンス比較
30. © Copyright 2015 Hewlett-Packard Development Company, L.P.30
1.00 1.00 1.00 1.00
1.01 0.99 0.96 0.84
1.02 1.00 1.01 1.01
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
3n/96c 4n/128c 8n/256c 16n/512c
RelativePerformance
Open MPI(=1) Intel MPI Platform MPI
問題: Crash A サーバー: E5-2698 v3
MPIのパフォーマンス比較