hpcフォーラム2015 b-2 ls-dynaパフォーマンス研究 yih-yih lin ph.d
TRANSCRIPT
© 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
© 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 のパフォーマンスに関する初の調査報告書を発行
© 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 社 ) と連携
© Copyright 2015 Hewlett-Packard Development Company, L.P. 4
LS-DYNA の概要
実環境で広く活用されている並列アプリケーション - 衝突シミュレーションで有名 • 3 種類の並列処理パラダイムで実装される有限要素法プログラムで、それぞれに単精度版および倍
精度版の 2 つの異なる実行可能ファイルが存在する− 共有メモリ型並列処理 (SMP)− 分散メモリ型並列処理 (DMP)− 両者のハイブリッド
• 同一実行可能ファイル内に陽解法解析と陰解法解析が実装されている• 先進的なマルチプロセッサー / マルチコアアーキテクチャーを最大限に活用• LS-DYNA のパフォーマンス問題を理解することは、他の並列アプリケーションのパフォーマンス問
題を理解するうえで役立つ
© 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 によりパフォーマンスを向上可能
© 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 により複数ノードにわたるサブ領域の分散が可能になることで、拡張性が実現される− パフォーマンスは計算負荷に加えて、以下に依存する通信負荷によって決定される
問題の規模ランクの数 : メッセージの数とトータルサイズは、ランク ( サブ領域 ) の数とともに増大する相互接続ワークロードバランス
• 最も広く使用されているバージョン
© 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
に比べて常に通信負荷が低く、その結果として高い通信負荷に伴うパフォーマンス問題の解決に役立つ
• さらにノードあたりのメモリ要件は、スレッド数にほぼ比例して減少するため、陽解法解析に比べてはるかに多くのメモリを必要とする陰解法解析で、とりわけ大きな効果を発揮する
• 利用者数が増大している
© 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
© 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
© 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
ターボモード 有効化
© Copyright 2015 Hewlett-Packard Development Company, L.P. 11
E5-2690 v3 E5-2697 v3 E5-2698 v30.00
1.00
2.00
3.00
4.00
5.00
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.00 1.06 1.06
Elapsed Time (h)
HP ProLiant クラスターのパフォーマンス比較
問題 : Car2car ノード数 : 3
© Copyright 2015 Hewlett-Packard Development Company, L.P. 12
E5-2690 v3 E5-2697 v3 E5-2698 v30.00
1.00
2.00
3.00
4.00
5.00
0.00
0.20
0.40
0.60
0.80
1.00
1.201.00 1.05 1.04
Elapsed Time (h)
HP ProLiant クラスターのパフォーマンス比較 ( 続き )
問題 : Crash A ノード数 : 3
© Copyright 2015 Hewlett-Packard Development Company, L.P. 13
1n/32c 2n/64c 3n/96c 4n/128c 8n/256c 16n/512c 32n/1024c
0.0
1.0
2.0
3.0
4.0
5.0
0.02.04.06.08.010.012.014.0
1.001.89
2.623.44 6.25
9.3413.02
Elapsed Time (h) Scalability
MPP LS-DYNA の拡張性 問題 : Car2car サーバー : E5-2698 v3
© Copyright 2015 Hewlett-Packard Development Company, L.P. 14
1n/32c 2n/64c 3n/96c 4n/128c 8n/256c 16n/512c 32n/1024c0.0
1.0
2.0
3.0
4.0
5.0
0.02.04.06.08.010.012.014.0
1.001.80 2.48 3.10 4.23
8.66 12.23
MPP LS-DYNA の拡張性 ( 続き )
問題 : Crash A サーバー : E5-2698 v3
© Copyright 2015 Hewlett-Packard Development Company, L.P. 15
ターボ・ブースト
• インテル社が開発した、プロセッサーコアを定格周波数よりも高速に動作させるテクノロジー。周波数の上昇度は、コアのワークロードおよび以下に示す運用環境に応じて動的に制御される• アクティブコアの数• 推定消費電流• 推定消費電力• プロセッサーの温度
• そのためパフォーマンスは、個々の問題、アプリケーション、サイト、時間などの諸条件により変動する
© Copyright 2015 Hewlett-Packard Development Company, L.P. 16
1n/32c 2n/64c 8n/256c 16n/512c 32n/1024c average0.0
0.2
0.4
0.6
0.8
1.0
1.2 1.06 1.07 1.09 1.08 1.1 1.08
ターボ・ブーストによる高速化
問題 : Car2car サーバー : E5-2698 v3
© 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 のサポートを開始
© Copyright 2015 Hewlett-Packard Development Company, L.P. 18
1n/32c 2n/64c 4n/128c 8n/256c 16c/512c 32c/1024c average0.0
0.2
0.4
0.6
0.8
1.0
1.2 1.13 1.14 1.14 1.13 1.11 1.11 1.13
AVX2 による高速化 問題 : Car2car サーバー : E5-2698 v3
© Copyright 2015 Hewlett-Packard Development Company, L.P. 19
1n/32c 2n/64c 4n/128c 8n/256c 16n/512c 32n/1024c average0.0
0.2
0.4
0.6
0.8
1.0
1.2 1.18 1.17 1.17 1.20 1.15 1.19 1.18
ターボ・ブースト + AVX2 による高速化 問題 : Car2car サーバー : E5-2698 v3
© Copyright 2015 Hewlett-Packard Development Company, L.P. 20
4n/128c 8n/256c 16n/512c0.0
0.2
0.4
0.6
0.8
1.0
1.21.00 1.00 1.01
ハイパースレッディングによる高速化
問題 : Car2car サーバー : E5-2698 v3
© 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 の値を変えながら、パフォーマンスの向上に向けて、適切に負荷分散された分割方法を探ることができる
© Copyright 2015 Hewlett-Packard Development Company, L.P. 22
none sy 2 sy 100 sy 500 sy 10000.00.20.40.60.81.01.21.41.6
1.001.14 1.06
0.00 0.00
1n/24c 2n/48c 4n/96c 8n/192c 16n/384c
問題 : Car2car サーバー : E5-2690 v3
分割における y 軸方向のスケーリングによる高速化 ( スケーリングなしの場合と比較 )
© Copyright 2015 Hewlett-Packard Development Company, L.P. 23
none sy 2 sy 100 sy 500 sy 10000.00.20.40.60.81.01.21.41.6
1.00 1.10 1.02
0.000.00
1n/28c 2n/56c 4n/112c 8n/224c 16n/448c
問題 : Car2car サーバー : E5-2697 v3
分割における y 軸方向のスケーリングによる高速化 ( スケーリングなしの場合と比較 ) ( 続き )
© Copyright 2015 Hewlett-Packard Development Company, L.P. 24
none sy 2 sy 100 sy 500 sy 10000.00.20.40.60.81.01.21.41.6
1.00 1.10 1.03 1.10
0.00
1n/32c 2n/64c 4n/128c 8n/256c 16n/512c
問題 : Car2car サーバー : E5-2698 v3
分割における y 軸方向のスケーリングによる高速化 ( スケーリングなしの場合と比較 ) ( 続き )
© Copyright 2015 Hewlett-Packard Development Company, L.P. 25
特殊な分割についての注記
• デフォルトの RCB から負荷分散を改善するためには、試行を繰り返すしかない• 試行回数を減らすためには、計算負荷の高い部分を特定し、それらの部分に対して高い領域密度が適
用される可能性が最も大きい特殊な分割手法を選択するとよい• 一般的には、特殊な分割手法が数値結果に影響を及ぼすことはない。ただし、特殊な分割手法により過度に 1 方向に細長いメッシュが生成されて、ジョブが失敗する可能性もある ({ sy 1000} で実行するなど )
© 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
© Copyright 2015 Hewlett-Packard Development Company, L.P. 27
2n/56c 3n/84c 4n/112c 8n/224c 16n/448c0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
1.00 1.00 1.00 1.00 1.000.99 1.00 1.00 1.00 1.00
0.99 0.98 0.97 0.950.72
1.00 0.98 0.97 0.860.69
IB FDR Dual IB FDR 40 Gb 10 Gb
問題 : Crash A サーバー : E5-2697 v3
相互接続のパフォーマンス比較
© Copyright 2015 Hewlett-Packard Development Company, L.P. 28
8n/256c 16n/512c 32n/1024c 48n/1536c0.00.20.40.60.81.01.21.41.6
0.0
0.5
1.0
1.5
2.0
0.90 1.021.16
1.43
MPP E. T. Hybrid E. T.Relative Perf. (MPP = 1)
Ela
psed
Tim
e (
h)
問題 : Crash A サーバー : E5-2697 v3
Hybrid と MPP のパフォーマンス比較
© Copyright 2015 Hewlett-Packard Development Company, L.P. 29
8n/256c 16n/512c 32n/1024c 48n/1536c0.00.20.40.60.81.01.21.41.6
1.1
1.21.15 1.15
1.12
1.14
4r8t 8r4tRelative Perf. (4r8t= 1)
Ela
psed
Tim
e (
h)
問題 : Crash A サーバー : E5-2698 v3
異なるプロセス配置 (4r8t および 8r4t) についての Hybrid LS-DYNA のパフォーマンス比較
© Copyright 2015 Hewlett-Packard Development Company, L.P. 30
3n/96c 4n/128c 8n/256c 16n/512c0.00.20.40.60.81.01.21.41.6
1.00 1.00 1.00 1.001.01 0.99 0.96 0.84
1.02 1.00 1.01 1.01
Open MPI(=1) Intel MPI Platform MPI
Rela
tive P
er-
form
an
ce
問題 : Crash A サーバー : E5-2698 v3
MPI のパフォーマンス比較