Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
RIKEN	
  ADVANCED	
  INSTITUTE	
  FOR	
  COMPUTATIONAL	
  SCIENCE
第4回  
アプリケーションの性能最適化の実例1
2014年5月8日



独立行政法人理化学研究所

計算科学研究機構�運用技術部門

ソフトウェア技術チーム�チームヘッド



南�一生

minami_kaz@riken.jp
CMSI計算科学技術特論B
講義の概要
スーパーコンピュータとアプリケーションの性能  
アプリケーションの性能最適化1(高並列性能最適化)  
• アプリケーションの性能最適化2(高並列性能最適化)  
アプリケーションの性能最適化の実例1  
• アプリケーションの性能最適化の実例2
22014年5月8日 CMSI計算科学技術特論B 
内容
!
理研で進めた性能最適化  
RSDFTの性能最適化  
PHASEの性能最適化  
3
本資料は,理化学研究所AICS運用技術部門ソフトウェア技術チーム,
長谷川幸弘氏, 黒田明義氏の発表データを使用して作成しています.
2014年5月8日 CMSI計算科学技術特論B 
4
理研で進めた性能最適化
2014年5月8日 CMSI計算科学技術特論B 
5
プログラム名 分野 アプリケーション概要 期待される成果 手法
NICAM 地球
科学
全球雲解像大気大循環
モデル
大気大循環のエンジンとなる熱帯積雲対流活動を精
緻に表現することでシミュレーションを飛躍的に進化さ
せ,現時点では再現が難しい大気現象の解明が可能
となる.(開発 東京大学,JAMSTEC,RIKEN AICS)
FDM
(大気)
Seism3D 地球
科学
地震波伝播・強震動
シミュレーション
既存の計算機では不可能な短い周期の地震波動の解
析・予測が可能となり,木造建築およびコンクリート構
造物の耐震評価などに応用できる.(開発 東京大学
地震研究所)
FDM
(波動)
PHASE ナノ 平面波展開第一原理
電子状態解析
第一原理計算により,ポスト35nm世代ナノデバイス,
非シリコン系デバイスの探索を行う.(開発 物質・材料
研究機構)
平面波
DFT
FrontFlow/Blue 工学 Large Eddy Simulation
(LES)に基づく非定常流
体解析
LES解析により,エンジニアリング上重要な乱流境界
層の挙動予測を含めた高精度な流れの予測が実現で
きる.(開発 東京大学生産技術研究所)
FEM
(流体)
RSDFT ナノ 実空間第一原理電子状
態解析
大規模第一原理計算により,10nm以下の基本ナノ素
子(量子細線,分子,電極,ゲート,基盤など)の特性解
析およびデバイス開発を行う.(開発 東京大学)
実空間
DFT
LatticeQCD 物理 格子QCDシミュレーショ
ンによる素粒子・原子核
研究
モンテカルロ法およびCG法により,物質と宇宙の起源
を解明する.(開発 筑波大)
QCD
理研で進めた性能最適化
6本のターゲットアプリ
2014年5月8日 CMSI計算科学技術特論B 
6
理研で進めた性能最適化
コラボレーション
2014年5月8日 CMSI計算科学技術特論B 
東京大学,JAMSTEC
東京大学地震研究所
物質・材料研究機構
東京大学生産技術研究所
筑波大 RIKEN AICS
7
7
easy
difficult
PHASE
Parallelization
difficult
Parallel Performance
NICAM
Seism3D
FFB
Lattice
QCD
High
Low
HighLow
AProcessorPerformance
Parallel Performance
RSDFT
理研で進めた性能最適化
6本のターゲットアプリの計算機科学的な位置づけ
2014年5月8日 CMSI計算科学技術特論B 
8
RSDFTの性能最適化
2014年5月8日 CMSI計算科学技術特論B 
9
● ナノスケールでの量子論的諸現象を第一原理に立脚して解明し新機
能を有するナノ物質・構造を予測  
!
● 例えば・・・
Si中原子空孔による準位の電子雲
炭素ナノチューブでのスピン磁性
RSDFTとは
FET
n-Si
LSI FET
LSI
2020 2030
LSI
FET
漏れ電流が問題
漏れ電流を押さえる
2014年5月8日 CMSI計算科学技術特論B 
10
RSDFTの原理
( )∑=
i
i rn
2
|)( ϕr
ハミルトニアン
電子密度
Kohn-Sham方程式
波動関数
φi: 電子軌道(=波動関数)	
  
	
  i:電子準位(=エネルギーバンド)	
  
r:空間離散点(=空間格子)
固有値方程式Hϕi (r) = εiϕi (r)
2014年5月8日 CMSI計算科学技術特論B 
11
RSDFTの原理
実空間法
固有値方程式Hϕi (r) = εiϕi (r)
ユニットセル(実際は3次元)
各次元方向をML1,ML2,ML3等分して格子を生成
ML(=ML1×ML2×ML3)次元のエルミート行列の固
有値問題
ML2
Kohn-Sham方程式を3次元格子上に
離散化し差分方程式として解く
2014年5月8日 CMSI計算科学技術特論B 
12
RSDFTの計算フロー
(	
  CG	
  )	
  共役勾配法
(	
  GS	
  )	
  Gram-­‐Schmidt規格直交化
(	
  SD	
  )	
  部分対角化
密度とポテンシャルの更新	
  
Self-­‐Consistent	
  Field	
  	
  procedure
1
3
2
4
SCF計算
2014年5月8日 CMSI計算科学技術特論B 
13
原子構造の最適化
ポテンシャル計算
部分対角化
Gram-Schmidt直交化
現時点での波動関数で密度を計算
新しい密度で局所ポテンシャルを再計算
SCF収束判定
波動関数の更新
共役勾配法
波動関数の更新
最小残差法
原子に働く力Fの計算
原子の位置を少しづらす
原子座標の読み込み
初期波動関数.初期密度の準備
or
原子構造の収束判定
SCFループ
4~5回の反復
収束
未収束
未収束
収束
END
組み合わせて使うとSCF収束が速くなる
SCFループの回数で使うルーチンを変更
変更する回数は入力で与える
scf_mix
BMTでは除外
RSDFTの計算フロー
2014年5月8日 CMSI計算科学技術特論B 
14
J.-­‐I.	
  Iwata	
  et	
  al.,	
  J.	
  Comp.	
  Phys.	
  (2010)	
  
Blue	
  :	
  Si	
  atom	
  
Yellow:	
  electron	
  density
Real	
  space CPU	
  space
14
RSDFTの並列化
2014年5月8日 CMSI計算科学技術特論B 
15
RSDFTのCPU単体性能の向上
スレッド並列化  
キャッシュの有効利用
2014年5月8日 CMSI計算科学技術特論B 
16 16
計算コアの最適化	
  
• 行列積化
スレッド並列の実装
RSDFT
• 実空間差分法	
  
• 空間並列
ターゲット計算機:PACS-­‐CS,	
  T2K-­‐Tsukuba
ターゲット計算機:PACS-­‐CS,	
  T2K-­‐Tsukuba
RSDFTのCPU単体性能の向上
2014年5月8日 CMSI計算科学技術特論B 
17
121 ψψψ ""
131 ψψψ ""
141 ψψψ ""
151 ψψψ ""
232 ψψψ ""
161 ψψψ ""
242 ψψψ ""
262 ψψψ ""
252 ψψψ ""
343 ψψψ ""
454 ψψψ ""
1ψ "
565 ψψψ ""
676 ψψψ ""
-2ψ "
3ψ "
4ψ "
5ψ "
6ψ "
353 ψψψ ""
363 ψψψ ""
1ψ
2ψ
3ψ
5ψ
4ψ
6ψ
=
=
464 ψψψ ""
171 ψψψ ""
181 ψψψ ""
191 ψψψ ""
272 ψψψ ""
282 ψψψ ""
292 ψψψ ""
373 ψψψ ""
383 ψψψ ""
393 ψψψ ""
474 ψψψ ""
484 ψψψ ""
494 ψψψ ""
575 ψψψ ""
585 ψψψ ""
595 ψψψ ""
686 ψψψ ""
696 ψψψ ""
787 ψψψ ""
797 ψψψ "" 898 ψψψ ""
=
=
=
=
=
=
=
-
-
-
-
-
-
-
7ψ "
8ψ "
9ψ "
7ψ
8ψ
9ψ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
・
・
・
RSDFTのCPU単体性能の向上
オリジナルは行列ベクトル積
GramSchmidt直交化の行列積化
2014年5月8日 CMSI計算科学技術特論B 
18
三角部(DGEMV)
四角部(DGEMM)
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
• 依存関係のある三角部とない四角部にブロック化して計算	
  
• 再帰的にブロック化することで四角部を多く確保 18
※SDも同様に行列積化が可能
ベクトル積を行列積に変換 再帰分割法
GramSchmidt直交化の行列積化
RSDFTのCPU単体性能の向上
2014年5月8日 CMSI計算科学技術特論B 
19
RSDFTの並列特性分析
2014年5月8日 CMSI計算科学技術特論B 
20
空間方向 ○  
!バンド方向 ○  
▲  
!高並列時のScalapackのスケー
ラビリティに疑問.
空間方向 ○  
!バンド方向 ○  
空間方向 ○  
!バンド方向 △  
アルゴリズム上,ロードインバ
ランスを避けられない.  
三角部の処理が非並列となる  
空間方向 △  
スカラー値のallreduceがボトル
ネック.  
複数バンドの一括処理が有効
(ただし,2~5程度,キャッ
シュサイズにより変わる).  
!バンド方向 ○  
高並列化性能
O(MLxMB2)
→O(N3)
O(MB3)→O(
N3)
O(MLxMB2)
→O(N3)
O(MLxMB2)
→O(N3)
O(ML×ML)  
→O(N2)
演算量
DGEMM,DGEMVが中心.  
再帰分割法によりDGEMMが
支配的.
行列要素生成  
(MatE)
DGEMM,DGEMVが中心.  
再帰分割法によりDGEMMが
支配的.
回転  
(RotV)
Psdyevdの下位では
DGEMM,DGEMVを使用.
固有値求解  
(pdsyevd)
ML次元の部分空間に
限ってハミルトニアン
の対角化をする.  
DIAG  
DGEMM,DGEMVが中心.  
再帰分割法によりDGEMMが
支配的.
規格直交化GramSchmidt
ロード>演算  
実効性能は低い
レイリー商MLxML対称行列の
固有値,固有ベクトル
を共役勾配法で固有値
の小さいものから順に
MB本求める.
DTCG  
単体性能処理内容ルーチン
nn
nKSm H
ψψ
ψψ
∑
−
=
−=
1
1
'
n
m
nmmnn ψψψψψ
nKSmnm HH ψψ=,
!
!
!
"
#
$
$
$
%
&
=
!
!
!
"
#
$
$
$
%
&
!
!
!
"
#
$
$
$
%
&
× nnNN ccH
!!
ε
∑=
=
N
m
mmnn rcr
1
,
'
)()( ψψ
minimize
ML:格子数,MB:バンド数
O(N2)
O(N3)
O(N3)
O(N3)
O(N3)
RSDFTの並列特性分析(処理・演算量)
21 21
計算機   :RICC  
8,000原子:格子数120x120x120,バンド数16,000  
並列数   :8x8x8(空間方向のみ)  
SCFループ1回実行の実測データからSCFループ100回として実行時間を推定
O(N3)  
DGEMM中心
O(N2)  
演算<ロード
O(N3)  
DGEMM中心
O(N3)
演算
行列生成部:  Reduce,  Isend/Irecv(HPSI)  
固有値ソルバー部:PDSYEVD内(Bcast)  
ローテーション:部分Bcast,部分Reduce
30.5%DIAG
3.1%
38.6%
27.4%
99.6%
0.4%
コスト
スカラー値のallreduce中心  
Isend/Irecv(ノンローカル項/HPSI)  
Isend/Irecv(境界データ交換/BCSET)
DTCG
Allreduce  (内積,規格化変数)GramSchmidt
途中結果出力は毎SCFではないのでコストは
もっと少
  Mixing,  途中結果の出力
DO  SCFループ(100回と仮定)
ENDDO
Bcast,Isend/Irecv初期化
 パラメータの読込み
 全プロセスへの転送
SCF部
プロセス間通信処理内容
演算時間の90%以上をBLASルーチン(DGEMM,DGEMV)が占めている
RSDFTの並列特性分析(コスト)
2014年5月8日 CMSI計算科学技術特論B 
22
512  
(8x8x8)
計算機:T2K-Tsukuba  
コンパイラ&ライブラリ:PGI  +  mvapich2-medium  
S方向の分割数:128,  256,  512,  1024,  2048
Si4096(格子:96x96x96,バンド:8192)
実行時間,T2K-Tsukuba
0.0
100.0
200.0
300.0
400.0
500.0
600.0
700.0
800.0
900.0
1000.0
0 5 0 0 1,000 1,500 2,000 2,500
並列数
実行時間(秒)
S C F
DIAG
G S
DTCG
1024  
(8x8x16)
2048  
(8x16x16)
128  
(4x4x8)
512  
(8x8x8)
1024  
(8x8x16)
2048  
(8x16x16)
128  
(4x4x8)
Si4,096(格子:96x96x96,バンド:8192)
速度向上率,T2K-Tsukuba
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
0 5 0 0 1,000 1,500 2,000 2,500
並列数
速度向上率
Ideal
S C F
DIAG
G S
DTCG
RSDFTの並列特性分析(ブロック毎のスケーラビリティ)
2014年5月8日 CMSI計算科学技術特論B 
23
通信時間の増加が問題
※PDSYEVDの通信は演算部に含まれている
単位:秒
Si4 0 9 6(格子:9 6x9 6x9 6,バンド:8 1 9 2)
演算時間と通信時間,T2K -Tsukuba
0.0
100.0
200.0
300.0
400.0
500.0
600.0
700.0
800.0
900.0
1000.0
128
256
512
1,024
2,048
128
256
512
1,024
2,048
128
256
512
1,024
2,048
128
256
512
1,024
2,048
S C F DIAG G S DTCG
並列数
実行時間(秒)
通信(S :大域)
通信(S :隣接)
演算
並列数 演算 通信(S:隣接) 通信(S:大域)
128 749.472 77.435 60.057
256 363.281 52.715 59.732
512 172.218 38.797 64.133
1,024 87.206 33.345 73.494
2,048 59.728 28.637 108.404
128 322.212 10.005 14.931
256 181.852 6.831 9.690
512 86.939 4.492 16.882
1,024 46.392 4.061 17.659
2,048 31.597 4.229 34.866
128 148.354 0.000 9.629
256 73.964 0.000 10.070
512 37.479 0.000 9.969
1,024 16.900 0.000 8.008
2,048 11.451 0.000 10.687
128 278.906 67.429 35.497
256 107.465 45.884 39.972
512 47.800 34.305 37.283
1,024 23.914 29.284 47.827
2,048 16.679 24.408 62.851
SCF
DIAG
G S
DTCG
RSDFTの並列特性分析(ブロック毎のスケーラビリティ)
2014年5月8日 CMSI計算科学技術特論B 
24
空間方向 ○  
!バンド方向 ○  
▲  
!高並列時のScalapackのスケー
ラビリティに疑問.
空間方向 ○  
!バンド方向 ○  
空間方向 ○  
!バンド方向 △  
アルゴリズム上,ロードインバ
ランスを避けられない.  
三角部の処理が非並列となる  
空間方向 △  
スカラー値のallreduceがボトル
ネック.  
複数バンドの一括処理が有効
(ただし,2~5程度,キャッ
シュサイズにより変わる).  
!バンド方向 ○  
高並列化性能
O(MLxMB2)
→O(N3)
O(MB3)→O(
N3)
O(MLxMB2)
→O(N3)
O(MLxMB2)
→O(N3)
O(ML×ML)  
→O(N2)
演算量
DGEMM,DGEMVが中心.  
再帰分割法によりDGEMMが
支配的.
行列要素生成  
(MatE)
DGEMM,DGEMVが中心.  
再帰分割法によりDGEMMが
支配的.
回転  
(RotV)
Psdyevdの下位では
DGEMM,DGEMVを使用.
固有値求解  
(pdsyevd)
ML次元の部分空間に
限ってハミルトニアン
の対角化をする.  
DIAG  
DGEMM,DGEMVが中心.  
再帰分割法によりDGEMMが
支配的.
規格直交化GramSchmidt
ロード>演算  
実効性能は低い
レイリー商MLxML対称行列の
固有値,固有ベクトル
を共役勾配法で固有値
の小さいものから順に
MB本求める.
DTCG  
単体性能処理内容ルーチン
nn
nKSm H
ψψ
ψψ
∑
−
=
−=
1
1
'
n
m
nmmnn ψψψψψ
nKSmnm HH ψψ=,
!
!
!
"
#
$
$
$
%
&
=
!
!
!
"
#
$
$
$
%
&
!
!
!
"
#
$
$
$
%
&
× nnNN ccH
!!
ε
∑=
=
N
m
mmnn rcr
1
,
'
)()( ψψ
minimize
ML:格子数,MB:バンド数
O(N2)
O(N3)
O(N3)
O(N3)
O(N3)
RSDFTの並列特性分析(並列・単体性能)
通信時間増大	
  
演算時間と逆転	
  
並列度の不足	
  
通信時間減少せず	
  
演算時間と同程度	
  
並列度の不足
通信時間増大	
  
演算時間と同程度	
  
並列度の不足	
  
Scalapackのスケー
ラビリティが悪い	
  
行列積化で良好
行列ベクトル積	
  
性能は悪い
行列積化で良好
行列積化で良好
Scalapackの性能
が悪い
25 25
計算コアの最適化	
  
• 行列積化
スレッド並列の実装
超並列向けの実装	
  
• バンド並列の拡張	
  
• EIGENライブラリ※の適用
RSDFT
• 実空間差分法	
  
• ベクトルの内積計算
が基本	
  
• 空間並列
ターゲット計算機:PACS-­‐CS,	
  T2K-­‐Tsukuba
ターゲット計算機:PACS-­‐CS,	
  T2K-­‐Tsukuba
ターゲット計算機:K	
  computer
※高速固有値ライブラリ	
  
Imamura	
  el	
  al.	
  SNA+MC2010	
  (2010)
RSDFTの高並列化
2014年5月8日 CMSI計算科学技術特論B 
26
固有値方程式
Hϕi (r) = εiϕi (r)
ユニットセル(実際は3次元)
ML2
RSDFTの高並列化
i	
  はエネルギーバンド量子数	
  
i	
  についての依存関係はない	
  
空間(S)に加えエネルギーバンド(B)
の並列を実装	
  
万を超える並列度を確保
φi: 電子軌道(=波動関数)	
  
	
  i:電子準位(=エネルギーバンド)
r:空間離散点(=空間格子)
2014年5月8日 CMSI計算科学技術特論B 
27
• 並列軸を増やす事で空間の分割
粒度を増やすことが出来る
• 10万並列レベルに対応可能	
  
• 空間並列のみの場合は全プロ
セッサ間の大域通信が必要	
  
• 通信時間の増大を招く	
  
• 2軸並列への書換で空間に対す
る大域通信が一部のプロセッサ
間での通信とできる	
  
• バンドに対する大域通信も同様	
  
• 大域通信の効率化が実現可
空間
6並列
空間
3×2並列
バンド
空間大域通信
空間大域通信
バンド
大域通信
RSDFTの高並列化
並列軸拡張の効果
2014年5月8日 CMSI計算科学技術特論B 
28HPCS2012
三角部
四角部
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  1	
  
	
  3	
  
	
  3	
  
	
  3	
  
	
  4	
  
	
  6	
  
	
  6	
   	
  7	
  
	
  9	
   	
  10	
  
	
  2	
  
	
  5	
  
	
  8	
  
(1) 三角部の計算	
  
(2) 計算した値を四角部に転送(バンド方向の各プロセッサに分配)	
  
(3) 四角部を並列に計算
28
タスクはブロック・サイクリック
で分配→負荷均等化
0
1
2
0
	
  ? 処理の順番
	
  ? バンド並列のランク番号
RSDFTの高並列化- Gram-Schmidtの実装 -
2014年5月8日 CMSI計算科学技術特論B 
29
■グローバル通信  
✓ALLREDUCE    
➢GramSchmidt  :  内積配列,規格化変数  
➢DTCG  :  スカラー変数  
✓REDUCE  :  
➢DIAG(MatE)  
✓BCAST:  
➢DIAG(RotV)  
➢GramSchmidt  :三角部で更新した波動関数を配送  
✓ALLGATHERV  
➢DIAG  
➢GramSchmidt  
!
■隣接通信  
✓境界データの交換:BCSET  
✓ノンローカル項計算:HPSI  
✓対称ブロックデータの交換:DIAG(MatE)  
!
下線はバンド並列で追加された通信
空間+バンド並列版(S+B並列版)
RSDFTの高並列化  - 通信の見積りと効果の予測 -
2014年5月8日 CMSI計算科学技術特論B 
30
ルーチン 通信パターン 型 通信サイズ 通信回数
GramSchmidt mpi_allgatherv mpi_real8 MB/バンド並列数 1
mpi_allreduce mpi_real8
NBLK*NBLK~
(NBLK1+1)*(NBLK1+1)
MB/NBLK*MB/NBLK/バンド並列数  +    
Int(log(NBLK/NBLK1)*(MB/NBLK/バンド並列数)
mpi_allreduce mpi_real8 NBLK1~1 NBLK1*(MB/NBLK/バンド並列数)
mpi_allreduce mpi_real8 1
MB/NBLK*MB/NBLK/バンド並列数  +    
Int(log(NBLK/NBLK1)*(MB/NBLK/バンド並列数)
+NBLK1*(MB/NBLK/バンド並列数)
mpi_bcast mpi_real8 ML0*NBLK MB/NBLK/バンド並列数
allgatherv mpi_real8 MB/バンド並列数 1
DIAG mpi_reduce mpi_real8 MBLK*MBLK (MB/MBLK  *  MB/MBLK)/バンド並列数
Isend/irecv mpi_real8 MBLK*MBLK 1
Scalapack(pdsyev
d)内の通信は省略
    
mpic_bcast mpi_real8 MBSIZE*NBSIZE (MB/MBSIZE  *  MB/NBSIZE)/バンド並列数
HPSI mpi_isend mpi_real8 lma_nsend(irank)*MBLK 6*各方向の深さ*MB/MBLK/バンド並列数
mpi_irecv mpi_real8 lma_nsend(irank)*MBLK 6*各方向の深さ*MB/MBLK/バンド並列数
mpi_waitall - - MB/MBLK/バンド並列数
BCSET mpi_isend mpi_real8 Md*MBLK 6*MB/MBLK/バンド並列数
mpi_irecv mpi_real8 Md*MBLK 6*MB/MBLK/バンド並列数
mpi_waitall - - MB/MBLK/バンド並列数
MB:バンド数,NBLK:行列x行列で処理する最大サイズ,NBLK1:行列xベクトルで処理する最小サイズ,MBSIZE:MBxMB行列の行方向のブロックサイズ,  
MBSIZE:MBxMB行列の列方向のブロックサイズ,MBLK:min(MBSIZE,NBSIZE),  Md:高次差分の次数,  lma_nsend:ノンローカル項の数
:  バンド方向の通信
RSDFTの高並列化  - 通信の見積りと効果の予測 -
31
6*各方向の深さ*MB/MB_d  
*(Mcg+1)/バンド並列数
lma_nsend(irank)*
MB_d
mpi_real8mpi_isend
HPSI  
MB/MB_d*Mcg/バンド並列数*3MB_dmpi_real8mpi_allreduceprecond_cg
MB/MB_d/バンド並列数MB_dmpi_real8mpi_allreduceDTCG
MB/MB_d*Mcg/バンド並列数MB_dmpi_real8mpi_allreduce
MB/MB_d*Mcg/バンド並列数MB_dmpi_real8mpi_allreduce
MB/MB_d/バンド並列数MB_dmpi_real8mpi_allreduce
2MBmpi_real8mpi_allreduce
MB/MB_d*(Mcg+1)/バンド並列数--mpi_waitall 
6*MB/MB_d*(Mcg+1)/バンド並列数Md*MB_dmpi_real8mpi_irecv 
6*MB/MB_d*(Mcg+1)/バンド並列数Md*MB_dmpi_real8mpi_isendBCSET 
MB/MB_d*(Mcg+1)/バンド並列数--mpi_waitall  
6*各方向の深さ*MB/MB_d  
*(Mcg+1)/バンド並列数
lma_nsend(irank)*
MB_d
mpi_real8mpi_irecv 
 
MB/MB_d*Mcg/バンド並列数--mpi_waitall
6*MB/MB_d*Mcg/バンド並列数Md*MB_dmpi_real8mpi_irecv
6*MB/MB_d*Mcg/バンド並列数Md*MB_dmpi_real8mpi_isendBCSET
MB/MB_d*Mcg/バンド並列数MB_d*6mpi_real8mpi_allreduce   
 
通信回数通信サイズ型通信パターンルーチン
MB:バンド数,MB_dバンドまとめ処理数,Md:高次差分の次数,  lma_nsend:ノンローカル項の数
RSDFTの高並列化  - 通信の見積りと効果の予測 -
2014年5月8日 CMSI計算科学技術特論B 
32 32
Weak  Scaling  測定
タスクサイズ/プロセスを固定する.  
  格子サイズ:12x12x12,バンドサイズ:2,400  
バンド方向の並列数は8で固定.  
空間方向を並列数に比例して増加させる.
原子数 格子数 バンド数 並列数
パターン1 512 48x48x48 19,200 512  (4x4x4x8)
パターン2 1,000 60x60x60 19,200 1,000(5x5x5x8)
パターン3 1,728 72x72x72 19,200 1,728(6x6x6x8)
パターン4 4,096 96x96x96 19,200 4,096(8x8x8x8)
パターン5 8,000 120x120x120 19,200 8,000(10x10x10x8)
T2K-Tsukubaで測定
RSDFTの高並列化  - 効果の確認 -
2014年5月8日 CMSI計算科学技術特論B 
33
Si4096(格子:96x96x96,バンド:8192)
DTCG, Weak Scaling, T2K-Tsukuba
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
0 1,000 2,000 3,000 4,000 5,000
並列数
実行時間(秒)
DTCG
演算
通信(S:隣接)
通信(S:大域)
通信(B:大域)
Si4096(格子:96x96x96,バンド:8192)
MatE/DIAG, Weak Scaling, T2K-Tsukuba
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
0 1,000 2,000 3,000 4,000 5,000
並列数
実行時間(秒)
MatE
演算
通信(S:隣接)
通信(S:大域)
Si4096(格子:96x96x96,バンド:8192)
RoTV/DIAG, Weak Scaling, T2K-Tsukuba
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
0 1,000 2,000 3,000 4,000 5,000
並列数
実行時間(秒) RotV
演算
通信(S:大域)
Si4096(格子:9 6x9 6x9 6,バンド:8192)
GS, Weak Scaling, T2K-Tsukuba
0.0
10.0
20.0
30.0
40.0
50.0
60.0
0 1,000 2,000 3,000 4,000 5,000
並列数
実行時間(秒)
G S
演算
通信(S :大域)
通信(B :大域)
Weak  Scaling  測定
RSDFTの高並列化  - 効果の確認 -
34HPCS2012
34
X
YZ
space
orbital
バンド(1:On)
バンド(On+1:Om)
バンド(Om+1:Omax)
バンド	
  (1:Omax)
空間並列 Tofuネットワークへのマッピング
x
yz
CPU	
  space
空間並列+バンド並列
• マッピング・ルール	
  
• 通信の最適化
各バンドグループをサブメッシュ/
トーラス・ネットワークにマッピング
サブメッシュ/トーラス内で通信が閉じられる
RSDFTの高並列化  -Tofuネットワークへのマッピング-
2014年5月8日 CMSI計算科学技術特論B 
35 35
最適マッピング → サブコミュニケータ間のコンフリクトが発生しない  
          MPI通信でTofu向けアルゴリズムが選択される
実行時間(秒)
0.0	
  
30.0	
  
60.0	
  
90.0	
  
120.0	
  
マッピングなし 最適マッピング
• 原子数: 19,848!
• 格子数: 320x320x120!
• 軌道数: 41,472!
• トータルプロセス数: 12,288!
✓ 空間並列: 2,048(32x32x2)!
✓ バンド並列: 6!
• 32x32x12のトーラスにマッピング
MPI_Bcast
MPI_Allreduce
RSDFTの高並列化  -Gram-Schmidtマッピングの効果-
2014年5月8日 CMSI計算科学技術特論B 
36HPCS2012
SiNW,	
  19,848	
  原子,	
  格子数:320x320x120,	
  バンド数:41,472
-­‐78%
-­‐79%
-­‐79%
空間分割:	
  2,048	
  
バンド分割:	
  6
Time	
  per	
  SCF	
  (sec.)
GS CGMatE/SD RotV/SD
Wait	
  /	
  orbital	
  
Global	
  communication	
  /	
  orbital	
  
Global	
  	
  communication	
  /	
  space	
  
Adjacent	
  communication	
  /	
  space	
  
Computation
	
  Space	
  
	
  +	
  Orbital
Space	
  
	
  +	
  Orbital
Space	
  
	
  +	
  Orbital
Space	
  
	
  +	
  Orbital
	
  Space	
  	
  	
  	
  	
  	
  
Space	
  	
  	
  	
  	
  	
  
Space	
  	
  	
  	
  	
  	
  	
  
Space	
  	
  	
  	
  	
  	
  	
  
-­‐78%
100.0
80.0
60.0
40.0
20.0
0.0
トータル並列プロセス数は12,288で固定
120.0
回転行列生成
空間分割:	
  12,288
大域通信時間を大幅に削減
RSDFTの高並列化  -マッピングの効果-
2014年5月8日 CMSI計算科学技術特論B 
37
DGEMM tuned for the K computer was also used for the
LINPACK benchmark program.
5.2 Scalability
We measured the computation time for the SCF iterations with
communications for the parallel tasks in orbitals, however, was
actually restricted to a relatively small number of compute nodes,
and therefore, the wall clock time for global communications of
the parallel tasks in orbitals was small. This means we succeeded
in decreasing time for global communication by the combination
Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d)
RotV/SD for different numbers of cores.
0.0
40.0
80.0
120.0
160.0
0 20000 40000 60000 80000
TimeperCG(sec.)
Number of cores
theoretical computation
computation
adjacent/space
global/space
global/orbital
0.0
100.0
200.0
300.0
400.0
0 20,000 40,000 60,000 80,000
TimeperGS(sec.)
Number of cores
theoretical computation
computation
global/space
global/orbital
wait/orbital
0.0
50.0
100.0
150.0
200.0
0 20,000 40,000 60,000 80,000
TimeperMatE/SD(sec.)
Number of cores
theoretical computation
computation
adjacent/space
global/space
global/orbital
0.0
100.0
200.0
300.0
0 20,000 40,000 60,000 80,000
TimeperRotV/SD(sec.)
Number of cores
theoretical computation
computation
adjacent/space
global/space
global/orbital
(d)(c)
(a) (b)
time as a result of keeping the block data on the L1 cache
manually decreased by 12% compared with the computation time
for the usual data replacement operations of the L1 cache. This
DGEMM tuned for the K computer was also used for the
LINPACK benchmark program.
5.2 Scalability
We measured the computation time for the SCF iterations with
hand, the global communication time for the parallel task
orbitals was supposed to increase as the number of parallel t
in orbitals increased. The number of MPI processes requi
communications for the parallel tasks in orbitals, however,
actually restricted to a relatively small number of compute no
and therefore, the wall clock time for global communication
the parallel tasks in orbitals was small. This means we succee
in decreasing time for global communication by the combina
Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d)
RotV/SD for different numbers of cores.
0.0
40.0
80.0
120.0
160.0
0 20000 40000 60000 80000
TimeperCG(sec.)
Number of cores
theoretical computation
computation
adjacent/space
global/space
global/orbital
0.0
100.0
200.0
300.0
400.0
0 20,000 40,000 60,000 80,000
TimeperGS(sec.)
Number of cores
theoretical computation
computation
global/space
global/orbital
wait/orbital
0.0
50.0
100.0
150.0
200.0
0 20,000 40,000 60,000 80,000
TimeperMatE/SD(sec.)
Number of cores
theoretical computation
computation
adjacent/space
global/space
global/orbital
0.0
100.0
200.0
300.0
0 20,000 40,000 60,000 80,000
TimeperRotV/SD(sec.)
Number of cores
theoretical computation
computation
adjacent/space
global/space
global/orbital
(d)(c)
(a) (b)
RSDFTの高並列化-スケーラビリティ-
2014年5月8日 CMSI計算科学技術特論B 
38
confinement becomes prominent. The quantum effects,
which depend on the crystallographic directions of the nano-
wire axes and on the cross-sectional shapes of the nanowires,
result in substantial modifications to the energy-band
structures and the transport characteristics of SiNW FETs.
However, knowledge of the effect of the structural mor-
phology on the energy bands of SiNWs is lacking. In addi-
tion, actual nanowires have side-wall roughness. The
effects of such imperfections on the energy bands are
Table 2. Distribution of computational costs for an iteration of the SCF calculation of the modified code.
Procedure block
Execution
time (s)
Computation
time (s)
Communication time (s)
Performance
(PFLOPS/%)Adjacent/grids Global/grids Global/orbitals Wait/orbitals
SCF 2903.10 1993.89 61.73 823.02 12.57 11.89 5.48/51.67
SD 1796.97 1281.44 13.90 497.36 4.27 – 5.32/50.17
MatE/SD 525.33 363.18 13.90 143.98 4.27 – 6.15/57.93
EigenSolve/SD 492.56 240.66 – 251.90 – – 0.01/1.03
RotV/SD 779.08 677.60 – 101.48 – – 8.14/76.70
CG 159.97 43.28 47.83 68.85 0.01 – 0.06/0.60
GS 946.16 669.17 – 256.81 8.29 11.89 6.70/63.10
The test model was a SiNW with 107,292 atoms. The numbers of grids and orbitals were 576 Â 576 Â 180, and 230,400, respectively. The numbers of
parallel tasks in grids and orbitals were 27,648 and three, respectively, using 82,944 compute nodes. Each parallel task had 2160 grids and 76,800 orbitals.
Hasegawa et al. 13
Article
Performance evaluation of ultra-large-
scale first-principles electronic structure
calculation code on the K computer
Yukihiro Hasegawa1
, Jun-Ichi Iwata2
, Miwako Tsuji1
,
Daisuke Takahashi3
, Atsushi Oshiyama2
, Kazuo Minami1
,
Taisuke Boku3
, Hikaru Inoue4
, Yoshito Kitazawa5
,
Ikuo Miyoshi6
and Mitsuo Yokokawa7,1
Abstract
The International Journal of High
Performance Computing Applications
1–21
ª The Author(s) 2013
Reprints and permissions:
sagepub.co.uk/journalsPermissions.nav
DOI: 10.1177/1094342013508163
hpc.sagepub.com
Yukihiro Hasegawa et al.,
http://hpc.sagepub.com/
Computing Applications
International Journal of High Performance
http://hpc.sagepub.com/content/early/2013/10/16/1094342013508163
The online version of this article can be found at:
DOI: 10.1177/1094342013508163
published online 17 October 2013International Journal of High Performance Computing Applications
Hikaru Inoue, Yoshito Kitazawa, Ikuo Miyoshi and Mitsuo Yokokawa
Yukihiro Hasegawa, Jun-Ichi Iwata, Miwako Tsuji, Daisuke Takahashi, Atsushi Oshiyama, Kazuo Minami, Taisuke Boku
K computer
Performance evaluation of ultra-largescale first-principles electronic structure calculation code on the
Published by:
RSDFTの高並列化
総合性能
2014年5月8日 CMSI計算科学技術特論B 
39
PHASEの性能最適化
2014年5月8日 CMSI計算科学技術特論B 
40
PHASEとは
電子状態計算(デバイス特性,エネルギー問題,反応・拡散),構造緩和
● ナノスケールでの量子論的諸現象を第一原理に立脚して解明し新機
能を有するナノ物質・構造を予測.この点はRSDFTと同じ.  
● 例えば以下のような用途に用いる.  
● 繰り返し構造を持つ結晶等の解析が得意.
2014年5月8日 CMSI計算科学技術特論B 
41
PHASEの原理
Kohn-Sham方程式
φik	
  : 電子軌道(=波動関数)	
  
	
  i:電子準位(=エネルギーバンド量子数)	
  
G:波数格子!
k:k点
Hϕi (r) = εiϕi (r)
波数:Gによる展開
	
 求めたい波動関数は未知の関数のため,
既知の関数の線形結合で記述する.PHASE
では平面波基底を用いる.
Hϕik (G) = εiϕik (G)
2014年5月8日 CMSI計算科学技術特論B 
42
PHASEの計算フロー
|ψ> i : 波動関数 の更新
 Δi+1 <= F( H|ψ>i , |ψ> i )
 |ψ>i+1 <= |ψ>i + Δ i+1
 |ψ>i+1 の直交化
!
!
<ψ|ψ>i+1 : 電荷の更新
H : ポテンシャルの更新
繰り返しによる更新
・H|ψ>と|ψ>より次のステップの|ψ>の
修正量を決定する。
・決定した修正量を加算し次のステップの
|ψ>を計算する。
・|ψ>i を直交化のために修正する。
!
・|ψ>がある条件を満たしたら収束。
解くべき方程式
H|ψ> =εn|ψ>
2014年5月8日 CMSI計算科学技術特論B 
43
PHASEの並列化
i	
  はエネルギーバンド量子数	
  
基本的にエネルギーバンドについて並列化されてい
る	
  
一部,波数:Gについて並列化されている	
  
G並列の前にエネルギーバンド並列されている波動
関数をG並列可能なようにトランスバース転送が発生	
  
G並列後にG並列されている波動関数をエネルギーバ
ンド並列に戻すためなトランスバース転送が発生	
  
このトランスバース転送のコストが大
G
i G
i
Hϕik (G) = εiϕik (G)
2014年5月8日 CMSI計算科学技術特論B 
44
■カーネルの抽出
抽出されたカーネルは以下の11区間.
区間1: Vlocalの逆FFT
区間2: Vnonlocalを波動関数ψiとβの内積fに作用
区間3: Vlocalを波動関数ψiに作用,波動関数の修正値Hψiを計算
区間4: fijt=β・ψの計算
区間5: Gram-Schmidtの直交化
区間6: 固有値計算,波動関数ψiとfiのバンド方向並べ替え
区間7: 電荷密度計算
区間8: Vlocalの逆FFT
区間9: 行列対角化計算,波動関数ψiの修正
区間10: fijt=β・ψの計算
区間11: 電荷密度,ポテンシャル,全エネルギー計算
	
 以上のカーネルを計算特性別に分類すると3つに分類が可能である.
!
種類 区間番号
行列-行列積に書き換え可能 2,4,5,9,10
FFTを含む 1,3,6,7,8,11
対角化 9
O(N3)
O(N3)
O(NlogN)
PHASEの並列特性分析(処理・演算量)
2014年5月8日 CMSI計算科学技術特論B 
45
PHASEの処理ブロック:区間2を例に示す.  
低並列でストロングスケールで測定.  
HfSiO2  384原子アモルファス系を測定
! BLAS Level3
! 
BLAS Level3 ( 2)
(
0
2
4
6
8
10
12
14
16 32 64
[s]
S Level3
AS Level3 ( 2)
0
2
4
6
8
10
12
14
16 32 64 128
[s]
original:0calc.
23axis:0calc.
23axis:0comm.
区間2: Vnonlocalを波動関数ψiとβの内積fに作用
区間4: fijt=β・ψの計算
区間10: fijt=β・ψの計算
■行列積カーネル
PHASEの並列特性分析(ブロック毎のスケーラビリティ)
すでにこの並列度でスケールしていない.  
原因は非並列部の残存.  
区間4,10も同様
2014年5月8日 CMSI計算科学技術特論B 
46
PHASEの並列特性分析(ブロック毎のスケーラビリティ)
■行列積カーネル 区間5: Gram-Schmidtの直交化
演算処理
通信処理
トランスバース処理!
(通信以外)
PHASEの処理ブロック:区間5を例に示す.  
Si512原子の結果.  
低並列でストロングスケールで測定.  
すでにこの並列度でスケールしていない.  
演算もスケールしないが通信が増大  
トランスバース転送が原因
2014年5月8日 CMSI計算科学技術特論B 
47
PHASEの並列特性分析(ブロック毎のスケーラビリティ)
■FFTカーネル 区間8: Vlocalの逆FFT
! 
FFT ( 8)
(
FFT FFTW
0
2
4
6
8
10
12
14
16
18
16
[s]
PHASEの処理ブロック:区間8を例に示す.  
低並列でストロングスケールで測定.  
すでにこの並列度でスケールしていない.  
384原子,800程度のエネルギーバンド数.  
エネルギーバンド並列のみでは128並列に
も到達しない.
2014年5月8日 CMSI計算科学技術特論B 
48
対角化カーネル(区間9)
HfSiO2 1,536原子,5,120元アモルファス系で測定.
500並列以上で並列オーバーヘッドが測定された.
PHASEの高並列化・高性能化の結果
■対角化カーネル
ScaLAPACKを含むカーネルの並列特性.
カーネル
512
(16x32)
1024
(16x64)
1536
(16x96)
2048
(16x128)
区間9 (秒) 11.4 13.8 16.5 18.8
通信 0.0 0.0 0.0 0.0
BLAS 2.1 1.1 0.7 0.5
ScaLAPACK 8.8 12.0 15.1 17.5
他 0.5 0.7 0.7 0.8
0
20
40
60
80
100
120
140
160
16x32 16x64 16x96 16x128 16x160
[s]
プロセス数(バンド×波数)
ScaLAPACK
FFT
BLAS
「京」
「京」
2014年5月8日 CMSI計算科学技術特論B 
49
固有値方程式
PHASEの高並列化・高性能化
エネルギーバンド(B)に加え波数(G)
の並列を実装	
  
完全な2軸並列とする	
  
RSDFTと同様の行列行列積化も実装
Hϕik (G) = εiϕik (G) φik	
  : 電子軌道(=波動関数)	
  
	
  i:電子準位(=エネルギーバンド量子数)	
  
G:波数格子!
k:k点
2014年5月8日 CMSI計算科学技術特論B 
50
従来の非並列部を並列化できる.  
グラムシュミットの直交化処理のトランスバース転送が削減できる.
■行列積カーネル
PHASEの高並列化・高性能化
■二軸並列化
非並列部が波数で並列
化できる
2014年5月8日 CMSI計算科学技術特論B 
51
■二軸並列化
• 分割粒度が大きくなる.
• ループの回転長が増えることで,並列性能が高まる.
• 	
 cf. バンド方向のループ長が1/9から1/3と3倍に増える.
バンド
波
数
PHASEの高並列化・高性能化
■行列積カーネル
2014年5月8日 CMSI計算科学技術特論B 
52
■二軸並列化
• バンド方向の大域通信が一部のプロセッサに閉じるため通信
時間の短縮が図れる.
PHASEの高並列化・高性能化
■行列積カーネル
バンド
波数
2014年5月8日 CMSI計算科学技術特論B 
53
• オリジナルのFFTカーネルは波数方向に並列化されていなかった.
• そのためFFTに関する通信は発生していなかった.
• 二軸並列化に伴いFFTに関する通信が発生する.
• FFT通信の問題は全プロセッサ間の転置通信.
• 二軸並列化では通信は全プロセッサでなく一部のプロセッサに閉じる.
PHASEの高並列化・高性能化
■FFTカーネル
■二軸並列化
波数
バンド
2014年5月8日 CMSI計算科学技術特論B 
54
• この分野では小規模問題を短時間で計算したいという科学
的要求が高い.
• バンド計算(エネルギー準位など):1万原子の1回SCF収束
で良い∼100SCF程度.
• 構造緩和(MD)や反応経路探索:外側に原子核の緩和に関す
るループ構造∼100step程度.
• 10,000原子を10PFシステム(80,000ノード),また10,00
原子を10,000ノードで計算する事を目指せる.
• ただし二軸並列はメリットとデメリットがあるため実施前
に効果が期待できるか詳細な評価を実施した.
PHASEの高並列化・高性能化
■二軸並列化
2014年5月8日 CMSI計算科学技術特論B 
スレッド並列化  
キャッシュの有効利用-行列積化
0
50
100
150
200
250
300
orinigal original+DGEMM 22axis+1threads 22axis+8threads
[s]
Algorithm
Gram/Schmidt3orthonormalization
other
M× M
M× V FX1(左), 「京」(右)上でのGram-Schmidt直交化の
BLAS Level3適用結果
「京」
「京」FX1
PHASEの高並列化・高性能化の結果
行列積
行列ベクトル積
2014年5月8日 CMSI計算科学技術特論B 
56
PHASEの高並列化・高性能化の結果
■二軸並列化
■行列積カーネル
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
20.0
16 32 64 128
プロセス数
経過時間[sec]
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
20.0
プロセス数
経過時間[sec]
通信部 主要演算ループ
0
2
4
6
8
10
12
14
16 32 64 128
[s]
プロセス数
original:0calc.
23axis:0calc.
23axis:0comm.
FX1
「京」
• 行列積化されたカーネルに(区間2)ついての結果.
• HfSiO2 384原子アモルファス系のデータ.
• 大幅な性能向上を達成.
2014年5月8日 CMSI計算科学技術特論B 
57
■二軸並列化
• FFTを含むカーネルに(区間8)ついての結果.
• HfSiO2 384原子アモルファス系のデータ.
• 性能向上を達成.
PHASEの高並列化・高性能化の結果
■FFTカーネル
プロセス数
0.0
10.0
20.0
30.0
40.0
50.0
16 32 64 128
経過時間[sec]
0.0
10.0
20.0
30.0
40.0
50.0
プロセス数
経過時間[sec]
0
2
4
6
8
10
12
14
16
18
16 32 64 128
[s]
プロセス数
original:0other
original:0DGEMM
original:0FFT
2:axis:0other
2:axis:0comm.
2:axis:0DGEMM
2:axis:0FFT
FX1
「京」
2014年5月8日 CMSI計算科学技術特論B 
58
■Scalapack分割数の固定
• 対角化はエネルギーバンド数の元を持つ行列が対象
• 行列の大きさに比べて分割数が多すぎる
• 分割数を16 16=256に固定
PHASEの高並列化・高性能化の結果
■対角化カーネル
区間9の実行時間と分割数の関係.
0
100
200
300
400
500
600
700
0
20
40
60
80
100
0 10 20 30 40
[s][s]
分割数
HfSiO4_3072
HfSiO4_6144
0
50
100
150
200
250
16x32 16x64 16x96 16x128 16x160
[s]
プロセス数(バンド×波数)
ScaLAPACK
FFT
BLAS
「京」「京」
2014年5月8日 CMSI計算科学技術特論B 
59
PHASEの高並列化・高性能化の結果
総合性能
「京」で測定した並列性能(SiC 3,800原子系)
0
200
400
600
800
1000
1200
1400
48 96 192 384 768 1536 3072 6114 12288
Time%[s]
Process
DGEMM
FFT
ScaLAPACK
Kernel Time [sec] Efficiency of theoretical
Peak
SCF 39.78 20.11%
DGEMM 13.19 49.73%
FFT 14.46 7.86%
ScaLAPACK 12.31 3.88%
■ 「京」 3,072並列にて,SiC 4,096原子計算に
て,構造緩和 (263MD, 2days).
■ 「京」82,944並列にて,SiC 20,440原子計算に
て,MSDソルバー効率 20.2 % (2.1 PFLOPS)
達成.
2014年5月8日 CMSI計算科学技術特論B 
まとめ
!
理研で進めた性能最適化  
RSDFTの性能最適化  
PHASEの性能最適化  
602014年5月8日 CMSI計算科学技術特論B 

More Related Content

CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1

  • 1. RIKEN  ADVANCED  INSTITUTE  FOR  COMPUTATIONAL  SCIENCE 第4回   アプリケーションの性能最適化の実例1 2014年5月8日
 
 独立行政法人理化学研究所
 計算科学研究機構�運用技術部門
 ソフトウェア技術チーム�チームヘッド
 
 南�一生
 minami_kaz@riken.jp CMSI計算科学技術特論B
  • 2. 講義の概要 スーパーコンピュータとアプリケーションの性能   アプリケーションの性能最適化1(高並列性能最適化)   • アプリケーションの性能最適化2(高並列性能最適化)   アプリケーションの性能最適化の実例1   • アプリケーションの性能最適化の実例2 22014年5月8日 CMSI計算科学技術特論B 
  • 3. 内容 ! 理研で進めた性能最適化   RSDFTの性能最適化   PHASEの性能最適化   3 本資料は,理化学研究所AICS運用技術部門ソフトウェア技術チーム, 長谷川幸弘氏, 黒田明義氏の発表データを使用して作成しています. 2014年5月8日 CMSI計算科学技術特論B 
  • 5. 5 プログラム名 分野 アプリケーション概要 期待される成果 手法 NICAM 地球 科学 全球雲解像大気大循環 モデル 大気大循環のエンジンとなる熱帯積雲対流活動を精 緻に表現することでシミュレーションを飛躍的に進化さ せ,現時点では再現が難しい大気現象の解明が可能 となる.(開発 東京大学,JAMSTEC,RIKEN AICS) FDM (大気) Seism3D 地球 科学 地震波伝播・強震動 シミュレーション 既存の計算機では不可能な短い周期の地震波動の解 析・予測が可能となり,木造建築およびコンクリート構 造物の耐震評価などに応用できる.(開発 東京大学 地震研究所) FDM (波動) PHASE ナノ 平面波展開第一原理 電子状態解析 第一原理計算により,ポスト35nm世代ナノデバイス, 非シリコン系デバイスの探索を行う.(開発 物質・材料 研究機構) 平面波 DFT FrontFlow/Blue 工学 Large Eddy Simulation (LES)に基づく非定常流 体解析 LES解析により,エンジニアリング上重要な乱流境界 層の挙動予測を含めた高精度な流れの予測が実現で きる.(開発 東京大学生産技術研究所) FEM (流体) RSDFT ナノ 実空間第一原理電子状 態解析 大規模第一原理計算により,10nm以下の基本ナノ素 子(量子細線,分子,電極,ゲート,基盤など)の特性解 析およびデバイス開発を行う.(開発 東京大学) 実空間 DFT LatticeQCD 物理 格子QCDシミュレーショ ンによる素粒子・原子核 研究 モンテカルロ法およびCG法により,物質と宇宙の起源 を解明する.(開発 筑波大) QCD 理研で進めた性能最適化 6本のターゲットアプリ 2014年5月8日 CMSI計算科学技術特論B 
  • 9. 9 ● ナノスケールでの量子論的諸現象を第一原理に立脚して解明し新機 能を有するナノ物質・構造を予測   ! ● 例えば・・・ Si中原子空孔による準位の電子雲 炭素ナノチューブでのスピン磁性 RSDFTとは FET n-Si LSI FET LSI 2020 2030 LSI FET 漏れ電流が問題 漏れ電流を押さえる 2014年5月8日 CMSI計算科学技術特論B 
  • 10. 10 RSDFTの原理 ( )∑= i i rn 2 |)( ϕr ハミルトニアン 電子密度 Kohn-Sham方程式 波動関数 φi: 電子軌道(=波動関数)    i:電子準位(=エネルギーバンド)   r:空間離散点(=空間格子) 固有値方程式Hϕi (r) = εiϕi (r) 2014年5月8日 CMSI計算科学技術特論B 
  • 11. 11 RSDFTの原理 実空間法 固有値方程式Hϕi (r) = εiϕi (r) ユニットセル(実際は3次元) 各次元方向をML1,ML2,ML3等分して格子を生成 ML(=ML1×ML2×ML3)次元のエルミート行列の固 有値問題 ML2 Kohn-Sham方程式を3次元格子上に 離散化し差分方程式として解く 2014年5月8日 CMSI計算科学技術特論B 
  • 12. 12 RSDFTの計算フロー (  CG  )  共役勾配法 (  GS  )  Gram-­‐Schmidt規格直交化 (  SD  )  部分対角化 密度とポテンシャルの更新   Self-­‐Consistent  Field    procedure 1 3 2 4 SCF計算 2014年5月8日 CMSI計算科学技術特論B 
  • 14. 14 J.-­‐I.  Iwata  et  al.,  J.  Comp.  Phys.  (2010)   Blue  :  Si  atom   Yellow:  electron  density Real  space CPU  space 14 RSDFTの並列化 2014年5月8日 CMSI計算科学技術特論B 
  • 16. 16 16 計算コアの最適化   • 行列積化 スレッド並列の実装 RSDFT • 実空間差分法   • 空間並列 ターゲット計算機:PACS-­‐CS,  T2K-­‐Tsukuba ターゲット計算機:PACS-­‐CS,  T2K-­‐Tsukuba RSDFTのCPU単体性能の向上 2014年5月8日 CMSI計算科学技術特論B 
  • 17. 17 121 ψψψ "" 131 ψψψ "" 141 ψψψ "" 151 ψψψ "" 232 ψψψ "" 161 ψψψ "" 242 ψψψ "" 262 ψψψ "" 252 ψψψ "" 343 ψψψ "" 454 ψψψ "" 1ψ " 565 ψψψ "" 676 ψψψ "" -2ψ " 3ψ " 4ψ " 5ψ " 6ψ " 353 ψψψ "" 363 ψψψ "" 1ψ 2ψ 3ψ 5ψ 4ψ 6ψ = = 464 ψψψ "" 171 ψψψ "" 181 ψψψ "" 191 ψψψ "" 272 ψψψ "" 282 ψψψ "" 292 ψψψ "" 373 ψψψ "" 383 ψψψ "" 393 ψψψ "" 474 ψψψ "" 484 ψψψ "" 494 ψψψ "" 575 ψψψ "" 585 ψψψ "" 595 ψψψ "" 686 ψψψ "" 696 ψψψ "" 787 ψψψ "" 797 ψψψ "" 898 ψψψ "" = = = = = = = - - - - - - - 7ψ " 8ψ " 9ψ " 7ψ 8ψ 9ψ - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・ ・ ・ RSDFTのCPU単体性能の向上 オリジナルは行列ベクトル積 GramSchmidt直交化の行列積化 2014年5月8日 CMSI計算科学技術特論B 
  • 18. 18 三角部(DGEMV) 四角部(DGEMM)                 • 依存関係のある三角部とない四角部にブロック化して計算   • 再帰的にブロック化することで四角部を多く確保 18 ※SDも同様に行列積化が可能 ベクトル積を行列積に変換 再帰分割法 GramSchmidt直交化の行列積化 RSDFTのCPU単体性能の向上 2014年5月8日 CMSI計算科学技術特論B 
  • 20. 20 空間方向 ○   !バンド方向 ○   ▲   !高並列時のScalapackのスケー ラビリティに疑問. 空間方向 ○   !バンド方向 ○   空間方向 ○   !バンド方向 △   アルゴリズム上,ロードインバ ランスを避けられない.   三角部の処理が非並列となる   空間方向 △   スカラー値のallreduceがボトル ネック.   複数バンドの一括処理が有効 (ただし,2~5程度,キャッ シュサイズにより変わる).   !バンド方向 ○   高並列化性能 O(MLxMB2) →O(N3) O(MB3)→O( N3) O(MLxMB2) →O(N3) O(MLxMB2) →O(N3) O(ML×ML)   →O(N2) 演算量 DGEMM,DGEMVが中心.   再帰分割法によりDGEMMが 支配的. 行列要素生成   (MatE) DGEMM,DGEMVが中心.   再帰分割法によりDGEMMが 支配的. 回転   (RotV) Psdyevdの下位では DGEMM,DGEMVを使用. 固有値求解   (pdsyevd) ML次元の部分空間に 限ってハミルトニアン の対角化をする.   DIAG   DGEMM,DGEMVが中心.   再帰分割法によりDGEMMが 支配的. 規格直交化GramSchmidt ロード>演算   実効性能は低い レイリー商MLxML対称行列の 固有値,固有ベクトル を共役勾配法で固有値 の小さいものから順に MB本求める. DTCG   単体性能処理内容ルーチン nn nKSm H ψψ ψψ ∑ − = −= 1 1 ' n m nmmnn ψψψψψ nKSmnm HH ψψ=, ! ! ! " # $ $ $ % & = ! ! ! " # $ $ $ % & ! ! ! " # $ $ $ % & × nnNN ccH !! ε ∑= = N m mmnn rcr 1 , ' )()( ψψ minimize ML:格子数,MB:バンド数 O(N2) O(N3) O(N3) O(N3) O(N3) RSDFTの並列特性分析(処理・演算量)
  • 21. 21 21 計算機   :RICC   8,000原子:格子数120x120x120,バンド数16,000   並列数   :8x8x8(空間方向のみ)   SCFループ1回実行の実測データからSCFループ100回として実行時間を推定 O(N3)   DGEMM中心 O(N2)   演算<ロード O(N3)   DGEMM中心 O(N3) 演算 行列生成部:  Reduce,  Isend/Irecv(HPSI)   固有値ソルバー部:PDSYEVD内(Bcast)   ローテーション:部分Bcast,部分Reduce 30.5%DIAG 3.1% 38.6% 27.4% 99.6% 0.4% コスト スカラー値のallreduce中心   Isend/Irecv(ノンローカル項/HPSI)   Isend/Irecv(境界データ交換/BCSET) DTCG Allreduce  (内積,規格化変数)GramSchmidt 途中結果出力は毎SCFではないのでコストは もっと少  Mixing,  途中結果の出力 DO  SCFループ(100回と仮定) ENDDO Bcast,Isend/Irecv初期化  パラメータの読込み  全プロセスへの転送 SCF部 プロセス間通信処理内容 演算時間の90%以上をBLASルーチン(DGEMM,DGEMV)が占めている RSDFTの並列特性分析(コスト) 2014年5月8日 CMSI計算科学技術特論B 
  • 22. 22 512   (8x8x8) 計算機:T2K-Tsukuba   コンパイラ&ライブラリ:PGI  +  mvapich2-medium   S方向の分割数:128,  256,  512,  1024,  2048 Si4096(格子:96x96x96,バンド:8192) 実行時間,T2K-Tsukuba 0.0 100.0 200.0 300.0 400.0 500.0 600.0 700.0 800.0 900.0 1000.0 0 5 0 0 1,000 1,500 2,000 2,500 並列数 実行時間(秒) S C F DIAG G S DTCG 1024   (8x8x16) 2048   (8x16x16) 128   (4x4x8) 512   (8x8x8) 1024   (8x8x16) 2048   (8x16x16) 128   (4x4x8) Si4,096(格子:96x96x96,バンド:8192) 速度向上率,T2K-Tsukuba 0.0 2.0 4.0 6.0 8.0 10.0 12.0 14.0 16.0 18.0 0 5 0 0 1,000 1,500 2,000 2,500 並列数 速度向上率 Ideal S C F DIAG G S DTCG RSDFTの並列特性分析(ブロック毎のスケーラビリティ) 2014年5月8日 CMSI計算科学技術特論B 
  • 23. 23 通信時間の増加が問題 ※PDSYEVDの通信は演算部に含まれている 単位:秒 Si4 0 9 6(格子:9 6x9 6x9 6,バンド:8 1 9 2) 演算時間と通信時間,T2K -Tsukuba 0.0 100.0 200.0 300.0 400.0 500.0 600.0 700.0 800.0 900.0 1000.0 128 256 512 1,024 2,048 128 256 512 1,024 2,048 128 256 512 1,024 2,048 128 256 512 1,024 2,048 S C F DIAG G S DTCG 並列数 実行時間(秒) 通信(S :大域) 通信(S :隣接) 演算 並列数 演算 通信(S:隣接) 通信(S:大域) 128 749.472 77.435 60.057 256 363.281 52.715 59.732 512 172.218 38.797 64.133 1,024 87.206 33.345 73.494 2,048 59.728 28.637 108.404 128 322.212 10.005 14.931 256 181.852 6.831 9.690 512 86.939 4.492 16.882 1,024 46.392 4.061 17.659 2,048 31.597 4.229 34.866 128 148.354 0.000 9.629 256 73.964 0.000 10.070 512 37.479 0.000 9.969 1,024 16.900 0.000 8.008 2,048 11.451 0.000 10.687 128 278.906 67.429 35.497 256 107.465 45.884 39.972 512 47.800 34.305 37.283 1,024 23.914 29.284 47.827 2,048 16.679 24.408 62.851 SCF DIAG G S DTCG RSDFTの並列特性分析(ブロック毎のスケーラビリティ) 2014年5月8日 CMSI計算科学技術特論B 
  • 24. 24 空間方向 ○   !バンド方向 ○   ▲   !高並列時のScalapackのスケー ラビリティに疑問. 空間方向 ○   !バンド方向 ○   空間方向 ○   !バンド方向 △   アルゴリズム上,ロードインバ ランスを避けられない.   三角部の処理が非並列となる   空間方向 △   スカラー値のallreduceがボトル ネック.   複数バンドの一括処理が有効 (ただし,2~5程度,キャッ シュサイズにより変わる).   !バンド方向 ○   高並列化性能 O(MLxMB2) →O(N3) O(MB3)→O( N3) O(MLxMB2) →O(N3) O(MLxMB2) →O(N3) O(ML×ML)   →O(N2) 演算量 DGEMM,DGEMVが中心.   再帰分割法によりDGEMMが 支配的. 行列要素生成   (MatE) DGEMM,DGEMVが中心.   再帰分割法によりDGEMMが 支配的. 回転   (RotV) Psdyevdの下位では DGEMM,DGEMVを使用. 固有値求解   (pdsyevd) ML次元の部分空間に 限ってハミルトニアン の対角化をする.   DIAG   DGEMM,DGEMVが中心.   再帰分割法によりDGEMMが 支配的. 規格直交化GramSchmidt ロード>演算   実効性能は低い レイリー商MLxML対称行列の 固有値,固有ベクトル を共役勾配法で固有値 の小さいものから順に MB本求める. DTCG   単体性能処理内容ルーチン nn nKSm H ψψ ψψ ∑ − = −= 1 1 ' n m nmmnn ψψψψψ nKSmnm HH ψψ=, ! ! ! " # $ $ $ % & = ! ! ! " # $ $ $ % & ! ! ! " # $ $ $ % & × nnNN ccH !! ε ∑= = N m mmnn rcr 1 , ' )()( ψψ minimize ML:格子数,MB:バンド数 O(N2) O(N3) O(N3) O(N3) O(N3) RSDFTの並列特性分析(並列・単体性能) 通信時間増大   演算時間と逆転   並列度の不足   通信時間減少せず   演算時間と同程度   並列度の不足 通信時間増大   演算時間と同程度   並列度の不足   Scalapackのスケー ラビリティが悪い   行列積化で良好 行列ベクトル積   性能は悪い 行列積化で良好 行列積化で良好 Scalapackの性能 が悪い
  • 25. 25 25 計算コアの最適化   • 行列積化 スレッド並列の実装 超並列向けの実装   • バンド並列の拡張   • EIGENライブラリ※の適用 RSDFT • 実空間差分法   • ベクトルの内積計算 が基本   • 空間並列 ターゲット計算機:PACS-­‐CS,  T2K-­‐Tsukuba ターゲット計算機:PACS-­‐CS,  T2K-­‐Tsukuba ターゲット計算機:K  computer ※高速固有値ライブラリ   Imamura  el  al.  SNA+MC2010  (2010) RSDFTの高並列化 2014年5月8日 CMSI計算科学技術特論B 
  • 26. 26 固有値方程式 Hϕi (r) = εiϕi (r) ユニットセル(実際は3次元) ML2 RSDFTの高並列化 i  はエネルギーバンド量子数   i  についての依存関係はない   空間(S)に加えエネルギーバンド(B) の並列を実装   万を超える並列度を確保 φi: 電子軌道(=波動関数)    i:電子準位(=エネルギーバンド) r:空間離散点(=空間格子) 2014年5月8日 CMSI計算科学技術特論B 
  • 27. 27 • 並列軸を増やす事で空間の分割 粒度を増やすことが出来る • 10万並列レベルに対応可能   • 空間並列のみの場合は全プロ セッサ間の大域通信が必要   • 通信時間の増大を招く   • 2軸並列への書換で空間に対す る大域通信が一部のプロセッサ 間での通信とできる   • バンドに対する大域通信も同様   • 大域通信の効率化が実現可 空間 6並列 空間 3×2並列 バンド 空間大域通信 空間大域通信 バンド 大域通信 RSDFTの高並列化 並列軸拡張の効果 2014年5月8日 CMSI計算科学技術特論B 
  • 28. 28HPCS2012 三角部 四角部                  1    3    3    3    4    6    6    7    9    10    2    5    8   (1) 三角部の計算   (2) 計算した値を四角部に転送(バンド方向の各プロセッサに分配)   (3) 四角部を並列に計算 28 タスクはブロック・サイクリック で分配→負荷均等化 0 1 2 0  ? 処理の順番  ? バンド並列のランク番号 RSDFTの高並列化- Gram-Schmidtの実装 - 2014年5月8日 CMSI計算科学技術特論B 
  • 29. 29 ■グローバル通信   ✓ALLREDUCE     ➢GramSchmidt  :  内積配列,規格化変数   ➢DTCG  :  スカラー変数   ✓REDUCE  :   ➢DIAG(MatE)   ✓BCAST:   ➢DIAG(RotV)   ➢GramSchmidt  :三角部で更新した波動関数を配送   ✓ALLGATHERV   ➢DIAG   ➢GramSchmidt   ! ■隣接通信   ✓境界データの交換:BCSET   ✓ノンローカル項計算:HPSI   ✓対称ブロックデータの交換:DIAG(MatE)   ! 下線はバンド並列で追加された通信 空間+バンド並列版(S+B並列版) RSDFTの高並列化  - 通信の見積りと効果の予測 - 2014年5月8日 CMSI計算科学技術特論B 
  • 30. 30 ルーチン 通信パターン 型 通信サイズ 通信回数 GramSchmidt mpi_allgatherv mpi_real8 MB/バンド並列数 1 mpi_allreduce mpi_real8 NBLK*NBLK~ (NBLK1+1)*(NBLK1+1) MB/NBLK*MB/NBLK/バンド並列数  +     Int(log(NBLK/NBLK1)*(MB/NBLK/バンド並列数) mpi_allreduce mpi_real8 NBLK1~1 NBLK1*(MB/NBLK/バンド並列数) mpi_allreduce mpi_real8 1 MB/NBLK*MB/NBLK/バンド並列数  +     Int(log(NBLK/NBLK1)*(MB/NBLK/バンド並列数) +NBLK1*(MB/NBLK/バンド並列数) mpi_bcast mpi_real8 ML0*NBLK MB/NBLK/バンド並列数 allgatherv mpi_real8 MB/バンド並列数 1 DIAG mpi_reduce mpi_real8 MBLK*MBLK (MB/MBLK  *  MB/MBLK)/バンド並列数 Isend/irecv mpi_real8 MBLK*MBLK 1 Scalapack(pdsyev d)内の通信は省略     mpic_bcast mpi_real8 MBSIZE*NBSIZE (MB/MBSIZE  *  MB/NBSIZE)/バンド並列数 HPSI mpi_isend mpi_real8 lma_nsend(irank)*MBLK 6*各方向の深さ*MB/MBLK/バンド並列数 mpi_irecv mpi_real8 lma_nsend(irank)*MBLK 6*各方向の深さ*MB/MBLK/バンド並列数 mpi_waitall - - MB/MBLK/バンド並列数 BCSET mpi_isend mpi_real8 Md*MBLK 6*MB/MBLK/バンド並列数 mpi_irecv mpi_real8 Md*MBLK 6*MB/MBLK/バンド並列数 mpi_waitall - - MB/MBLK/バンド並列数 MB:バンド数,NBLK:行列x行列で処理する最大サイズ,NBLK1:行列xベクトルで処理する最小サイズ,MBSIZE:MBxMB行列の行方向のブロックサイズ,   MBSIZE:MBxMB行列の列方向のブロックサイズ,MBLK:min(MBSIZE,NBSIZE),  Md:高次差分の次数,  lma_nsend:ノンローカル項の数 :  バンド方向の通信 RSDFTの高並列化  - 通信の見積りと効果の予測 -
  • 31. 31 6*各方向の深さ*MB/MB_d   *(Mcg+1)/バンド並列数 lma_nsend(irank)* MB_d mpi_real8mpi_isend HPSI   MB/MB_d*Mcg/バンド並列数*3MB_dmpi_real8mpi_allreduceprecond_cg MB/MB_d/バンド並列数MB_dmpi_real8mpi_allreduceDTCG MB/MB_d*Mcg/バンド並列数MB_dmpi_real8mpi_allreduce MB/MB_d*Mcg/バンド並列数MB_dmpi_real8mpi_allreduce MB/MB_d/バンド並列数MB_dmpi_real8mpi_allreduce 2MBmpi_real8mpi_allreduce MB/MB_d*(Mcg+1)/バンド並列数--mpi_waitall  6*MB/MB_d*(Mcg+1)/バンド並列数Md*MB_dmpi_real8mpi_irecv  6*MB/MB_d*(Mcg+1)/バンド並列数Md*MB_dmpi_real8mpi_isendBCSET  MB/MB_d*(Mcg+1)/バンド並列数--mpi_waitall   6*各方向の深さ*MB/MB_d   *(Mcg+1)/バンド並列数 lma_nsend(irank)* MB_d mpi_real8mpi_irecv    MB/MB_d*Mcg/バンド並列数--mpi_waitall 6*MB/MB_d*Mcg/バンド並列数Md*MB_dmpi_real8mpi_irecv 6*MB/MB_d*Mcg/バンド並列数Md*MB_dmpi_real8mpi_isendBCSET MB/MB_d*Mcg/バンド並列数MB_d*6mpi_real8mpi_allreduce      通信回数通信サイズ型通信パターンルーチン MB:バンド数,MB_dバンドまとめ処理数,Md:高次差分の次数,  lma_nsend:ノンローカル項の数 RSDFTの高並列化  - 通信の見積りと効果の予測 - 2014年5月8日 CMSI計算科学技術特論B 
  • 32. 32 32 Weak  Scaling  測定 タスクサイズ/プロセスを固定する.     格子サイズ:12x12x12,バンドサイズ:2,400   バンド方向の並列数は8で固定.   空間方向を並列数に比例して増加させる. 原子数 格子数 バンド数 並列数 パターン1 512 48x48x48 19,200 512  (4x4x4x8) パターン2 1,000 60x60x60 19,200 1,000(5x5x5x8) パターン3 1,728 72x72x72 19,200 1,728(6x6x6x8) パターン4 4,096 96x96x96 19,200 4,096(8x8x8x8) パターン5 8,000 120x120x120 19,200 8,000(10x10x10x8) T2K-Tsukubaで測定 RSDFTの高並列化  - 効果の確認 - 2014年5月8日 CMSI計算科学技術特論B 
  • 33. 33 Si4096(格子:96x96x96,バンド:8192) DTCG, Weak Scaling, T2K-Tsukuba 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 0 1,000 2,000 3,000 4,000 5,000 並列数 実行時間(秒) DTCG 演算 通信(S:隣接) 通信(S:大域) 通信(B:大域) Si4096(格子:96x96x96,バンド:8192) MatE/DIAG, Weak Scaling, T2K-Tsukuba 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 0 1,000 2,000 3,000 4,000 5,000 並列数 実行時間(秒) MatE 演算 通信(S:隣接) 通信(S:大域) Si4096(格子:96x96x96,バンド:8192) RoTV/DIAG, Weak Scaling, T2K-Tsukuba 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 0 1,000 2,000 3,000 4,000 5,000 並列数 実行時間(秒) RotV 演算 通信(S:大域) Si4096(格子:9 6x9 6x9 6,バンド:8192) GS, Weak Scaling, T2K-Tsukuba 0.0 10.0 20.0 30.0 40.0 50.0 60.0 0 1,000 2,000 3,000 4,000 5,000 並列数 実行時間(秒) G S 演算 通信(S :大域) 通信(B :大域) Weak  Scaling  測定 RSDFTの高並列化  - 効果の確認 -
  • 34. 34HPCS2012 34 X YZ space orbital バンド(1:On) バンド(On+1:Om) バンド(Om+1:Omax) バンド  (1:Omax) 空間並列 Tofuネットワークへのマッピング x yz CPU  space 空間並列+バンド並列 • マッピング・ルール   • 通信の最適化 各バンドグループをサブメッシュ/ トーラス・ネットワークにマッピング サブメッシュ/トーラス内で通信が閉じられる RSDFTの高並列化  -Tofuネットワークへのマッピング- 2014年5月8日 CMSI計算科学技術特論B 
  • 35. 35 35 最適マッピング → サブコミュニケータ間のコンフリクトが発生しない             MPI通信でTofu向けアルゴリズムが選択される 実行時間(秒) 0.0   30.0   60.0   90.0   120.0   マッピングなし 最適マッピング • 原子数: 19,848! • 格子数: 320x320x120! • 軌道数: 41,472! • トータルプロセス数: 12,288! ✓ 空間並列: 2,048(32x32x2)! ✓ バンド並列: 6! • 32x32x12のトーラスにマッピング MPI_Bcast MPI_Allreduce RSDFTの高並列化  -Gram-Schmidtマッピングの効果- 2014年5月8日 CMSI計算科学技術特論B 
  • 36. 36HPCS2012 SiNW,  19,848  原子,  格子数:320x320x120,  バンド数:41,472 -­‐78% -­‐79% -­‐79% 空間分割:  2,048   バンド分割:  6 Time  per  SCF  (sec.) GS CGMatE/SD RotV/SD Wait  /  orbital   Global  communication  /  orbital   Global    communication  /  space   Adjacent  communication  /  space   Computation  Space    +  Orbital Space    +  Orbital Space    +  Orbital Space    +  Orbital  Space             Space             Space               Space               -­‐78% 100.0 80.0 60.0 40.0 20.0 0.0 トータル並列プロセス数は12,288で固定 120.0 回転行列生成 空間分割:  12,288 大域通信時間を大幅に削減 RSDFTの高並列化  -マッピングの効果- 2014年5月8日 CMSI計算科学技術特論B 
  • 37. 37 DGEMM tuned for the K computer was also used for the LINPACK benchmark program. 5.2 Scalability We measured the computation time for the SCF iterations with communications for the parallel tasks in orbitals, however, was actually restricted to a relatively small number of compute nodes, and therefore, the wall clock time for global communications of the parallel tasks in orbitals was small. This means we succeeded in decreasing time for global communication by the combination Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d) RotV/SD for different numbers of cores. 0.0 40.0 80.0 120.0 160.0 0 20000 40000 60000 80000 TimeperCG(sec.) Number of cores theoretical computation computation adjacent/space global/space global/orbital 0.0 100.0 200.0 300.0 400.0 0 20,000 40,000 60,000 80,000 TimeperGS(sec.) Number of cores theoretical computation computation global/space global/orbital wait/orbital 0.0 50.0 100.0 150.0 200.0 0 20,000 40,000 60,000 80,000 TimeperMatE/SD(sec.) Number of cores theoretical computation computation adjacent/space global/space global/orbital 0.0 100.0 200.0 300.0 0 20,000 40,000 60,000 80,000 TimeperRotV/SD(sec.) Number of cores theoretical computation computation adjacent/space global/space global/orbital (d)(c) (a) (b) time as a result of keeping the block data on the L1 cache manually decreased by 12% compared with the computation time for the usual data replacement operations of the L1 cache. This DGEMM tuned for the K computer was also used for the LINPACK benchmark program. 5.2 Scalability We measured the computation time for the SCF iterations with hand, the global communication time for the parallel task orbitals was supposed to increase as the number of parallel t in orbitals increased. The number of MPI processes requi communications for the parallel tasks in orbitals, however, actually restricted to a relatively small number of compute no and therefore, the wall clock time for global communication the parallel tasks in orbitals was small. This means we succee in decreasing time for global communication by the combina Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d) RotV/SD for different numbers of cores. 0.0 40.0 80.0 120.0 160.0 0 20000 40000 60000 80000 TimeperCG(sec.) Number of cores theoretical computation computation adjacent/space global/space global/orbital 0.0 100.0 200.0 300.0 400.0 0 20,000 40,000 60,000 80,000 TimeperGS(sec.) Number of cores theoretical computation computation global/space global/orbital wait/orbital 0.0 50.0 100.0 150.0 200.0 0 20,000 40,000 60,000 80,000 TimeperMatE/SD(sec.) Number of cores theoretical computation computation adjacent/space global/space global/orbital 0.0 100.0 200.0 300.0 0 20,000 40,000 60,000 80,000 TimeperRotV/SD(sec.) Number of cores theoretical computation computation adjacent/space global/space global/orbital (d)(c) (a) (b) RSDFTの高並列化-スケーラビリティ- 2014年5月8日 CMSI計算科学技術特論B 
  • 38. 38 confinement becomes prominent. The quantum effects, which depend on the crystallographic directions of the nano- wire axes and on the cross-sectional shapes of the nanowires, result in substantial modifications to the energy-band structures and the transport characteristics of SiNW FETs. However, knowledge of the effect of the structural mor- phology on the energy bands of SiNWs is lacking. In addi- tion, actual nanowires have side-wall roughness. The effects of such imperfections on the energy bands are Table 2. Distribution of computational costs for an iteration of the SCF calculation of the modified code. Procedure block Execution time (s) Computation time (s) Communication time (s) Performance (PFLOPS/%)Adjacent/grids Global/grids Global/orbitals Wait/orbitals SCF 2903.10 1993.89 61.73 823.02 12.57 11.89 5.48/51.67 SD 1796.97 1281.44 13.90 497.36 4.27 – 5.32/50.17 MatE/SD 525.33 363.18 13.90 143.98 4.27 – 6.15/57.93 EigenSolve/SD 492.56 240.66 – 251.90 – – 0.01/1.03 RotV/SD 779.08 677.60 – 101.48 – – 8.14/76.70 CG 159.97 43.28 47.83 68.85 0.01 – 0.06/0.60 GS 946.16 669.17 – 256.81 8.29 11.89 6.70/63.10 The test model was a SiNW with 107,292 atoms. The numbers of grids and orbitals were 576 Â 576 Â 180, and 230,400, respectively. The numbers of parallel tasks in grids and orbitals were 27,648 and three, respectively, using 82,944 compute nodes. Each parallel task had 2160 grids and 76,800 orbitals. Hasegawa et al. 13 Article Performance evaluation of ultra-large- scale first-principles electronic structure calculation code on the K computer Yukihiro Hasegawa1 , Jun-Ichi Iwata2 , Miwako Tsuji1 , Daisuke Takahashi3 , Atsushi Oshiyama2 , Kazuo Minami1 , Taisuke Boku3 , Hikaru Inoue4 , Yoshito Kitazawa5 , Ikuo Miyoshi6 and Mitsuo Yokokawa7,1 Abstract The International Journal of High Performance Computing Applications 1–21 ª The Author(s) 2013 Reprints and permissions: sagepub.co.uk/journalsPermissions.nav DOI: 10.1177/1094342013508163 hpc.sagepub.com Yukihiro Hasegawa et al., http://hpc.sagepub.com/ Computing Applications International Journal of High Performance http://hpc.sagepub.com/content/early/2013/10/16/1094342013508163 The online version of this article can be found at: DOI: 10.1177/1094342013508163 published online 17 October 2013International Journal of High Performance Computing Applications Hikaru Inoue, Yoshito Kitazawa, Ikuo Miyoshi and Mitsuo Yokokawa Yukihiro Hasegawa, Jun-Ichi Iwata, Miwako Tsuji, Daisuke Takahashi, Atsushi Oshiyama, Kazuo Minami, Taisuke Boku K computer Performance evaluation of ultra-largescale first-principles electronic structure calculation code on the Published by: RSDFTの高並列化 総合性能 2014年5月8日 CMSI計算科学技術特論B 
  • 41. 41 PHASEの原理 Kohn-Sham方程式 φik  : 電子軌道(=波動関数)    i:電子準位(=エネルギーバンド量子数)   G:波数格子! k:k点 Hϕi (r) = εiϕi (r) 波数:Gによる展開 求めたい波動関数は未知の関数のため, 既知の関数の線形結合で記述する.PHASE では平面波基底を用いる. Hϕik (G) = εiϕik (G) 2014年5月8日 CMSI計算科学技術特論B 
  • 42. 42 PHASEの計算フロー |ψ> i : 波動関数 の更新  Δi+1 <= F( H|ψ>i , |ψ> i )  |ψ>i+1 <= |ψ>i + Δ i+1  |ψ>i+1 の直交化 ! ! <ψ|ψ>i+1 : 電荷の更新 H : ポテンシャルの更新 繰り返しによる更新 ・H|ψ>と|ψ>より次のステップの|ψ>の 修正量を決定する。 ・決定した修正量を加算し次のステップの |ψ>を計算する。 ・|ψ>i を直交化のために修正する。 ! ・|ψ>がある条件を満たしたら収束。 解くべき方程式 H|ψ> =εn|ψ> 2014年5月8日 CMSI計算科学技術特論B 
  • 43. 43 PHASEの並列化 i  はエネルギーバンド量子数   基本的にエネルギーバンドについて並列化されてい る   一部,波数:Gについて並列化されている   G並列の前にエネルギーバンド並列されている波動 関数をG並列可能なようにトランスバース転送が発生   G並列後にG並列されている波動関数をエネルギーバ ンド並列に戻すためなトランスバース転送が発生   このトランスバース転送のコストが大 G i G i Hϕik (G) = εiϕik (G) 2014年5月8日 CMSI計算科学技術特論B 
  • 44. 44 ■カーネルの抽出 抽出されたカーネルは以下の11区間. 区間1: Vlocalの逆FFT 区間2: Vnonlocalを波動関数ψiとβの内積fに作用 区間3: Vlocalを波動関数ψiに作用,波動関数の修正値Hψiを計算 区間4: fijt=β・ψの計算 区間5: Gram-Schmidtの直交化 区間6: 固有値計算,波動関数ψiとfiのバンド方向並べ替え 区間7: 電荷密度計算 区間8: Vlocalの逆FFT 区間9: 行列対角化計算,波動関数ψiの修正 区間10: fijt=β・ψの計算 区間11: 電荷密度,ポテンシャル,全エネルギー計算 以上のカーネルを計算特性別に分類すると3つに分類が可能である. ! 種類 区間番号 行列-行列積に書き換え可能 2,4,5,9,10 FFTを含む 1,3,6,7,8,11 対角化 9 O(N3) O(N3) O(NlogN) PHASEの並列特性分析(処理・演算量) 2014年5月8日 CMSI計算科学技術特論B 
  • 45. 45 PHASEの処理ブロック:区間2を例に示す.   低並列でストロングスケールで測定.   HfSiO2  384原子アモルファス系を測定 ! BLAS Level3 !  BLAS Level3 ( 2) ( 0 2 4 6 8 10 12 14 16 32 64 [s] S Level3 AS Level3 ( 2) 0 2 4 6 8 10 12 14 16 32 64 128 [s] original:0calc. 23axis:0calc. 23axis:0comm. 区間2: Vnonlocalを波動関数ψiとβの内積fに作用 区間4: fijt=β・ψの計算 区間10: fijt=β・ψの計算 ■行列積カーネル PHASEの並列特性分析(ブロック毎のスケーラビリティ) すでにこの並列度でスケールしていない.   原因は非並列部の残存.   区間4,10も同様 2014年5月8日 CMSI計算科学技術特論B 
  • 46. 46 PHASEの並列特性分析(ブロック毎のスケーラビリティ) ■行列積カーネル 区間5: Gram-Schmidtの直交化 演算処理 通信処理 トランスバース処理! (通信以外) PHASEの処理ブロック:区間5を例に示す.   Si512原子の結果.   低並列でストロングスケールで測定.   すでにこの並列度でスケールしていない.   演算もスケールしないが通信が増大   トランスバース転送が原因 2014年5月8日 CMSI計算科学技術特論B 
  • 47. 47 PHASEの並列特性分析(ブロック毎のスケーラビリティ) ■FFTカーネル 区間8: Vlocalの逆FFT !  FFT ( 8) ( FFT FFTW 0 2 4 6 8 10 12 14 16 18 16 [s] PHASEの処理ブロック:区間8を例に示す.   低並列でストロングスケールで測定.   すでにこの並列度でスケールしていない.   384原子,800程度のエネルギーバンド数.   エネルギーバンド並列のみでは128並列に も到達しない. 2014年5月8日 CMSI計算科学技術特論B 
  • 48. 48 対角化カーネル(区間9) HfSiO2 1,536原子,5,120元アモルファス系で測定. 500並列以上で並列オーバーヘッドが測定された. PHASEの高並列化・高性能化の結果 ■対角化カーネル ScaLAPACKを含むカーネルの並列特性. カーネル 512 (16x32) 1024 (16x64) 1536 (16x96) 2048 (16x128) 区間9 (秒) 11.4 13.8 16.5 18.8 通信 0.0 0.0 0.0 0.0 BLAS 2.1 1.1 0.7 0.5 ScaLAPACK 8.8 12.0 15.1 17.5 他 0.5 0.7 0.7 0.8 0 20 40 60 80 100 120 140 160 16x32 16x64 16x96 16x128 16x160 [s] プロセス数(バンド×波数) ScaLAPACK FFT BLAS 「京」 「京」 2014年5月8日 CMSI計算科学技術特論B 
  • 49. 49 固有値方程式 PHASEの高並列化・高性能化 エネルギーバンド(B)に加え波数(G) の並列を実装   完全な2軸並列とする   RSDFTと同様の行列行列積化も実装 Hϕik (G) = εiϕik (G) φik  : 電子軌道(=波動関数)    i:電子準位(=エネルギーバンド量子数)   G:波数格子! k:k点 2014年5月8日 CMSI計算科学技術特論B 
  • 51. 51 ■二軸並列化 • 分割粒度が大きくなる. • ループの回転長が増えることで,並列性能が高まる. • cf. バンド方向のループ長が1/9から1/3と3倍に増える. バンド 波 数 PHASEの高並列化・高性能化 ■行列積カーネル 2014年5月8日 CMSI計算科学技術特論B 
  • 53. 53 • オリジナルのFFTカーネルは波数方向に並列化されていなかった. • そのためFFTに関する通信は発生していなかった. • 二軸並列化に伴いFFTに関する通信が発生する. • FFT通信の問題は全プロセッサ間の転置通信. • 二軸並列化では通信は全プロセッサでなく一部のプロセッサに閉じる. PHASEの高並列化・高性能化 ■FFTカーネル ■二軸並列化 波数 バンド 2014年5月8日 CMSI計算科学技術特論B 
  • 54. 54 • この分野では小規模問題を短時間で計算したいという科学 的要求が高い. • バンド計算(エネルギー準位など):1万原子の1回SCF収束 で良い∼100SCF程度. • 構造緩和(MD)や反応経路探索:外側に原子核の緩和に関す るループ構造∼100step程度. • 10,000原子を10PFシステム(80,000ノード),また10,00 原子を10,000ノードで計算する事を目指せる. • ただし二軸並列はメリットとデメリットがあるため実施前 に効果が期待できるか詳細な評価を実施した. PHASEの高並列化・高性能化 ■二軸並列化 2014年5月8日 CMSI計算科学技術特論B 
  • 55. スレッド並列化   キャッシュの有効利用-行列積化 0 50 100 150 200 250 300 orinigal original+DGEMM 22axis+1threads 22axis+8threads [s] Algorithm Gram/Schmidt3orthonormalization other M× M M× V FX1(左), 「京」(右)上でのGram-Schmidt直交化の BLAS Level3適用結果 「京」 「京」FX1 PHASEの高並列化・高性能化の結果 行列積 行列ベクトル積 2014年5月8日 CMSI計算科学技術特論B 
  • 56. 56 PHASEの高並列化・高性能化の結果 ■二軸並列化 ■行列積カーネル 0.0 2.0 4.0 6.0 8.0 10.0 12.0 14.0 16.0 18.0 20.0 16 32 64 128 プロセス数 経過時間[sec] 0.0 2.0 4.0 6.0 8.0 10.0 12.0 14.0 16.0 18.0 20.0 プロセス数 経過時間[sec] 通信部 主要演算ループ 0 2 4 6 8 10 12 14 16 32 64 128 [s] プロセス数 original:0calc. 23axis:0calc. 23axis:0comm. FX1 「京」 • 行列積化されたカーネルに(区間2)ついての結果. • HfSiO2 384原子アモルファス系のデータ. • 大幅な性能向上を達成. 2014年5月8日 CMSI計算科学技術特論B 
  • 57. 57 ■二軸並列化 • FFTを含むカーネルに(区間8)ついての結果. • HfSiO2 384原子アモルファス系のデータ. • 性能向上を達成. PHASEの高並列化・高性能化の結果 ■FFTカーネル プロセス数 0.0 10.0 20.0 30.0 40.0 50.0 16 32 64 128 経過時間[sec] 0.0 10.0 20.0 30.0 40.0 50.0 プロセス数 経過時間[sec] 0 2 4 6 8 10 12 14 16 18 16 32 64 128 [s] プロセス数 original:0other original:0DGEMM original:0FFT 2:axis:0other 2:axis:0comm. 2:axis:0DGEMM 2:axis:0FFT FX1 「京」 2014年5月8日 CMSI計算科学技術特論B 
  • 58. 58 ■Scalapack分割数の固定 • 対角化はエネルギーバンド数の元を持つ行列が対象 • 行列の大きさに比べて分割数が多すぎる • 分割数を16 16=256に固定 PHASEの高並列化・高性能化の結果 ■対角化カーネル 区間9の実行時間と分割数の関係. 0 100 200 300 400 500 600 700 0 20 40 60 80 100 0 10 20 30 40 [s][s] 分割数 HfSiO4_3072 HfSiO4_6144 0 50 100 150 200 250 16x32 16x64 16x96 16x128 16x160 [s] プロセス数(バンド×波数) ScaLAPACK FFT BLAS 「京」「京」 2014年5月8日 CMSI計算科学技術特論B 
  • 59. 59 PHASEの高並列化・高性能化の結果 総合性能 「京」で測定した並列性能(SiC 3,800原子系) 0 200 400 600 800 1000 1200 1400 48 96 192 384 768 1536 3072 6114 12288 Time%[s] Process DGEMM FFT ScaLAPACK Kernel Time [sec] Efficiency of theoretical Peak SCF 39.78 20.11% DGEMM 13.19 49.73% FFT 14.46 7.86% ScaLAPACK 12.31 3.88% ■ 「京」 3,072並列にて,SiC 4,096原子計算に て,構造緩和 (263MD, 2days). ■ 「京」82,944並列にて,SiC 20,440原子計算に て,MSDソルバー効率 20.2 % (2.1 PFLOPS) 達成. 2014年5月8日 CMSI計算科学技術特論B