---
title: 第3回配信講義　計算科学技術特論B
tags: 
author: [R-CCS　計算科学研究推進室](https://www.docswell.com/user/2300203199)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/3EKDWL19JD.jpg?width=480
description: 第3回　4月25日　アプリケーションの性能最適化の実例1とCPU 単体性能とは？ 第２回で講義した「高並列性能最適化」の実例について講義する。また、第２回で述べたもう一つのポイント「単体CPU実行性能を意識したプログラミング」の基礎となる「単体CPU実行性能」について講義する。
published: April 23, 24
canonical: https://www.docswell.com/s/2300203199/5Q8VYM-2024-04-23-131837
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/3EKDWL19JD.jpg)

計算科学技術 特論Ｂ
第3回
アプリケーションの性能最適化の実例１
とCPU単体性能とは？
2024年4月
ジャパンメディカルデバイス
開発本部 本部長
南�一生
minami@jmd-corp.com
2024年4月
計算科学技術特論B
講義全体の概要
• スーパーコンピュータとアプリケーションの性能
• アプリケーションの性能最適化1(高並列性能最適化)
• アプリケーションの性能最適化の実例1とCPU単体性能と
は？
• アプリケーションの性能最適化２(CPU単体性能最適化)
• アプリケーションの性能最適化の実例2
2024年4月
計算科学技術特論B
2


# Page. 2

![Page Image](https://bcdn.docswell.com/page/L73R13Q9J5.jpg)

今回の講義内容
•RSDFTの性能最適化(高並列性能
最適化の実例)
•CPU単体性能とは？
2024年4月
計算科学技術特論B
3
RSDFTの性能最適化
(高並列性能最適化の実例)
2024年4月
計算科学技術特論B
4


# Page. 3

![Page Image](https://bcdn.docswell.com/page/87DYX4987G.jpg)

RSDFTの計算機科学的な位置付け
RSDFT
CPU 単体性能
difficult
High
easy
Low
2024年4月
計算科学技術特論B
Low
Parallelization
Parallel
Performance
difficult
5
並列性能
High
5
スーパーコンピュータを使うために(第２回)
(1)定式化(物理・数学の世界)
(2)離散化(+-×÷の世界)
(3)アルゴリズム(数学の世界)
(4)プログラミング(コンピュータの世界)
(5)並列化
(6)性能チューニング
2024年4月
計算科学技術特論B
6


# Page. 4

![Page Image](https://bcdn.docswell.com/page/VJP6PMZWE8.jpg)

離散化の結果
連立1次方程式
Ax = b
A : 行列
b : 定数ベクトル
x : 解ベクトル
固有値方程式
Ax = λ x
λ : 固有値(スカラ)
A : 行列
x : 固有ベクトル
2024年4月
計算科学技術特論B
7
離散化の結果
連立1次方程式
Ax = b
A : 行列
b : 定数ベクトル
x : 解ベクトル
固有値方程式
Ax = λ x
λ : 固有値(スカラ)
A : 行列
x : 固有ベクトル
2024年4月
計算科学技術特論B
8


# Page. 5

![Page Image](https://bcdn.docswell.com/page/2EV329W97Q.jpg)

RSDFTとは
● ナノスケールでの量子論的諸現象を第一原理に立脚して解明し新機
能を有するナノ物質・構造を予測
炭素ナノチューブでのスピン磁性
● 例えば・・・

)&gt;mVk
&amp;Ev|rsu
漏れ電流が問題
&quot;z~xFETK0 $v|rsu
ovK%
;&lt;
n-Si
  
Zlf`LSIdL=
#
PMNO
ts
w~n
QM NO
3K
LJ4 eFET
Si中原子空孔による準位の電子雲
K0 $v|rsud9
ci^_.[l_U]
 #&quot;
  #
\W\bXj9
m\FgkLSId1e
 #&quot;$
20202030c:-mDVka[l_UkS
$
$
!# dYbG
9 
cU,lK*
R
LSId+CK

,lK* d]g \U&amp;Edv|rsuX&#039;8[l_UkS
`hq}pxyn{FETe5%d&amp;E`Tka!
?[l_UkS
漏れ電流を押さえる
2024年4月
計算科学技術特論B
ov
ts
xyI
w~n
9
cH[lk0
RSDFTの原理
q}pxyn{FETd@#BAceI 26/A7X(
Kohn-Sham方程式
電子密度 n(r )=|
∑ ϕi (r )
2
波動関数
i
φi: 電子軌道（=波動関数）
ハミルトニアン
i：電子準位（=エネルギーバンド）
r：空間離散点（=空間格子）
Hϕ i (r) = ε iϕ i (r) 固有値方程式
2024年4月
計算科学技術特論B
10


# Page. 6

![Page Image](https://bcdn.docswell.com/page/57G3RZD4JL.jpg)

RSDFTの原理
実空間法
Hϕ i (r) = ε iϕ i (r) 固有値方程式
Kohn-Sham方程式を3次元格子上に
離散化し解く
ML2
各次元方向をML1,ML2,ML3等分して格子を生成
ML(=ML1×ML2×ML3）次元のエルミート行列の固
有値問題
ユニットセル（実際は3次元）
2024年4月
計算科学技術特論B
11
RSDFTの計算フロー
Self-Consistent Field procedure
1 ( CG ) 共役勾配法
2 ( GS ) Gram-Schmidt規格直交化
3 密度とポテンシャルの更新
4 ( SD ) 部分対角化
SCF計算
2024年4月
計算科学技術特論B
12


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4EQ5VL1RJP.jpg)

RSDFTの計算フロー
原子座標の読み込み
初期波動関数．初期密度の準備
原子構造の最適化
ポテンシャル計算
SCFループ
部分対角化
波動関数の更新
共役勾配法
or
波動関数の更新
最小残差法
Gram-Schmidt直交化
現時点での波動関数で密度を計算
4～5回の反復
組み合わせて使うとSCF収束が速くなる
SCFループの回数で使うルーチンを変更
変更する回数は入力で与える
scf_mix
新しい密度で局所ポテンシャルを再計算
未収束
SCF収束判定
収束
原子に働く力Fの計算
収束
原子構造の収束判定
未収束
原子の位置を少しづらす
2024年4月
計算科学技術特論B
END
13
RSDFTの並列化
J.-I. Iwata et al., J. Comp. Phys. (2010)
Real space
CPU space
Blue : Si atom
Yellow: electron density
2024年4月
計算科学技術特論B
14


# Page. 8

![Page Image](https://bcdn.docswell.com/page/KJ49MDRQ71.jpg)

RSDFTのCPU単体性能の向上
スレッド並列化
キャッシュの有効利用
計算科学技術特論B
2024年4月
15
RSDFTのCPU単体性能の向上
GramSchmidt直交化の行列積化
ψ 1&quot; =
ψ1
ψ 2&quot; =
ψ 2 - ψ 1&quot; ψ 2 ψ 1&quot;
ψ 3&quot; =
ψ 3 - ψ 1&quot; ψ 3 ψ 1&quot; - ψ 2&quot; ψ 3 ψ 2&quot;
ψ 4&quot; =
ψ 4 - ψ 1&quot; ψ 4 ψ 1&quot; - ψ 2&quot; ψ 4 ψ 2&quot; - ψ 3&quot; ψ 4 ψ 3&quot;
ψ 5&quot; =
ψ 5 - ψ 1&quot; ψ 5 ψ 1&quot; - ψ 2&quot; ψ 5 ψ 2&quot; - ψ 3&quot; ψ 5 ψ 3&quot; - ψ 4&quot; ψ 5 ψ 4&quot;
ψ 6&quot; =
ψ 6 - ψ 1&quot; ψ 6 ψ 1&quot; - ψ 2&quot; ψ 6 ψ 2&quot; - ψ 3&quot; ψ 6 ψ 3&quot; - ψ 4&quot; ψ 6 ψ 4&quot; - ψ 5&quot; ψ 6 ψ 5&quot;
ψ 7&quot; =
ψ 7 - ψ 1&quot; ψ 7 ψ 1&quot; - ψ 2&quot; ψ 7 ψ 2&quot; - ψ 3&quot; ψ 7 ψ 3&quot; - ψ 4&quot; ψ 7 ψ 4&quot; - ψ 5&quot; ψ 7 ψ 5&quot; -
ψ 6&quot; ψ 7 ψ 6&quot;
ψ 8&quot; =
ψ 8 - ψ 1&quot; ψ 8 ψ 1&quot; - ψ 2&quot; ψ 8 ψ 2&quot; - ψ 3&quot; ψ 8 ψ 3&quot; - ψ 4&quot; ψ 8 ψ 4&quot; - ψ 5&quot; ψ 8 ψ 5&quot; -
ψ 6&quot; ψ 8 ψ 6&quot;
- ψ 7&quot; ψ 8 ψ 7&quot;
ψ 9&quot; =
ψ 9 - ψ 1&quot; ψ 9 ψ 1&quot; - ψ 2&quot; ψ 9 ψ 2&quot; - ψ 3&quot; ψ 9 ψ 3&quot; - ψ 4&quot; ψ 9 ψ 4&quot; - ψ 5&quot; ψ 9 ψ 5&quot; -
ψ 6&quot; ψ 9 ψ 6&quot;
- ψ 7&quot; ψ 9 ψ 7&quot; -
オリジナルは行列ベクトル積
・
・
・
2024年4月
計算科学技術特論B
16
ψ 8&quot; ψ 9 ψ 8&quot;


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LE1K8ZQLJG.jpg)

RSDFTのCPU単体性能の向上
GramSchmidt直交化の行列積化
ベクトル積を行列積に変換
再帰分割法
三角部(DGEMV)
四角部(DGEMM)
依存関係のある三角部とない四角部にブロック化して計算
•
再帰的にブロック化することで四角部を多く確保
•
2024年4月
計算科学技術特論B
17
※ＳＤも同様に行列積化が可能
RSDFTのCPU単体性能の向上
計算コアの最適化
• 行列積化
RSDFT
• 実空間差分法
• 空間並列
ターゲット計算機：PACS-CS, T2K-Tsukuba
スレッド並列の実装
ターゲット計算機：PACS-CS, T2K-Tsukuba
2024年4月
計算科学技術特論B
18


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GEWDZ9MQJ2.jpg)

RSDFTの並列特性分析
2024年4月
計算科学技術特論B
19
RSDFTの並列特性分析(処理・演算量)
ML:格子数，MB:バンド数
ルーチン
DTCG
処理内容
演算量
MLｘML対称行列の
レイリー商
固有値，固有ベクトル
を共役勾配法で固有値
の小さいものから順に
MB本求める．
O(ML×ML)
→O(N2)
minimize
O(N2)
ψnm H KS ψ n
高並列化性能
単体性能
空間方向 △
ロード＞演算
スカラー値のallreduceがボトル 実効性能は低い
ネック．
複数バンドの一括処理が有効
（ただし，２～5程度，キャッ
シュサイズにより変わる）．
バンド方向
○
ψn ψn
GramSchmidt
規格直交化
O(MLxMB2)
→O(N３)
H m ,n = ψ m H KS ψ n
O(N3)
DIAG
○
バンド方向 △
アルゴリズム上，ロードインバ
ランスを避けられない．
三角部の処理が非並列となる
DGEMM，DGEMVが中心．
再帰分割法によりDGEMMが
支配的．
ML次元の部分空間に
限ってハミルトニアン
の対角化をする．
行列要素生成
（MatE)
n −1
&#039;
n
ψ = ψ n − ∑ψ m ψ m ψ n
O(MLxMB2)
→O(N3)
空間方向
O(N3)
バンド方向
m =1
固有値求解
(pdsyevd)
回転
(RotV)
&amp;
$
$
$
%
H N ×N
N
#&amp; #
&amp; #
!$ ! !
$! !
c
=
ε
!$ n !
$ cn !
!$ !
$ !
&quot;% &quot;
% &quot;
ψ n&#039; ( r ) = ∑ cn ,mψ m ( r )
O(MB3)→O(
N3)
O(N3)
O(MLxMB2)
→O(N3)
計算科学技術特論B
○
○
▲
高並列時のScalapackのスケー
ラビリティに疑問．
空間方向
○
バンド方向
m =1
2024年4月
空間方向
20
○
DGEMM，DGEMVが中心．
再帰分割法によりDGEMMが
支配的．
Psdyevdの下位では
DGEMM,DGEMVを使用．
DGEMM，DGEMVが中心．
再帰分割法によりDGEMMが
支配的．


# Page. 11

![Page Image](https://bcdn.docswell.com/page/47ZG19Q3E3.jpg)

RSDFTの並列特性分析(コスト)
計算機
：RICC
8,000原子：格子数120x120x120，バンド数16,000
並列数
：8x8x8（空間方向のみ）
SCFループ1回実行の実測データからSCFループ100回として実行時間を推定
処理内容
コスト
演算
プロセス間通信
初期化
パラメータの読込み
全プロセスへの転送
0.4%
Bcast，Isend/Irecv
SCF部
99.6%
O(N3)
DIAG
30.5%
O(N3)
DGEMM中心
行列生成部: Reduce, Isend/Irecv（HPSI)
固有値ソルバー部：PDSYEVD内(Bcast)
ローテーション:部分Bcast，部分Reduce
DTCG
27.4%
O(N2)
演算＜ロード
スカラー値のallreduce中心
Isend/Irecv(ノンローカル項/HPSI）
Isend/Irecv(境界データ交換/BCSET)
GramSchmidt
38.6%
O(N3)
DGEMM中心
Allreduce （内積，規格化変数）
Mixing, 途中結果の出力
3.1%
DO SCFループ(100回と仮定）
途中結果出力は毎SCFではないのでコストは
もっと少
ENDDO
2024年4月
計算科学技術特論B
21
RSDFTの並列特性分析(ブロック毎のスケーラビリティ)
計算機：T2K-Tsukuba
コンパイラ＆ライブラリ：PGI + mvapich2-medium
S方向の分割数:128, 256, 512, 1024, 2048
Si4096(格子：96x96x96，バンド：8192）
実行時間，T2K-Tsukuba
Si4,096(格子:96x96x96，バンド：8192)
速度向上率，T2K-Tsukuba
18.0
1000.0
SCF
DIAG
GS
DTCG
900.0
14.0
12.0
700.0
速度向上率
実行時間（秒）
800.0
Ideal
SCF
DIAG
GS
DTCG
16.0
600.0
500.0
400.0
10.0
8.0
6.0
300.0
200.0
4.0
100.0
2.0
0.0
0
500
128
512
(4x4x8) (8x8x8)
2024年4月
計算科学技術特論B
1,000
1,500
並列数
1024
(8x8x16)
2,000
0.0
2,500
0
2048
(8x16x16)
500
128
512
(4x4x8) (8x8x8)
22
1,000
1,500
並列数
1024
(8x8x16)
2,000
2,500
2048
(8x16x16)
22


# Page. 12

![Page Image](https://bcdn.docswell.com/page/YJ6YLK6Z7V.jpg)

そもそも並列化とは？
計算時間
通信時間
通信時間
プロセッサ１
隣接通信
プロセッサ２
大域通信
例えば総和計算
MPI_allreduce
隣接通信
プロセッサ３
隣接通信
プロセッサ４
2024年4月
計算科学技術特論B
23
MPIの概要
2024年4月
計算科学技術特論B
24


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GJ5G1P69J4.jpg)

RSDFTの並列特性分析(ブロック毎のスケーラビリティ)
Si4 0 9 6(格子:9 6x9 6x9 6，バンド:8 1 9 2)
演算時間と通信時間，T 2 K -Tsukuba
1000.0
通信(S :大域)
通信(S :隣接)
演算
900.0
800.0
実行時間（秒）
700.0
600.0
500.0
400.0
300.0
200.0
通信時間増大
100.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
0.0
SCF
DIAG
GS
並列数
DTCG
※PDSYEVDの通信は演算部に含まれている
2024年4月
計算科学技術特論B
25
RSDFTの並列特性分析(ブロック毎のスケーラビリティ)
Si4 0 9 6(格子:9 6x9 6x9 6，バンド:8 1 9 2)
演算時間と通信時間，T 2 K -Tsukuba
1000.0
通信(S :大域)
通信(S :隣接)
演算
900.0
800.0
実行時間（秒）
700.0
600.0
500.0
400.0
300.0
200.0
100.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
0.0
SCF
DIAG
GS
並列数
演算の
スケーラビリティ
悪化
DTCG
※PDSYEVDの通信は演算部に含まれている
2024年4月
計算科学技術特論B
26


# Page. 14

![Page Image](https://bcdn.docswell.com/page/LE3R13Q275.jpg)

RSDFTの並列特性分析(並列・単体性能)
ML:格子数，MB:バンド数
ルーチン
処理内容
DTCG
演算量
MLｘML対称行列の
レイリー商
固有値，固有ベクトル
を共役勾配法で固有値
の小さいものから順に
MB本求める．
O(ML×ML)
→O(N2)
minimize
O(N2)
ψ m H KS ψ n
高並列化性能
単体性能
空間方向 △
ロード＞演算
スカラー値のallreduceがボトル 実効性能は低い
ネック．
複数バンドの一括処理が有効
（ただし，２～5程度，キャッ
シュサイズにより変わる）．
通信時間増大
演算時間と逆転
並列度の不足
○
バンド方向
行列ベクトル積
性能は悪い
ψn ψn
GramSchmidt
規格直交化
O(MLxMB2)
→O(N３)
H m ,n = ψ m H KS ψ n
O(N3)
DIAG
○
通信時間減少せず
バンド方向 △
アルゴリズム上，ロードインバ
ランスを避けられない．
三角部の処理が非並列となる
DGEMM，DGEMVが中心．
再帰分割法によりDGEMMが
支配的．
演算時間と同程度
行列積化で良好
空間方向
通信時間増大
バンド方向
○
DGEMM，DGEMVが中心．
再帰分割法によりDGEMMが
支配的．
並列度の不足
Psdyevdの下位では
DGEMM,DGEMVを使用．
Scalapackのスケー
が悪い
並列度の不足
ML次元の部分空間に
限ってハミルトニアン
の対角化をする．
行列要素生成
（MatE)
固有値求解
(pdsyevd)
回転
(RotV)
n −1
O(MLxMB2)
→O(N3)
m =1
O(N3)
ψ n&#039; = ψ n − ∑ψ m ψ m ψ n
&amp;
$
$
$
%
H N ×N
#&amp; #
&amp; #
!$ ! !
$! !
!$ c n ! = ε $ c n !
!$ !
$ !
&quot;% &quot;
% &quot;
N
ψ n&#039; ( r ) = ∑ cn ,mψ m ( r )
O(MB3)→O(
N3)
O(N3)
O(MLxMB2)
→O(N3)
m =1
2024年4月
空間方向
計算科学技術特論B
O(N3)
○
演算時間と同程度
▲
高並列時のScalapackのスケー
ラビリティに疑問．
ラビリティが悪い
○
空間方向
バンド方向
○
行列積化で良好
Scalapackの性能
DGEMM，DGEMVが中心．
再帰分割法によりDGEMMが
支配的．
行列積化で良好
27
並列性能上のボトルネック
今まで示した調査を実施することにより処理ブロック毎に並列性能上の
問題がある事が発見される．
それらを分析するとだいたい以下の６点に分類されると考える．
1
アプリケーションとハードウェアの並列度のミスマッチ
(アプリケーションの並列度不足)
2
非並列部の残存
3
大域通信における大きな通信サイズ、通信回数の発生
4
フルノードにおける大域通信の発生
5
隣接通信における大きな通信サイズ、通信回数の発生
6
ロードインバランスの発生
RSDFTのボトルネック
2024年4月
計算科学技術特論B
28


# Page. 15

![Page Image](https://bcdn.docswell.com/page/8EDYX496EG.jpg)

RSDFTの高並列化
RSDFT
• 実空間差分法
• ベクトルの内積計算
計算コアの最適化
• 行列積化
ターゲット計算機：PACS-CS, T2K-Tsukuba
が基本
スレッド並列の実装
• 空間並列
2024年4月
ターゲット計算機：PACS-CS, T2K-Tsukuba
計算科学技術特論B
29
RSDFTの高並列化
RSDFT
• 実空間差分法
• ベクトルの内積計算
計算コアの最適化
• 行列積化
ターゲット計算機：PACS-CS, T2K-Tsukuba
が基本
• 空間並列
スレッド並列の実装
ターゲット計算機：PACS-CS, T2K-Tsukuba
超並列向けの実装
• バンド並列の拡張
2024年4月
EIGENライブラリ※の適用
※高速固有値ライブラリ
•
Imamura el al. SNA+MC2010 (2010)
ターゲット計算機：K computer
計算科学技術特論B
30


# Page. 16

![Page Image](https://bcdn.docswell.com/page/V7P6PM9ZJ8.jpg)

B=8;#H9F6&gt;@CE ZbTM@ !A
)3/F3&quot;7GFe+
:GDH 9F&gt;&lt;0;0Af@ *7GF&gt; 1Fe
RSDFTの高並列化
1
固有値方程式
I[`NdP^c&gt;WdUKLIA
,I[`NdP^cA $-
A]Q\TS+
2
(
3
%@25F4?%OJR.%
4
YaVdU@25F%A
5
&#039;%@25F4?%OJR.%
6
bdUJcX_cQA
の対応
&amp;A
Hϕ i (r) = ε iϕ i (r) φ : 電子軌道（=波動関数）
ML2
i
i：電子準位（=エネルギーバンド）
r：空間離散点（=空間格子）
2018年5月10日 計算科学技術 特論Ｂ
A
!30
ユニットセル（実際は3次元）

2024年4月
A
計算科学技術特論B

31
B=8;#H9F6&gt;@CE ZbTM@ !A
)3/F3&quot;7GFe+
:GDH 9F&gt;&lt;0;0Af@ *7GF&gt; 1Fe
RSDFTの高並列化
1
固有値方程式
I[`NdP^c&gt;WdUKLIA
,I[`NdP^cA $-
A]Q\TS+
2
(
3
%@25F4?%OJR.%
4
YaVdU@25F%A
5
&#039;%@25F4?%OJR.%
6
bdUJcX_cQA
の対応
&amp;A
Hϕ i (r) = ε iϕ i (r) φ : 電子軌道（=波動関数）
ML2
i
A
i：電子準位（=エネルギーバンド）
r：空間離散点（=空間格子）
2018年5月10日 計算科学技術 特論Ｂ
A
i はエネルギーバンド量子数
i についての依存関係はない
空間(S)に加えエネルギーバンド(B)
!30
の並列を実装
万を超える並列度を確保
ユニットセル（実際は3次元）
2024年4月
計算科学技術特論B
32


# Page. 17

![Page Image](https://bcdn.docswell.com/page/2JV329MMEQ.jpg)

2
(
&amp;A
RSDFTの高並列化
3 %@25F4?%OJR.% A
並列軸拡張の効果 4
YaVdU@25F%A
の対応
5 &#039;%@25F4?%OJR.%
A
空間
• 並列軸を増やす事で空間の分割
粒度を増やすことが出来る
6 bdUJcX_cQA
• 10万並列レベルに対応可能
６並列
空間大域通信
2018年5月10日 計算科学技術 特論Ｂ
• 空間並列のみの場合は全プロ
!30
セッサ間の大域通信が必要
空間
• 通信時間の増大を招く
３×２並列
• ２軸並列への書換で空間に対す
る大域通信が一部のプロセッサ
間での通信とできる
• バンドに対する大域通信も同様
空間大域通信
バンド
バンド
• 大域通信の効率化が実現可
大域通信
2024年4月
計算科学技術特論B
33
RSDFTの高並列化 - 通信の見積りと効果の予測 空間＋バンド並列版（S+B並列版）
下線はバンド並列で追加された通信
■グローバル通信
✓ALLREDUCE
➢GramSchmidt : 内積配列，規格化変数
➢DTCG : スカラー変数
✓REDUCE :
➢DIAG(MatE)
✓BCAST:
➢DIAG(RotV)
➢GramSchmidt :三角部で更新した波動関数を配送
✓ALLGATHERV
➢DIAG
➢GramSchmidt
■隣接通信
✓境界データの交換:BCSET
✓ノンローカル項計算：HPSI
✓対称ブロックデータの交換：DIAG(MatE)
2024年4月
計算科学技術特論B
34


# Page. 18

![Page Image](https://bcdn.docswell.com/page/5EG3RZGX7L.jpg)

RSDFTの高並列化- Gram-Schmidtの実装 0
三角部
1
タスクはブロック・サイクリック
で分配→負荷均等化
4
3
1
?
四角部
2
5
3
2
処理の順番
バンド並列のランク番号
?
7
6
8
3
0
10
9
6
(1) 三角部の計算
(2) 計算した値を四角部に転送（バンド方向の各プロセッサに分配）
(3) 四角部を並列に計算
2024年4月
計算科学技術特論B
35
RSDFTの高並列化 - 通信の見積りと効果の予測 ルーチン
通信パターン
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
mpi_reduce
mpi_real8
MBLK*MBLK
(MB/MBLK * MB/MBLK)/バンド並列数
Isend/irecv
mpi_real8
MBLK*MBLK
1
mpic_bcast
mpi_real8
MBSIZE*NBSIZE
(MB/MBSIZE * MB/NBSIZE)/バンド並列数
mpi_isend
mpi_real8
lma_nsend(irank)*MBLK
6*各方向の深さ*MB/MBLK/バンド並列数
mpi_irecv
mpi_real8
lma_nsend(irank)*MBLK
6*各方向の深さ*MB/MBLK/バンド並列数
: バンド方向の通信
DIAG
型
通信サイズ
通信回数
Scalapack(pdsyev
d)内の通信は省略
HPSI
BCSET
mpi_waitall
-
mpi_isend
mpi_real8
Md*MBLK
6*MB/MBLK/バンド並列数
mpi_irecv
mpi_real8
Md*MBLK
6*MB/MBLK/バンド並列数
mpi_waitall
-
-
-
36
MB/MBLK/バンド並列数
MB/MBLK/バンド並列数
MB:バンド数，NBLK:行列ｘ行列で処理する最大サイズ，NBLK1:行列ｘベクトルで処理する最小サイズ，MBSIZE:MBxMB行列の行方向のブロックサイズ，
MBSIZE:MBxMB行列の列方向のブロックサイズ，MBLK:min(MBSIZE,NBSIZE)， Md:高次差分の次数， lma_nsend:ノンローカル項の数
2024年4月
計算科学技術特論B
36


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4JQ5VLX57P.jpg)

RSDFTの高並列化 - 通信の見積りと効果の予測 ルーチン
通信パターン
DTCG
precond_cg
BCSET
HPSI
BCSET
型
通信サイズ
通信回数
mpi_allreduce
mpi_real8
MB_d
MB/MB_d/バンド並列数
mpi_allreduce
mpi_real8
MB_d
MB/MB_d/バンド並列数
mpi_allreduce
mpi_real8
MB_d
MB/MB_d*Mcg/バンド並列数
mpi_allreduce
mpi_real8
MB_d*6
MB/MB_d*Mcg/バンド並列数
mpi_allreduce
mpi_real8
MB_d
MB/MB_d*Mcg/バンド並列数
mpi_allreduce
mpi_real8
MB
2
mpi_allreduce
mpi_real8
MB_d
MB/MB_d*Mcg/バンド並列数*3
mpi_isend
mpi_real8
Md*MB_d
6*MB/MB_d*Mcg/バンド並列数
mpi_irecv
mpi_real8
Md*MB_d
6*MB/MB_d*Mcg/バンド並列数
mpi_waitall
-
mpi_isend
mpi_real8
lma_nsend(irank)* 6*各方向の深さ*MB/MB_d
MB_d
*(Mcg+1)/バンド並列数
mpi_irecv
mpi_real8
lma_nsend(irank)* 6*各方向の深さ*MB/MB_d
MB_d
*(Mcg+1)/バンド並列数
mpi_waitall
-
mpi_isend
mpi_real8
Md*MB_d
6*MB/MB_d*(Mcg+1)/バンド並列数
mpi_irecv
mpi_real8
Md*MB_d
6*MB/MB_d*(Mcg+1)/バンド並列数
mpi_waitall
-
-
-
-
MB/MB_d*Mcg/バンド並列数
MB/MB_d*(Mcg+1)/バンド並列数
MB/MB_d*(Mcg+1)/バンド並列数
MB:バンド数，MB_dバンドまとめ処理数，Md:高次差分の次数， lma_nsend:ノンローカル項の数
2024年4月
計算科学技術特論B
37
RSDFTの高並列化 - 効果の確認 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で測定
2024年4月
バンド数
計算科学技術特論B
38


# Page. 20

![Page Image](https://bcdn.docswell.com/page/K749MD6VE1.jpg)

RSDFTの高並列化 - 効果の確認 Weak Scaling 測定
S i4 0 9 6(格子:9 6x9 6x9 6,バンド:8 1 9 2)
GS, Weak Scaling, T2K-Tsukuba
Si4096(格子:96x96x96,バンド:8192)
DTCG, Weak Scaling, T2K-Tsukuba
45.0
GS
演算
通信(S :大域)
通信(B :大域)
実行時間（秒）
50.0
DTCG
演算
通信(S:隣接)
通信(S:大域)
通信(B:大域)
40.0
35.0
実行時間（秒）
60.0
40.0
30.0
20.0
30.0
25.0
20.0
15.0
10.0
10.0
5.0
0.0
0
1,000
2,000
3,000
並列数
4,000
0.0
5,000
0
20.0
15.0
10.0
5.0
5,000
RotV
演算
通信(S:大域)
25.0
20.0
15.0

10.0

5.0
0.0
0.0
0
2024年4月
4,000
30.0
実行時間（秒）
実行時間（秒）
25.0
3,000
並列数
35.0
MatE
演算
通信(S:隣接)
通信(S:大域)
30.0
2,000
Si4096(格子:96x96x96,バンド:8192)
RoTV/DIAG, Weak Scaling, T2K-Tsukuba
Si4096(格子:96x96x96,バンド:8192)
MatE/DIAG, Weak Scaling, T2K-Tsukuba
35.0
1,000
1,000
2,000
3,000
並列数
4,000
5,000
計算科学技術特論B
0
1,000
2,000
3,000
4,000
5,000
B=8;#H9F6&gt;@CE
ZbTM@ !A
並列数
)3/F3&quot;7GFe+
39
:GDH 9F&gt;&lt;0;0Af@ *7GF&gt; 1Fe
1
I[`NdP^c&gt;WdUKLIA
,I[`NdP^cA $-
A]Q\TS+
2
(
3
%@25F4?%OJR.%
4
YaVdU@25F%A
5
&#039;%@25F4?%OJR.%
6
bdUJcX_cQA
RSDFTの高並列化 -TofuネットワークへのマッピングTofuネットワーク
a軸
b軸
c軸
2024年4月
計算科学技術特論B
2018年5月10日 計算科学技術 特論Ｂ
40
&amp;A
!30
A
A


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LJ1K8ZV47G.jpg)

)3/F3&quot;7GFe+
:GDH 9F&gt;&lt;0;0Af@
*7GF&gt;
1Fe
1
I[`NdP^c&gt;WdUKLIA
,I[`NdP^cA $-
A]Q\TS+
2
(
3
%@25F4?%OJR.%
4
YaVdU@25F%A
5
&#039;%@25F4?%OJR.%
6
bdUJcX_cQA
各バンドグループをサブメッシュ/トーラス・ネット
RSDFTの高並列化 -Tofuネットワークへのマッピング空間並列
空間並列＋バンド並列
バンド(1:On)
&amp;A
A
A
Tofuネットワークへのマッピング
ワークにマッピング
2018年5月10日 計算科学技術 特論Ｂ
バンド (1:Omax)
バンド(On+1:Om)
orbital
z
Z
space
Y
!30
バンド(Om+1:Omax)
y
x
CPU space
X
•
•
マッピング・ルール

通信の最適化

B=8;#H9F6&gt;@CE ZbTM@ !A
サブメッシュ/トーラス内で通信が閉じられる
2024年4月
計算科学技術特論B
41
)3/F3&quot;7GFe+
:GDH 9F&gt;&lt;0;0Af@
*7GF&gt;
1Fe
1
I[`NdP^c&gt;WdUKLIA
,I[`NdP^cA $-
A]Q\TS+
2
(
3
%@25F4?%OJR.%
4
YaVdU@25F%A
5
&#039;%@25F4?%OJR.%
6
bdUJcX_cQA
各バンドグループをサブメッシュ/トーラス・ネット
RSDFTの高並列化 -Tofuネットワークへのマッピング&amp;A
A
Tofuネットワークへのマッピング
ワークにマッピング
2018年5月10日 計算科学技術 特論Ｂ
!30
サブメッシュ/トーラス内で通信が閉じられる
2024年4月
計算科学技術特論B
42
A


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJWDZ9LZ72.jpg)

RSDFTの高並列化 -Gram-Schmidtへのマッピング効果最適マッピング
→ サブコミュニケータ間のコンフリクトが発生しない
MPI通信でTofu向けアルゴリズムが選択される
120.0
MPI_Bcast
実行時間(秒）
90.0
•
原子数: 19,848
•
格子数: 320x320x120
•
軌道数: 41,472
•
トータルプロセス数: 12,288
✓ 空間並列: 2,048(32x32x2)
✓ バンド並列: 6
60.0
•
MPI_Allreduce
32x32x12のトーラスにマッピング
30.0
0.0
マッピングなし
2024年4月
最適マッピング
計算科学技術特論B
43
RSDFTの高並列化 -二軸並列の効果SiNW, 19,848 原子, 格子数:320x320x120, バンド数:41,472
トータル並列プロセス数は12,288で固定
-79%
100.0
-78%
60.0
40.0
-79%
20.0
空間分割: 12,288
計算科学技術特論B
MatE/SD
行列生成
RotV/SD
回転
Space
+ Orbital
Space
Space
+ Orbital
Space
Space
+ Orbital
Space
Space
+ Orbital
0.0
GS
2024年4月
Wait / orbital
Global communication / orbital
Global communication / space
Adjacent communication / space
Computation
-78%
80.0
Space
Time per SCF (sec.)
120.0
CG
空間分割: 2,048
バンド分割: 6
HPCS2012
44
大域通信時間を大幅に削減
44


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4EZG19MLJ3.jpg)

the SPARC64 VIIIfx effectively. The sustained performance
orbitals ofwas supposed
increase as the decreased
number ofinparallel
tasks to the
manually decreased by 12%
compared
with the
computation
time or 96.6%
adjacent tocommunications
proportion
DGEMM
on a compute
node
is 123.7 giga-flops,
of the
in orbitals
increased.
The
number
of
MPI processes
requiring
reciprocal
of
the
number
of
parallel
tasks
in
orbitals.
On the other
for the usual data replacement
operations
of
the
L1
cache.
This
peak performance. In particular, we found that the computation
for the
the global
parallel
tasks in orbitals,
however,
wastasks in
hand,
communication
time for
the parallel
DGEMM tuned for the
also the
used
fordata
the on the communications
timeK ascomputer
a result ofwas
keeping
block
L1 cache
orbitals
supposed
to increase
thecompute
number of
parallel tasks
actually
to a was
relatively
small
numberasof
nodes,
manually decreased by 12% compared with the computation
timerestricted
LINPACK benchmark program.
in orbitals
increased.
numbercommunications
of MPI processesofrequiring
and therefore,
the
wall clock
time The
for global
for the usual data replacement operations of the L1 cache.
This
communications
for small.
the parallel
in we
orbitals,
however, was
5.2 Scalability DGEMM tuned for the K computer was also usedthefor
the tasks
parallel
in orbitals was
This tasks
means
succeeded
actually
restricted
to
a
relatively
small
number
of
compute
LINPACK
benchmark
program.
We measured the computation time for the SCF iterations with
in decreasing time for global communication by the combination nodes,
RSDFTの高並列化-スケーラビリティ-
(b)
We measured the computation time for the SCF iterations with
400.0
160.0
(a)
(b)
theoretical computation
computation
global/space
400.0
300.0
theoretical computation
120.0
global/orbital
computation
global/space
wait/orbital
並列度のミスマッチの解消
wait/orbital
80.0
大域通信の増大の解消
100.0
200.0
40.0
80.0
40.0
100.0
0.0
0.0
0.040,000
0
60,000
Number of cores
(c)
40,000
Time per MatE/SD (sec.)
100.0
20000
0.0
(d)
150.0
80000
theoretical computation
theoretical computation
computation
computation
computation
computation
adjacent/space
adjacent/space
adjacent/space
adjacent/space
global/space
global/space
global/space
global/space
global/orbital
global/orbital
global/orbital
global/orbital
40,000
Number of cores
60,000
60,000
80,000
50.0
200.0
100.0
200.0
100.0
0.0
0.0
0
20,000
60000
Number of cores
(d)
300.0
80000
40000
theoretical computation
50.0
0
60000
20000
Number of cores
theoretical computation
100.0
0.0
40000
0
80,000
300.0
200.0
150.0
60,000
Number of cores
(c)
200.0
0
80,000
20,000
Time per RotV/SD(sec.)
20,000
Time per RotV/SD(sec.)
0
Time per MatE/SD (sec.)
adjacent/space
global/space
global/orbital
120.0
global/orbital
Time per CG (sec.)
Time per GS (sec.)
300.0
200.0
theoretical computation
computation
adjacent/space
theoretical computation
global/space
computation
global/orbital
160.0
Time per CG (sec.)
Time per GS (sec.)
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
5.2 Scalability
(a)
20,000
40,000
Number of cores
40,000
Number of cores
60,000
60,000
0
80,000
0
80,000
0.0
20,000
20,000
40,000
Number of cores
80,000
Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d)
RotV/SD for different numbers of cores.
Figure 6. Computation and communication time of (a) GS, (b) CG, (c) MatE/SD and (d)
2024年4月
RotV/SD for different numbers of cores.
計算科学技術特論B
45
RSDFTの高並列化
Hasegawa et al.
総合性能
13
Table 2. Distribution of computational costs for an iteration of the SCF calculation of the modified code.
Procedure block
SCF
SD
MatE/SD
EigenSolve/SD
RotV/SD
CG
GS
Execution
time (s)
Computation
time (s)
2903.10
1796.97
525.33
492.56
779.08
159.97
946.16
1993.89
1281.44
363.18
240.66
677.60
43.28
669.17
Communication time (s)
Adjacent/grids
Global/grids
Global/orbitals
61.73
823.02
12.57
13.90
497.36
4.27
13.90
143.98
4.27
–
251.90
–
–
101.48
–
47.83
68.85
0.01
http://hpc.sagepub.com/
–
256.81
8.29
Performance
Wait/orbitals (PFLOPS/%)
11.89
–
–
–
–
–
11.89
5.48/51.67
5.32/50.17
6.15/57.93
0.01/1.03
8.14/76.70
0.06/0.60
6.70/63.10
International Journal of High Performance
Computing Applications
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.
Article
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
Performance Performance
evaluation ofevaluation
ultra-largeof ultra-largescale
first-principles
electronic
structure
on the
ª
confinement
becomes
prominent.
Thecalculation
quantum code
effects,
K computer
scale first-principles electronic structure
depend
on theAtsushi
crystallographic
of the
nano- Boku,
Yukihiro
Hasegawa,
Jun-Ichi Iwata, Miwako Tsuji, which
Daisuke
Takahashi,
Oshiyama, directions
Kazuo Minami,
Taisuke
calculation code
on the
K computer
Hikaru Inoue, Yoshito Kitazawa,
Ikuo
Mitsuo Yokokawa
wire axes
andMiyoshi
on the and
cross-sectional
shapes of the nanowires,
Yukihiro Hasegawa et al., International Journal of High Performance Computing Applications published online 17 October 2013
result in substantial modifications to the energy-band
DOI: 10.1177/1094342013508163
Yukihiro Hasegawa1, Jun-Ichi Iwata2, Miwako Tsuji1,
structures and the transport characteristics of SiNW FETs.
Daisuke Takahashi3, Atsushi Oshiyama2, Kazuo Minami1,
The online version of this article can be found at:
3 2011年ゴードン・ベル賞受賞(世界一位)
4
5
•
However, knowledge of the effect of the structural mor,
Taisuke Boku , Hikaru Inoue , Yoshito Kitazawa http://hpc.sagepub.com/content/early/2013/10/16/1094342013508163
Ikuo Miyoshi6 and Mitsuo Yokokawa7,1
phology on the energy bands of SiNWs is lacking. In addi• ゴードン・ベル賞：アプリケーションの実際の性能と計算科学の成果
tion, actual nanowires have side-wall roughness. The
に対してアメリカ計算機学会が授与する賞
Published
by: imperfections on the energy bands are
effects
of such
Abstract
Silicon nanowires are potentially useful in next-generation field-effect transistors, and it is important to clarify the electron
unknown. The advent of reliable first-principles calculastates of silicon nanowires to know the behavior of new devices. Computer simulations are promising tools for calculating
http://www.sagepublications.com
electron states.
Real-space density functional theory (RSDFT) code performs first-principles electronic46structure
calcula2024年4月
計算科学技術特論B
tions
would provide a firm theoretical framework for the
tions. To obtain higher performance, we applied various optimization techniques to the code: multi-level parallelization,
load balance management, sub-mesh/torus allocation, and a message-passing interface library tuned for the design
K computer. of suitable SiNWs of 10,000–100,000 atoms for
We measured and evaluated the performance
of the modified
RSDFT
on the K computer.
A 5.48 petaflops (PFLOPS)
Additional
services
andcode
information
for International
Journal of High Performance Computing Applications can be found at:
sustained performance was measured for an iteration of a self-consistent field calculation for a 107,292-atomFETs.
Si nanowireOur RSDFT code enables us to achieve this impor-


# Page. 24

![Page Image](https://bcdn.docswell.com/page/Y76YLKNMEV.jpg)

1
GENESIS
多重処理
1
より効果的で安全な創薬候補物質のスクリーニングのため、タンパク質、
ンのコデザインを通して知見として蓄積される富岳向け推奨プログラム事例等は、一般の計算科
溶媒 (水分子) を含む 10 万原子の薬剤候補結合の全原子分子動力学シミュ
学アプリケーション開発者が参照することができるように、整理して文書化することとした。
レーションを 1 ケースにつき 100ns 行う。10 万ケース実行。
2重点課題ターゲットアプリケーションにおけるコデザインの実際の進行は、各
Genomon
多重処理
96
がんの解明に向けた全ゲノム解析。リード長 アプリケーショ
150 塩基対、リード数 14
億。
1
日あたり
1000
検体のスループット実現。
ン 毎に組織したワーキンググループ (WG) の中で詳細な検討と開発を進めながら、全 WG の代表
3
GAMERA
大規模単一 158976
都市域の地盤歪の計算に該当する、1 兆自由度の非構造格子有限要素モ
者が集うアプリケーション検討会において情報共有並びに関連するテーマ毎の議論を行う形式で
デルの非線形地盤地震動解析 (120 秒、12 万時間ステップ
) を実行する。
富岳コデザイン・レポート
4
NICAM+
多重処理 + 131072
局地的豪雨や竜巻などの高精度な予測を実現するため、多重ケース処理
進行した。
〜フラッグシップ 2020 プロジェクト・テクニカルレポート〜
富岳での性能
出典
型計算では、全球 3.5km 水平メッシュ1024 メンバーのアンサンブル気
象計算と観測データとの同化を３時間毎に行うシミュレーションを 2ヶ
富岳コデザイン・レポート
月間分、大規模単一問題型計算では、全球
220m 水平メッシュ鉛直 94 層
4.1.4 性能評価用ターゲット問題の設定
の大気シミュレーションを 72 時間分実行する。
〜フラッグシップ 2020 プロジェクト・テクニカルレポート〜
5
NTChem
多重処理
17820
化学反応のメカニズムを解明し、エネルギー変換材料の候補物質スクリー
富岳上での各ターゲットアプリケーションの性能を評価する基準として定められた具体的な計
ニングを行うための高精度第一原理電子状態計算の典型的計算例として、
フラッグシップ 2020 プロジェクト
理化学研究所 計算科学研究センター
720 原子、19680 電子軌道のカーボンナノグラフェン分子複合体のエネ
算問題の設定はターゲット問題と呼ばれる。ターゲット問題設定を表
4.3 にに示す。
2022 年 3 月
ルギー計算を設定する。20 ケース実行。
6
ADVENTURE 多重処理
4096
複雑な形状の構造物の最適な全体設計を実現するため、有限要素法に基
づく構造解析を行う。薄板状領域の非線形応答問題。ソリッド四面体二
表 4.3: 重点課題ターゲットアプリケーションの問題設定
次要素分割で計 16.5 億自由度。1 時間ステップ当たり BDD 反復 500 回
課題 アプリケーショ 並列処理の ノード数 問題設定
を 1 万時間ステップ実行。100 ケース実行。
番号 ン
タイプ
/ジョブ
7
RSDFT
複数の異種物質から構成されるナノ界面を解明するため、量子力学的第
1
GENESIS
多重処理
110368
より効果的で安全な創薬候補物質のスクリーニングのため、タンパク質、
フラッグシップ 2020 プロジェクト
理化学研究所
一原理計算に基づき、原子数
11 万・バンド数
22 計算科学研究センター
万・SCF200 回の SCF
溶媒
(水分子) を含む 10 万原子の薬剤候補結合の全原子分子動力学シミュ
計算によるシリコンデバイスの構造最適化の計算を行う。
24 ケース実行
レーションを
1 ケースにつき 100ns 行う。10 万ケース実行。
2022 年 3 月
する。
2
Genomon
多重処理
96
がんの解明に向けた全ゲノム解析。リード長
150 塩基対、リード数 14
8
FFB
大規模単一 158976
水力機械の内部流れや自動車の空力の乱流計算など、複雑な形状の構造
億。
1 日あたり 1000 検体のスループット実現。
物まわりの熱発生率、冷却・排気損失、ノッキング、サイクル変動等の
3
GAMERA
大規模単一 158976
都市域の地盤歪の計算に該当する、
1 兆自由度の非構造格子有限要素モ
予測の正確な評価を行うため、有限要素法に基づく流体計算を
6700 億
デルの非線形地盤地震動解析
(120 秒、12 万時間ステップ) を実行する。
要素規模で 10 万時間ステップ行う。
4
NICAM+
多重処理 + 131072
局地的豪雨や竜巻などの高精度な予測を実現するため、多重ケース処理
9
LQCD
素粒子から宇宙全体にわたる物質創成史を解明するため、クォークを
1924
LETKF
大規模単一 147456
型計算では、全球
3.5km 水平メッシュ1024 メンバーのアンサンブル気
個の格子上の場としたクォーク伝搬関数を反復解法で計算する。 2ヶ
象計算と観測データとの同化を３時間毎に行うシミュレーションを
月間分、大規模単一問題型計算では、全球 220m 水平メッシュ鉛直 94 層
の大気シミュレーションを 72 時間分実行する。
5
NTChem
多重処理
17820
化学反応のメカニズムを解明し、エネルギー変換材料の候補物質スクリー
ニングを行うための高精度第一原理電子状態計算の典型的計算例として、
720 原子、19680 電子軌道のカーボンナノグラフェン分子複合体のエネ
（注）ターゲット問題実行時における対京性能倍率：ブーストモードかつエコ無効モードで実行
ルギー計算を設定する。20 ケース実行。
6
ADVENTURE 多重処理
4096
複雑な形状の構造物の最適な全体設計を実現するため、有限要素法に基
99
づく構造解析を行う。薄板状領域の非線形応答問題。ソリッド四面体二
47
2024年4月 計算科学技術特論B
次要素分割で計
16.5 億自由度。1 時間ステップ当たり BDD 反復 500 回
を 1 万時間ステップ実行。100 ケース実行。
7
RSDFT
多重処理
10368
複数の異種物質から構成されるナノ界面を解明するため、量子力学的第
一原理計算に基づき、原子数 11 万・バンド数 22 万・SCF200 回の SCF
電力制御各モードにおける性能倍率と電力
計算によるシリコンデバイスの構造最適化の計算を行う。24 ケース実行
上段:性能倍率、下段
する。 :システム消費電力平均値および最大値
FFB
大規模単一
158976無効
水力機械の内部流れや自動車の空力の乱流計算など、複雑な形状の構造
リケーション8
エコモード
エコモード 有効
物まわりの熱発生率、冷却・排気損失、ノッキング、サイクル変動等の
ブーストモード
通常モード
ブーストモード
通常モード
予測の正確な評価を行うため、有限要素法に基づく流体計算を
6700 億
要素規模で 10 万時間ステップ行う。
性能倍率
性能倍率
性能倍率
性能倍率
9
LQCD
大規模単一 147456
素粒子から宇宙全体にわたる物質創成史を解明するため、クォークを 1924
平均電力 最大電力 平均電力
最大電力 平均電力 最大電力 平均電力 最大電力
個の格子上の場としたクォーク伝搬関数を反復解法で計算する。
LETKF
大規模単一
点課題 7 RSDFT
のコデザイン
ターゲット問題
4. ターゲットアプリケーションのコデザイン
富岳で達成された性能倍率
したコデザインの成果を反映して富岳で達成された京に対する性能倍率及び消費電力を表
に示す。
T
富岳での性能
表 4.106: RSDFT の対京性能倍率と消費電力
アプリケーション 性能倍率（注） 消費電力（注）
38 倍
RSDFT
30 MW
表 4.107: RSDFT の電力制御各モードでの比較
38 倍
25 MW
28 MW
35 倍
22 MW
25 MW
28 倍
20 MW
20 MW
CPU単体性能とは？
99
2024年4月
計算科学技術特論B
48
25 倍
17 MW
18 MW


# Page. 25

![Page Image](https://bcdn.docswell.com/page/G75G1P5Q74.jpg)

単体性能における問題点の評価法
高並列
単体性能
ソースコードの調査
現状認識
測定/評価法
計算・通信カーネルの決定
問題点把握
2024年4月
問題点の評価法
計算科学技術特論B
問題点の評価法
49
アプリケーションのタイプ
- 性能の観点から 要求B/F値が小さい計算
要求B/F値が大きい計算
行列行列積の計算
(b)
(a)
＝
2N3個の演算
行列ベクトル積の計算
(a)
×
N2個のデータ
N2個のデータ
＝
2N2個の演算
2024年4月
計算科学技術特論B
50
(b)
×
N2個のデータ
N個のデータ


# Page. 26

![Page Image](https://bcdn.docswell.com/page/9J2Y16NWJR.jpg)

メモリ・L2 キャッシュ・演算器を考慮した
第 1 章 アプリケーションのタイプ-性
メモリ・L2キャッシュ・演算器を考慮した性能モデル
性能モデル
実効演算性能
ルーフラインモデルは，
理論値と
tMとtCを⽤いたモ
実効演算性能
デルである．
5
2021年2月5日 チューニング技術説明会
図 1.1: メモリ・L2 キャッシュ・演算器を考慮した性能モデル
ルーフラインモデルは，
理論値とtMとtCを⽤いたモ
U 性能解析レポート（ビジー時間）
デルである．
2021年2月5日 チューニング技術説明会
5
は、図 1.2 に示すような
CPU 解析レポートが出力される。
1.2 節に示した tM が、この図
図 1.1: メモリ・
L2 キャッシュ・演算器を考慮した性能モデル
2024年4月
計算科学技術特論B
51
と、tL2 が、L2 キャッシュビジー時間と、tC が、浮動小数点演算器時間と、
-性能の観点から-tE が、経過
アプリケーションのタイプ
る。そのものではなく、近い値となっている理由については後述する。
CPU性能解析レポート(ビジー時間)
・CPU性能解析レポート(ビジー時間)
U 性能解析レポート（ビジー時間）
tvel3d1_12:実行時間の内訳(tune02)
 L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い
Elapsed Time(経過時間)
は、図 1.2 に示すような CPU 解析レポートが出力される。1.2 節に示した tM が、こ
と、tL2 が、L2 キャッシュビジー時間と、tC が、浮動小数点演算器時間と、
-性能の観点から-tE が、
アプリケーションのタイプ
る。そのものではなく、近い値となっている理由については後述する。
・CPU性能解析レポート(ビジー時間)
tvel3d1_12:実行時間の内訳(tune02)
 L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い
Elapsed Time(経過時間)
メモリビジー時間■
実⾏時間×メモリビジー率
FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2))
9
Copyright 2020 FUJITSU LIMITED
L2キャッシュビジー時間■
ビジー時間は前⾴の
実⾏時間×L2キャッシュビジー率
に近い 値．詳細は後述
実⾏時間×L1キャッシュビジー率
tE，tM，tL2，tc，
L1キャッシュビジー時間■
浮動⼩数点演算器ビジー時間
メモリビジー時間■
実⾏時間×浮動⼩数点演算器ビジー率
実⾏時間×メモリビジー率
2021年2月5日 チューニング技術説明会
FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2))
2024年4月
9
Copyright 2020 FUJITSU LIMITED
L2キャッシュビジー時間■
52実⾏時間×L2キャッシュビジー率
ビジー時間は前⾴の
図 1.2: CPU 性能解析レポート（ビジー時間）
計算科学技術特論B
tE，tM，tL2，tc，
6


# Page. 27

![Page Image](https://bcdn.docswell.com/page/DEYGZ9P9EM.jpg)

ら見たアプリケーションのタイプ
n 現実的には少し違うが
いえる。
n 理想的にチューニングされたアプリは実効メモリバンド幅を使い切って
理想的にチューニングされたオンメモリなアプ
いる状態
プリケーションの状況を図
1.3 に示す。
リケーションでは、理想的には、実効的なメモリバンド幅で決まるメモリビ
n L2キャッシュ/演算器は余裕がある状態
リケーション
ビジー時間から見たアプリケーション
L2 キャッシュ
メモリバンド幅を使い切っている状態であるといえる。また
n メモリビジー時間は理想的には実効的なメモリバンド幅で決まる
のタイプ 経過時間=メモリビジー時間
6
第 1 章 アプ
性能限界値
n 現実的には少し違うが
メモリ・L2キャッシュ・演算器を考慮した性能
える。
経過時間
6 n 理想的にチューニングされたアプリは実効メモリバンド幅を使い切って
第 1 章 アプリ
演算器ビジー時間
いる状態
理想的にチューニングされたオンメモリなアプリケーション
リケーションの状況を図
1.3 に示す。メモリ・L2キャッシュ・演算器を考慮した性能モ
n L2キャッシュ/演算器は余裕がある状態
性能限界値
L2キャッシュビジー時間
L1キャッシュビジー時間
経過時間=メモリビジー時間
メモリビジー時間
経過時間
演算器ビジー時間
2021年2月5日 チューニング技術説明会
7
実効演
L2キャッシュビジー時間
実効演算
図 1.3: 理想的にチューニングされたオンメモリなアプリケーション
L1キャッシュビジー時間
メモリビジー時間
7
2021年2月5日 チューニング技術説明会
ルーフライ
理論値と
tM
的にチューニングされたオンキャ
ッシュなアプリケーション 理論値と
(1)
図 1.3: 理想的にチューニングされたオンメモリなアプリケーション
デルである
ルーフライン
デルである．
アプリケーションのタイプ-性能の観点からら見たアプリケーションのタイプの２つ目は、理想的にチューニングされたオン
ンである。
2024年4月
計算科学技術特論B
53
年2月
チューニング技術説明会
20212021
年52日
月5
日 チューニング技術説明会
理想的にチューニングされたオンキャッシュな
図図1.1:
キャ
1.1:メモリ・
メモリ・L2
L2ッシュバンド幅で決まる
キャッシュ・演算器を考慮し
ッシュ・演算器を考慮した
アプリケーション(1)
ビジー時間から見たアプリケーション
プリケーションでは、理想的には、実効的な
L2 キャ
L2
にチューニングされたオンキャ
ッシュなアプリケーション (1)
n $L2ビジー時間は理想的には実効的な$L2バンド幅で決まる
のタイプ
と一致し、実効 L2
キャッシュバンド幅を使い切っている状態であるといえる。ま
6
第 1 章 アプ
n 現実的には少し違うが メモリ・L2キャッシュ・演算器を考慮した性能
態であるといえる。
-性能の観点から-第 1 章 アプリ
理想的にチューニングされたアプリは実効$L2バンド幅を使い切って
CPU
性能解析レポート（ビジー時間）
見たアプリケーションのタイプの２つ目は、理想的にチューニングされたオ
1.361.3 nCPU
性能解析レポート（ビジー時間）
メモリ・L2キャッシュ・演算器を考慮した性能モ
いる状態
理想的にチューニングされたオンキャシュなアプリケーション
プリケーションの状況を図
1.4
に示す。
n メモリ/演算器は余裕がある状態
である。
理想的にチューニングされたオンキャッシュな
「富岳」では、図
に示すようなCPU
CPU解析レポートが出力される。
解析レポートが出力される。1.1
「富岳」では、図 1.21.2
に示すような
アプリケーションのタイプ
アプリケーション(1)
リケーションでは、理想的には、実効的な
L2 経過時間=$L2ビジー時間
キャッシュバンド幅で決まる
リビジー時間と、
tL2 が、L2 キャ
ッシュビジー時間と、
tC が、浮動小数点
アプリケーションのタイプ
-性L
リビジー時間と、tL2 が、L2 キャ
ッシュビジー時間と、tC が、浮動小数点
性能限界値
-性
アプリケーションのタイプ
n $L2ビジー時間は理想的には実効的な$L2バンド幅で決まる
一致し、実効値となっている。そのものではなく、近い値となっている理由については後
L2
キャッシュバンド幅を使い切っている状態であるといえる。
経過時間
値となっている。そのものではなく、近い値となっている理由については
tvel3d1_12:実行時間の内訳(tune02)
・CPU性能解析レポート(ビジー時間)
n 現実的には少し違うが
演算器ビジー時間
tvel3d1_12:実行時間の内訳(tune02)
・CPU性能解析レポート(ビジー時間)
 L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い
であるといえる。
n 理想的にチューニングされたアプリは実効$L2バンド幅を使い切って
L2キャッシュビジー時間
 L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い
実効演
いる状態
L1キャッシュビジー時間
Elapsed
Time(経過時間)
実効演算
リケーションの状況を図
1.4 に示す。
n メモリ/演算器は余裕がある状態
メモリビジー時間
Elapsed Time(経過時間)
経過時間=$L2ビジー時間
2021年2月5日 チューニング技術説明会
性能限界値
8
経過時間
ルーフライ
ルーフライン
演算器ビジー時間
図 1.4: 理想的にチューニングされたオンキャッシュなアプリケーション
(1)
理論値と
理論値とtM
L2キャッシュビジー時間
デルである
デルである．
メモリビジー時間■
L1キャッシュビジー時間
実⾏時間×メモリビジー率
メモリビジー時間 メモリビジー時間■
54
2024年4月 計算科学技術特論B
実⾏時間×メモリビジー率
L2キャッシュビジー時間■
年2月
チューニング技術説明会
20212021
年52日
月5
日 チューニング技術説明会
実⾏時間×L2キャッシュビジー率
ビジー時間は前⾴の
FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2))
FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2))
9
9
Copyright 2020 FUJITSU LIMITED
Copyright 2020 FUJITSU LIMITED


# Page. 28

![Page Image](https://bcdn.docswell.com/page/VJNG3L5D78.jpg)

6
n 理想的にチューニングされたオンキャッシュな
演算器ビジー時間は理想的には実効的な演算器性能で決まる
n 現実的にはそれほど⾼い演算器性能か出ることは少ないが
アプリケーション(2)
n 理想的にチューニングされたアプリは実効的な演算器性能が出ている
第 1 章 アプリケーションのタイ
n 演算器ビジー時間は理想的には実効的な演算器性能で決まる
状態
n 現実的にはそれほど⾼い演算器性能か出ることは少ないが
n メモリ/$L2は余裕がある状態
ビジー時間から見たアプリケーション
のタイプ
n 理想的にチューニングされたアプリは実効的な演算器性能が出ている 第 1 章 アプ
メモリ・L2キャッシュ・演算器を考慮した性能
第 1 章 アプリケーションのタイプ
経過時間=演算器ビジー時間
6 状態
第 1 章 アプリ
理想的にチューニングされたオンキャシュなアプリケーション
n メモリ/$L2は余裕がある状態
性能限界値 メモリ・L2キャッシュ・演算器を考慮した性能モ
経過時間
演算器ビジー時間
経過時間=演算器ビジー時間
性能限界値
L2キャッシュビジー時間
経過時間
L1キャッシュビジー時間
演算器ビジー時間
メモリビジー時間
L2キャッシュビジー時間
L1キャッシュビジー時間
メモリビジー時間
2021年2月5日 チューニング技術説明会
実効演
9
実効演算
9
2021年2月5日 チューニング技術説明会
1.5: 理想的にチューニングされたオンキャ
ッシュなアプリケーション (2
ルーフライン
図 1.5: 理想的にチューニングされたオンキャッシュなアプリケーション
(2)
理論値と
ルーフライ
理論値とtM
デルである
デルである．
ーションでは、理想的には、L1D
キャッシュビジー時間が経過時間と一
リケーションのタイプ
-性能の観点から-
リケーションでは、理想的には、
キャッシュビジー時間が経過時間と一
いる状態であるといえる。L1D L1D
キャ
ッシュビジー時間は
L1D キャッシュ
-性能の観点から図図1.1:
メモリ・
1.1:ッシュビジー時間は
メモリ・L2
L2キャ
キャッシュ・演算器を考慮し
ッシュ・演算器を考慮した
的にチューニングされたオンキャッシュな
っている状態であるといえる。
L1D
キャ
L1D キャッシュの
はなく、バンド幅以外の動作にも大きく依存している。したがってメモ
ビジー時間から見たアプリケーション
プリケーションのタイプ
2024年4月
計算科学技術特論B
55
年2月
チューニング技術説明会
20212021
年52日
月5
日 チューニング技術説明会
理想的にチューニングされたオンキャッシュな
リケーション(3)
けではなく、バンド幅以外の動作にも大きく依存している。したがってメモリ
のタイプ
した方法で実効バンド幅をベースに性能のモデル化ができない。しかし理
プリケーション(3)
示した方法で実効バンド幅をベースに性能のモデル化ができない。しかし理
1D
キャ1.3
ッシュのビジー時間と経過時間は一致し、メモリ、
L2 キャッシュ
1.3 CPU
CPU
性能解析レポート（ビジー時間）
1ビジー時間は$L1の実効的なバンド幅のみでは決まらない
性能解析レポート（ビジー時間）
、L1D キャッシュのビジー時間と経過時間は一致し、メモリ、L2 キャッシュ
$L1ビジー時間は$L1の実効的なバンド幅のみでは決まらない
ド幅以外の動作に⼤きく依存している
理想的にチューニングされたオンキャシュなアプリケーション
「富岳」では、図
に示すようなCPU
CPU解析レポートが出力される。
解析レポートが出力される。1.1
バンド幅以外の動作に⼤きく依存している
し理想的にチューニングされたアプリは$L1のビジー時間と経過
「富岳」では、図
1.21.2
に示すような
ーションの状況を図
1.6 に示す。
しかし理想的にチューニングされたアプリは$L1のビジー時間と経過
リビジー時間と、
tL2 が、L2 キャッシュビジー時間と、tC が、浮動小数点
間は⼀致しメモリ/$L2/演算器は余裕がある状態となる
-性
リビジー時間と、
t
が、
L2
キャ
ッシュビジー時間と、
t
が、浮動小数点
リケーションの状況を図
1.6
に示す。
L2
C
-性
時間は⼀致しメモリ/$L2/演算器は余裕がある状態となる
アプリケーションのタイプ
アプリケーションのタイプ
値となっている。そのものではなく、近い値となっている理由については後
値となっている。そのものではなく、近い値となっている理由については
tvel3d1_12:実行時間の内訳(tune02)
・CPU性能解析レポート(ビジー時間)
経過時間=$L1ビジー時間
tvel3d1_12:実行時間の内訳(tune02)
・CPU性能解析レポート(ビジー時間)
性能限界値
性能限界値
 L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い
経過時間=$L1ビジー時間
Elapsed Time(経過時間)
 L1Dアクセス待ち時間が減少したが演算待ち時間は変わらず多い
経過時間
経過時間
演算器ビジー時間
Elapsed Time(経過時間)
演算器ビジー時間
L2キャッシュビジー時間
L2キャッシュビジー時間
L1キャッシュビジー時間
L1キャッシュビジー時間
メモリビジー時間
メモリビジー時間
メモリビジー時間■
実⾏時間×メモリビジー率
FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2))
10
10
メモリビジー時間■
L2キャッシュビジー時間■
実⾏時間×L2キャッシュビジー率
ビジー時間は前⾴の
図 1.6:
理想的にチューニングされたオンキャッシュなアプリケーション
ッシュなアプリケーション (3)
1.6:
理想的にチューニングされたオンキャ
(3
2024年4月 計算科学技術特論B
ーニング技術説明会
グ技術説明会
9
56
FUJITSU CONFIDENTIAL info for target apps for priority issues(Software Adjustment(2))
9
Copyright 2020 FUJITSU LIMITED
実⾏時間×メモリビジー率
Copyright 2020 FUJITSU LIMITED


# Page. 29

![Page Image](https://bcdn.docswell.com/page/YE9W94Y8E3.jpg)

アプリケーションのタイプ-性能の観点から見たアプリケーションのタイプの５つ目は、理想的にチューニングされて
ビジー時間から見たアプリケーション
のタイプ
ュなアプリケーションである。
充分にチューニングされていないオンメモリor
オンキャッシュなアプリケーション
リケーションでは、アプリケーションの経過時間は、どのビジー時間よりも
しない。つまりハードウェアの限界性能まで達していないこととなり、メモ
十分にチューニングされていないオンメモリ・オンキャシュ
演算器は共に余裕がある状態である。
ジー時間とも等しくない(どのビジー時間より⼤きくなる)
n 充分にチューニングされていないアプリケーションの経過時間はどのビ
n メモリ/$L2/$L1/演算器は余裕がある状態
リケーションの状況を図
1.7 に示す。
なアプリケーション
経過時間≠全てのビジー時間
性能限界値
経過時間
演算器ビジー時間
L2キャッシュビジー時間
L1キャッシュビジー時間
メモリビジー時間
11
2021年2月5日 チューニング技術説明会
十分にチューニングされていないオンメモリ or オンキャッシュなアプリケ
2024年4月
計算科学技術特論B
57
CPU単体性能から見たアプリケーション
の分類第 1 章 アプリケーションのタイプ-性能
表 1.1: CPU 単体性能からみたアプリケーションの分類
要求B/F値が小さい
番号
1
2
3
4
5
6
単体性能上の分類
行列行列積に書き換え可能
要求 B/F 値が小さくループボディがシンプル
キャッシュブロッキング可能
要求 B/F 値が小さいがループボディが複雑
要求 B/F 値が大きい
要求 B/F 値が大きくリストアクセスを使用
アプリケーション例
第一原理 (DFT) 量子計算等
高次なステンシル計算等
分子動力学・重力多体問題等
プラズマ・気象の物理過程
量子化学計算等
気象の力学過程・流体・
地震・核融合等
有限要素法を用いた構造・
流体計算等
ジー時間から見たアプリケーションのタイプと CPU 単体性能
要求B/F値が大きい
アプリケーション分類の対応
示したビジー時間から見たアプリケーションのタイプと、1.5 節で示した CPU 単体性能から
2024年4月
計算科学技術特論B
分類の関連について示す。
58


# Page. 30

![Page Image](https://bcdn.docswell.com/page/GE8N9Q6Z7D.jpg)

ビジー時間から見たアプリケーションタイプ
とCPU単体性能から見たアプリケーションの
分類の対応-性能の観点からアプリケーションのタイプ
性能の⾼い順に並べると(あくまで⽬安です)
Matrix-Matrix Multiplication
理想的な演算器チューニング
1
is applicable
が可能なオンキャッシュアプリ
DFT・・
ケーション
2.
理想的な$L1チューニングが
Required B/F value is low
2
可能なオンキャッシュアプリ
with simple loop body High Order FDM,・・
ケーション
3.
理想的な$L2チューニングが
Cache Blocking MD,N Body Problem,・・
可能なオンキャッシュアプリ
3 is applicable
ケーション
4. 本章では、今までのビジー時間の議論をもとに、
理想的なチューニングが難し
CPU
単体性能チューニングとは何か？につ
Required B/F value
is low
いオンキャッシュアプリケーショ
4
PIC,QC,・・
with complex
body
CPU
単体性能チューニングとは何かとは、
1.5loop
節に示したアプリケーション分類、
1.4 節に示
ン
5.
理想的なチューニングが可能
ションのビジー時間のタイプ、
1.6 節に示したアプリケーション分類とビジー時間のタイプの対応
Fluid Dynamics,
なオンメモリアプリケーション
5 Required B/F value is high
Stencil・・
6.
理想的なチューニングが難し
ション性能の測定結果等より、自分のプログラムがどのタイプかを見極めて、そのタイプのビジー
いオンメモリアプリケーション
本章では、今までのビジー時間の議論をもとに、
CPU 単体性能チューニングとは何か？について示す。
正当かを判断し、問題点を解消しビジー時間の最大値まで経過時間を近づけることといえる。こ
Required B/F value is high and using
第2章
CPU 単体性能チューニングとは
第2章
CPU 単体性能チューニングとは
1.
CPU単体性能チューニングとは︖
6 indirect access
CPU2.1
単体性能チューニングとは何かとは、
1.5 節に示したアプリケーション分類、1.4 節に示したアプ
を図
に示す。
FEM,・・
n 1.6
プログラムがどのタイプかを⾒極めて
ションのビジー時間のタイプ、
節に示したアプリケーション分類とビジー時間のタイプの対応、またアプ
経過時間
さらに積極的なチューニング例としては、図
2.2 に例示すように、プログラムを書き換えメモ
n そのタイプのビジー時間のグラフが正当かを判断し
演算器ビジー時間
13
ション性能の測定結果等より、自分のプログラムがどのタイプかを見極めて、そのタイプのビジー時間のグ
59
n 問題点を解消しビジー時間の最⼤値まで経過時間を
シュアクセスへ移動し、メモリアクセスを減らし
L2 キャッシュアクセスを増やし、経過時間の上
CPU単体性能チューニングとは︖
L2キャッシュビジー時間
図 1.8:正当かを判断し、問題点を解消しビジー時間の最大値まで経過時間を近づけることといえる。ここで述べ
ビジー時間から見たタイプと
CPU 単体性能からみたアプリケーション分類の対応
近づけること
L1キャッシュビジー時間
問題点を解消しビジー時間の最大値 (性能限界値) まで経過時間を近づける作業ともいえる。
年2月5日 チューニング技術説明会
2021計算科学技術特論B
2024年4月
を図 2.1 に示す。
メモリビジー時間
n プログラムがどのタイプかを⾒極めて
経過時間
さらに積極的なチューニング例としては、図
2.2 に例示すように、プログラムを書き換えメモリから
L
n そのタイプのビジー時間のグラフが正当かを判断し
演算器ビジー時間
n 問題点を解消しビジー時間の最⼤値まで経過時間を
シュアクセスへ移動し、メモリアクセスを減らし
L2 キャッシュアクセスを増やし、経過時間の上限値を下
L2キャッシュビジー時間
近づけること
CPU単体性能チューニングとは？
L1キャッシュビジー時間
問題点を解消しビジー時間の最大値 (性能限界値) まで経過時間を近づける作業ともいえる。
メモリビジー時間
CPU単体性能チューニングとは︖
ビジー時間の限界値に
近づける！
n さらに積極的なチューニング例
経過時間
n プログラムを書き換えメモリから$L2アクセスへ移動し
図 2.1: CPU 単体性能チューニングとは
(1)
演算器ビジー時間
n メモリアクセスを減らし$L2アクセスを増やし
L2キャッシュビジー時間
n 性能限界値を下げつつ問題点を解消しビジー時間の
15
L1キャッシュビジー時間
2021年2月5日 チューニング技術説明会
n さらに積極的なチューニング例
最⼤値(性能限界値)まで経過時間を近づける 経過時間
2021年2月5日 チューニング技術説明会
CPU単体性能チューニングとは︖
n プログラムを書き換えメモリから$L2アクセスへ移動し
図 2.1: CPU 単体性能チューニングとは
(1)
演算器ビジー時間
n メモリアクセスを減らし$L2アクセスを増やし
L2キャッシュビジー時間
n 性能限界値を下げつつ問題点を解消しビジー時間の
L1キャッシュビジー時間
最⼤値(性能限界値)まで経過時間を近づける
メモリビジー時間
メモリビジー時間
オンメモリからオンキャッシュ
チューニング！
その後ビジー時間の限界値
に近づける！
図 2.2: CPU 単体性能チューニングとは (2)
2021年2月5日 チューニング技術説明会
2024年4月
計算科学技術特論B
60
図 2.2: CPU 単体性能チューニングとは (2)
2021年2月5日 チューニング技術説明会
16
16
15


# Page. 31

![Page Image](https://bcdn.docswell.com/page/LELPWX917R.jpg)

なぜ経過時間&gt;ビジー時間となってしまうか？
代表的な4つの要素
(1)メモリアクセスが非効率
(2)ラインアクセスが非効率
(3)キャッシュの有効利用ができていない
(4)命令スケジューリングが非効率
・・・・・
色々な問題が考えられる
2024年4月
計算科学技術特論B
61
メモリアクセスが非効率
メモリ
１００
プリフェッチ
データ
2次キャッシュ
１０
アクセス アクセス
時間
データ
レイテンシ
（相対値）
１
レイテンシ
1次キャッシュ
(立上がり)
(立上がり)
データ
アクセス
演算器
2024年4月
レイテンシ
計算科学技術特論B
62
アクセス


# Page. 32

![Page Image](https://bcdn.docswell.com/page/4JM49LZ57W.jpg)

メモリアクセスが非効率
想定 32core/SM(Streaming Multiprocessor)
GPU 108SM/1GPU
1SMあたり32*nスレッド割当
遅いメモリと多数の演
算器への対処(GPU)
GPU
SM
SM
コア ・・
コア ・・
・・
メモリアクセスは時間がかかる
1コアが複数スレッドを担当する
複数コアを同時に動作させる
これらの大量のスレッドを動作させることで
メモリアクセスを隠蔽する
メ
モ
リ
メモリアクセス
1スレッド
演算
演算
1コア
1スレッド
2024年4月
演算
演算
1スレッド
1コア
演算
1スレッド
演算
演算
計算科学技術特論B
演算
63
ラインアクセスが非効率
メモリ
キャッシュライン256B毎(富岳)
のアクセス
データ
2次キャッシュ
データ
全部の要素を
計算に利用
1個の要素のみ
を計算に利用
効率が良い
効率が悪い
倍精度の場合，最大1/32(富岳)
1次キャッシュ
の効率に落ちる．
データ
演算器
64
2024年4月
計算科学技術特論B
64


# Page. 33

![Page Image](https://bcdn.docswell.com/page/PJRWGK6Z79.jpg)

キャッシュの有効利用ができていない
メモリ
・データ供給能力の高いキャッ
シュを設ける
・キャッシュに置いたデータを何回
も再利用し演算を行なう
・こうする事で演算器の能力を十
分使い切る
データ
2次キャッシュ
データ
再利用
ブロッキング
1次キャッシュ
データ
演算器
2024年4月
計算科学技術特論B
65
命令スケジューリングが非効率
計算時間
計算時間
SIMD+ソフトウェア
パイプラインニング
ループi
ループi
効率が良い
ループi+1
効率が悪い
2024年4月
計算科学技術特論B
ループi+1
do i=1,100
計算1
計算2
end do
この他に重要なスケジューリング機能として
アウト・オブ・オーダーがある．
66


# Page. 34

![Page Image](https://bcdn.docswell.com/page/PEXPXLM17X.jpg)

x|vE
x|vE
128byte*kty~} 128byte*kty~}
1 k&lt;5kn
@k&lt;5s
=4j.
s=4j.
1 k&lt;5kn
@k&lt;5s
=4j.
s=4j.
-[&quot;X
-[:X


M)x|
M)x|


要求B/F値と4つの要素の関係
-[:X
-[&quot;X
L)x|

L)x|

,4

要求するB/Fが小さいアプリケーション
,4

*/+QaZVbH 
*/+QaZVbH 

69kDXx




M)x|
M)x|


*.+cPgORYXH 
*.+cPgORYXH 
.

|s&gt;]rE


69kDXx
x|j7Xcs

|s&gt;]r
E
p._,4s;iY
E

x|j7Xcs
^Y`rg,4k9s
M)x|
p._,4s;iY
E
 Xr
M)x|
^Y`rg,4k9s

 Xr
-[:X
-[:X


L)x|
H&quot;=XTWbidgS
x|vE
x|vE
=4&amp;B
128byte*kty~} 128byte*kty~}
x|vE
x|vE
128byte*kty~} 128byte*kty~}
1 k&lt;5kn
@k&lt;5s
=4j.
s=4j.
R
1 k&lt;5kn
@k&lt;5s
=4j.
s=4j.
^fZQgS) L)x|
XcZVgSH(

^fZQgS) L)x|
XcZVgSH(

.
L)x|
*0+
=4&amp;B
R
-[&quot;X
-[:X
RHL
,4


,4
,4
wk&#039;.*/+QaZVbH



GH%
(1)メモリアクセスの効率化 */+QaZVbH 
&lt; ソフトウェアパイプラインニング&gt;


3d[q


M)x|
 69kDXx
|s&gt;]rE
x|j7Xcs
69kDXx
|s&gt;]r
E
p._,4s;iY
E
x|j7Xcs
^Y`rg,4k9s
p._,4s;iY
E
 Xr
^Y`rg,4k9s
 Xr
w


M)x|
M)x|
 ty~}
ty~}


PTERNLILKKE
V=4LE
V=4ME
QSPEPT
-[&quot;X

,4

RHL
-[&quot;X
Ug]Pc
4 6)
hfi\jD9:X[OGGI#!)
hfi\GX[OIjRfZRF#!)
hIkRfZRF#!)
hfi\GGX[OI]P_cPg BME=L
要求するB/Fが大きい
アプリケーション
^fZQgS)
.
例えば以下の処理をを考える。
do i=1,100
(1)
a(i)のロード
(2)
b(i)のロード
a(i)とb(i)の演算
XcZVgSH(
^fZQgS)
XcZVgSH(

L)x|
,4jty~}bkpks
アプリケーションのタイプ-性能の観点からら見たアプリケーションのタイプ
.
L)x| &amp;B
L)x|
CarpWr

4#&#039;6)
h2RfZR;-,,$
,4

,4

,4
i番目の結果のストア
end do
52,,RfZR&gt;&gt;L

理想的にチューニングされたオンメモリなアプ
演算とロード・ストア比の改善
リケーションでは、理想的には、実効的なメモリバンド幅で決まるメモリビ
リケーション


2024年4月
計算科学技術特論B
67
メモリバンド幅を使い切っている状態であるといえる。また
n メモリビジー時間は理想的には実効的なメモリバンド幅で決まる L2 キャッシュ
メモリ律速なアプリケーションの
6
第 1 章 アプ
n 現実的には少し違うが
メモリ・L2キャッシュ・演算器を考慮した性能
える。
&lt;内側ループアンローリング(2)&gt;
k{uzs j8ZrE
k{uzk,4l 2 k= E
 k%lUIOFRGIOFRHLGk= E
}tk%lUk E
_c[ef }t%l E
,4h }tk+lJhirE
irm\,4k+-sDo }tk+-s\#Zf,4h
}tk+s$sr[A&lt;E
6 n 理想的にチューニングされたアプリは実効メモリバンド幅を使い切って
第 1 章 アプリ
・以下の様な2つのコーディングを比較する。
性能見積もり
メモリ・L2キャッシュ・演算器を考慮した性能モ
いる状態
do j=1,m
リケーションの状況を図
1.3 に示す。
do i=1,n
n L2キャッシュ/演算器は余裕がある状態
x(i)=x(i)+a(i)*b+a(i+1)*d
end do
do j=1,m

do i=1,n,2
x(i)=x(i)+a(i)*b+a(i+1)*d
x(i+1)=x(i+1)+a(i+1)*b+a(i+2)*d
end do
経過時間=メモリビジー時間
性能限界値
経過時間
演算器ビジー時間
L2キャッシュビジー時間
・最初のコーディングの演算量は4、ロード／ストア回数は4である。2つ目のコーディン
グの演算量は8、ロード／ストア回数は7である。
L1キャッシュビジー時間
実効演
実効演算
・最初のコーディングの演算とロード/ ストアの比は4/4 、2つ目のコーディングの演算
メモリビジー時間
とロード/ストアの比は8/7となり良くなる。
7
2021年2月5日 チューニング技術説明会
ルーフライ
理論値とtM
図 1.3: 理想的にチューニングされたオンメモリなアプリケーション
デルである
ルーフライン
理論値と
デルである．
年2月
チューニング技術説明会
20212021
年52日
月5
日 チューニング技術説明会
2024年4月
計算科学技術特論B
図図1.1:
1.1:メモリ・
メモリ・L2
L2キャ
キャッシュ・演算器を考慮し
ッシュ・演算器を考慮した
68


# Page. 35

![Page Image](https://bcdn.docswell.com/page/3EKDWLGMJD.jpg)

Figure 1: Roofline model for (a) AMD Opteron X2 and (b) Opteron X2 vs. Opteron X4.
f-chip
be the
m permodel
nce to
d this
nal in-
Attainable GFlops/sec
64
16
ry
emo
km
pea
8
peak floating-point performance
m)
trea
th (s
dwid
ban
4
1
• アプリケーションの要求バイト値：b
アプリケーションの性能：
min（F，B*X）
1/2
1/4
1/2
1
• ハードウェアの実効的なメモリバンド幅：B
• ハードウェアのピーク性能：F
• アプリケーションの演算強度：X=f/b
• アプリケーションの要求フロップス値：f
32
2
2
4
8
16
Operational Intensity (Flops/Byte)
128
64
Attainable GFlops/s
a perdahl’s
e gain
by the
ogram
eroge-
(a)
128
4
proach
lysis.”
perfornsight
ng the
ms. In
of the
d and
ルーフラインモデル
Operational Intensity 2
(compute-bound)
and
,25
can
perforrarely
mprove
ompile diffi-
benchmark, for this work we wrote
a series of progressively optimized
microbenchmarks designed to determine sustainable DRAM bandwidth.
They include all techniques to get the
best memory performance, including
efficiency-level programmers want to
measure traffic between the caches
and DRAM. This subtle change allows
them to include memory optimizations of a computer into our boundand-bottleneck model. Second, we
Operational Intensity 1
(memory-bound)
ht into
ng proarchisigns.
model
g it on
ers usls.
S. Williams, A. Waterman, and D. Patterson: Roofline: an
(b)
insightful visual performance model for multicore architectures.
Opteron X4
Commun. ACM, 52:65–76, 2009.
32
B*X=B*(f/b)=B*F*f/(b*F)=(B/F)/(b/f)*F
Opteron X2
16
アプリケーションのピーク性能比 ：min(1.0 , (B/F)/(b/f) )
8
4
ハードウェアのB/F値をアプリ
ケーションのb/f値で割る．
2
1
1/2
2024年4月
1/4
計算科学技術特論B
1/2
69
1
2
4
8
16
Operational Intensity (Flops/Byte)
ルーフラインモデルによる性能見積り
R I L 20 09 | VO L. 5 2 | NO. 4
ベースとなる性能値(富岳1CMGの場合)
メモリ
ＢＦ比＝実効値:
バンド幅=実効値:205GB/sec
205GB/sec/768Gflops=0.26
共用Ｌ２キャッシュ 8ＭＢ／16ＷＡＹ
・
・
コア
コア
コア
Ｌ１キャッシュ64ＫB／4ＷＡＹ
・
・
・ 64Gflops*12core
=768GFLOPS
ＳＩＭＤ演算器
2GHz*8SIMD*2演算(M&amp;A)*2pipe=64GFLOPS
CMG
2024年4月
計算科学技術特論B
70


# Page. 36

![Page Image](https://bcdn.docswell.com/page/L73R13N2J5.jpg)

している。再内ループの実行回数を計算すると、3610*60*168*60=2.18G 回
は、別途測定した、671GB/sec(ピーク比 67.2%) を使用することとする。
ルーフラインモデルによる性能見積り
メモリとキャッシュアクセス(1)
配列宣言(3610,-10:70,168)
N1=3610,N2=60,N3=168
3M-2L2-2F
要求byteの算出:
24
1store,2loadと考える
24/2=12
Figure要求b/f
3.3: メモリ・
L2 キャッシュアクセスのテストプログラム
2021年2月5日 チューニング技術説明会
性能予測
0.26/12 = 0.021%
8x3 = 24byte
実測値
0.022
要求flop:
デルを使い、
3M-2L2-2F のプログラムについて
tM を計算する。
メモリのデータ
アプリケーションのピーク性能比
の予測値
add
: 1+mult : 1 = 2
: ハードウェアのBF値(実効値)/アプリの要求bf値
となり、メモリベース見積もり時間
: tM =52.32GB/(205GB/sec)=0.255sec とな
2 を計算する。L2 キャッシュアクセスするデータ量は、L2 キャッシュアクセスする
クセスする要素:3 個:24B を加算したものになる。したがって L2 キャッシュに対す
24)B=87.2GB となり、L2 キャッシュベースの見積もり時間: tL2 =87.2GB/(671G
したモデルでは、経過時間:tE は、tM と tL2 の MAX で計算されるため、メ
過時間となる。3M-2L2-2F のプログラム CPU 性能解析レボートの結果を図
•RSDFTの性能最適化(高並列性能最適化実例)
積もり通りになっていることが分かる。
CPU 性能解析レポートのメモリビジ
•CPU単体性能とは？
行時間と一致するはずだが少なめになる傾向がある。また
L2 キャシュのビジ
ース⾒積もり&gt;$L2ベース⾒積もりのケース
0.13sec になるはずであるが、非常に大きく出ている。これらは前述した傾向
• アプリケーションのタイプ- 性能の観点から • メモリ・L2 キャッシュ・演算器を考慮した性能モデル
のケースの⾒積もり．
• CPU性能解析レポート(ビジー時間)
移動量 :
• ビジー時間から見たアプリケーションのタイプ
=52.32GB
• CPU単体性能から見たアプリケーションの分類
積もり時間:
• ビジー時間から見たアプリケーションタイプとCPU単体性能
=0.255sec
から見たアプリケーションの分類の対応
移動量 :
• CPU単体性能チューニングとは？
+24)B=87.2GB
積もり時間:
• ルーフラインモデル
0.130sec
• ルーフラインモデルによる性能見積り
2024年4月
計算科学技術特論B
ss wait &amp; Cache access wait
er load Integer load
cache
L1D cache
ss wait
access wait
Operation wait
Floating-
Floating-
point load L2
cache access
wait
71
point load
Integer
L1D cache
operation
access wait
wait
(*)
Other wait
Floatingpoint
operation
Branch
instruction
wait
wait
まとめ
Other wait
Store port
Instruction
busy wait
fetch wait
Other instruction commit
Barrier
synchronizati
on wait
1 instruction
commit
2 instruction 3 instruction 4 instruction
commit
commit
commit
Other
instruction
commit
.60E-05
8.06E-05
3.70E-02
1.63E-02
7.19E-05
7.16E-05
2.19E-06
1.43E-05
0.00E+00
1.06E-04
1.34E-03
2.05E-03
4.31E-03
1.48E-03
1.40E-02
1.26E-05
.59E-05
5.75E-05
3.31E-02
1.78E-02
6.86E-05
7.61E-05
1.74E-06
8.61E-06
0.00E+00
5.82E-05
2.08E-03
2.12E-03
4.17E-03
1.55E-03
1.40E-02
0.00E+00
.21E-05
.62E-05
7.20E-05
6.65E-05
3.51E-02
3.68E-02
1.75E-02
1.64E-02
6.11E-05
6.69E-05
7.66E-05
7.99E-05
1.48E-06
1.51E-06
8.72E-06
1.02E-05
0.00E+00
0.00E+00
5.44E-05
6.61E-05
1.91E-03
1.64E-03
2.06E-03
2.11E-03
4.19E-03
4.25E-03
1.50E-03
1.53E-03
1.40E-02
1.40E-02
0.00E+00
0.00E+00
.60E-05
.87E-05
7.63E-05
6.65E-05
3.88E-02
3.75E-02
1.73E-02
1.80E-02
6.55E-05
7.50E-05
8.73E-05
7.90E-05
1.54E-06
1.50E-06
9.81E-06
8.77E-06
0.00E+00
0.00E+00
6.24E-05
5.80E-05
1.90E-03
1.94E-03
2.13E-03
2.11E-03
4.23E-03
4.28E-03
1.56E-03
1.56E-03
1.40E-02
1.39E-02
0.00E+00
0.00E+00
.86E-05
7.25E-05
4.00E-02
1.61E-02
6.92E-05
7.01E-05
1.45E-06
8.94E-06
0.00E+00
5.59E-05
1.64E-03
2.12E-03
4.30E-03
1.56E-03
1.39E-02
0.00E+00
.86E-05
.38E-05
7.10E-05
7.65E-05
4.14E-02
4.47E-02
1.66E-02
1.37E-02
7.86E-05
7.80E-05
8.45E-05
8.32E-05
1.53E-06
1.58E-06
9.89E-06
9.01E-06
0.00E+00
0.00E+00
6.40E-05
5.48E-05
1.80E-03
1.60E-03
2.09E-03
2.12E-03
4.29E-03
4.20E-03
1.53E-03
1.54E-03
1.40E-02
1.40E-02
0.00E+00
0.00E+00
.60E-05
5.86E-05
4.47E-02
1.46E-02
7.95E-05
8.77E-05
1.54E-06
8.41E-06
0.00E+00
5.33E-05
1.79E-03
2.06E-03
4.38E-03
1.47E-03
1.40E-02
0.00E+00
.03E-05
7.78E-05
4.44E-02
1.60E-02
7.40E-05
8.91E-05
1.56E-06
8.50E-06
0.00E+00
5.31E-05
1.21E-03
2.11E-03
4.28E-03
1.56E-03
1.39E-02
0.00E+00
.97E-05
.93E-05
6.73E-05
7.03E-05
4.39E-02
3.98E-02
1.51E-02
1.63E-02
7.64E-05
7.21E-05
8.59E-05
8.09E-05
1.55E-06
1.60E-06
8.39E-06
9.46E-06
0.00E+00
0.00E+00
5.39E-05
6.16E-05
1.85E-03
1.72E-03
2.03E-03
2.09E-03
4.36E-03
4.27E-03
1.46E-03
1.52E-03
1.40E-02
1.40E-02
0.00E+00
1.05E-06
(*) Include wait time for integer L1D cache access
Cache L1D,L2 miss rate (/Loadstore instructions)
Cycle Accounting execution time(s)
3.0E-01
Other instruction commit
4 instruction commit
3 instruction commit
software prefetch rate(L1D,L2 miss)
hardware prefetch rate (L1D,L2 miss)
2 instruction commit
1 instruction commit
2.5E-01
Barrier synchronization wait
demand rate(L1D,L2 miss)
Instruction fetch wait
00
Store port busy wait
2.0E-01
Other wait
90
Branch instruction wait
Floating-point operation wait
80
1.5E-01
Integer operation wait
70
Floating-point load L1D cache access wai
60
⾒積もりの⽅が⼤きく
50
55secとなる．
55であり⾒積と⼀致
40
Floating-point load L2 cache access wait
30
2024年4月
Integer load L1D cache access wait
1.0E-01
Integer load L2 cache access wait
Floating-point load memory access wait
計算科学技術特論B
5.0E-02
72
Integer load memory access wait
Prefetch port busy wait by software prefe
Prefetch port busy wait by hardware pref


# Page. 37

![Page Image](https://bcdn.docswell.com/page/87DYX4W67G.jpg)

2024年4月
計算科学技術特論B
73


