2.7 電磁場解析コード ADVENTURE_Magnetic 性能評価
名古屋大学情報基盤センター
荻野 正雄
2.7.1 はじめに

ADVENTURE とは、設 計 用 大 規 模 計 算 力 学 システム開 発 プロジェクト(通 称 ADVENTURE プロジェクト)において開 発 されているオープンソース CAE システムである。大 規 模 メッシュを用 いて自 然 物 や人 工 物 を丸 ごと詳 細 にモデル化 し、多 様 な並 列 分 散 計 算 機 環 境 のもとで固 体 の変 形 や熱 ・流 体 の流 れ等 の力 学 解 析 から可 視 化 、設 計 最 適 化 までを行 える特 徴 がある。無 料 公 開 されていることもあり、
教 育 ・研 究 から産 業 応 用 まで幅 広 く利 用 されているソフトウェアである。ここでは、電 磁 場 解 析 モジュール ADVENTURE_Magnetic の測 定 を行 う。ADVENTURE_Magnetic は、非 線 形 静 磁 場 問 題 、時 間
調 和 渦 電 流 問 題 、さらに非 定 常 渦 電 流 問 題 の有 限 要 素 解 析 機 能 を有 しており、磁 気 ベクトルポテ
ンシャルを未 知 数 とする𝐴𝐴法 または𝐴𝐴 − 𝜙𝜙法 の定 式 化 、ベクトル関 数 を要 素 辺 上 で評 価 する Nédélec

要 素 を用 いている。また、非 構 造 格 子 を用 いた有 限 要 素 解 析 では、大 規 模 で疎 な行 列 を係 数 に持つ連 立 一 次 方 程 式 を解 く必 要 があり、マルチコア・メニーコア上 で高 い並 列 効 率 や演 算 効 率 を出 す
ことが困 難 な分 野 とされている。これに対 し、ADVENTURE_Magnetic は領 域 分 割 法 (Domain Decomposition Method: DDM)を採 用 することで、分 散 メモリ型 並 列 環 境 において高 い並 列 効 率 が得 られ、将 来 の計 算 機 においても高 性 能 な計 算 が期 待 できるアプリケーションである。
2.7.2 プログラム概要

今 回 は時 間 調 和 渦 電 流 問 題 と非 定 常 渦 電 流 問 題 解 析 を対 象 とする。𝐴𝐴 − 𝜙𝜙法 による定 式 化 は時間 調 和 渦 電 流 問 題 が、�𝜈𝜈 rot 𝐴𝐴ℎ , rot 𝐴𝐴∗ℎ � − �𝑖𝑖𝑖𝑖𝑖𝑖 𝐴𝐴ℎ , 𝐴𝐴∗ℎ � + �𝜎𝜎 grad 𝜙𝜙ℎ , 𝐴𝐴∗ℎ � = �𝐽𝐽̃ℎ , 𝐴𝐴∗ℎ �非 定 常 渦 電 流 問 題 が、(1a)�𝜎𝜎 grad 𝜙𝜙ℎ , grad 𝜙𝜙ℎ∗ � − �𝑖𝑖𝑖𝑖𝑖𝑖 𝐴𝐴ℎ , grad 𝜙𝜙ℎ∗ � = 0∗�𝜈𝜈 rot 𝐴𝐴𝑛𝑛+1ℎ , rot 𝐴𝐴ℎ � + �𝜎𝜎Δ𝑡𝑡(1b)𝑛𝑛+1∗∗
̃𝑛𝑛+1 , 𝐴𝐴∗ℎ � + � 𝜎𝜎 𝐴𝐴𝑛𝑛ℎ , 𝐴𝐴∗ℎ �𝐴𝐴𝑛𝑛+1ℎ , 𝐴𝐴ℎ � + �𝜎𝜎 grad 𝜙𝜙ℎ , 𝐴𝐴ℎ � = �𝐽𝐽ℎ𝑛𝑛+1𝑛𝑛∗∗∗
�𝜎𝜎 𝐴𝐴𝑛𝑛+1ℎ , grad 𝜙𝜙ℎ � + Δ𝑡𝑡�𝜎𝜎 grad 𝜙𝜙ℎ , grad 𝜙𝜙ℎ � = �𝜎𝜎 𝐴𝐴ℎ , grad 𝜙𝜙ℎ �Δ𝑡𝑡(2a)(2b)となる。ここで、𝐴𝐴は磁 気 ベクトルポテンシャル、𝜙𝜙は電 気 スカラーポテンシャル、𝜈𝜈は磁 気 抵 抗 率 、𝐽𝐽は電流 密 度 、𝑖𝑖は虚 数 単 位 、𝜔𝜔は角 周 波 数 、𝜎𝜎は導 電 率 、𝛥𝛥𝛥𝛥は時 間 刻 み幅 、下 付 き添 え字 ℎは有 限 要 素近 似 、上 付 き添 え字 ∗は任 意 の試 験 関 数 、上 付 き添 え字 𝑛𝑛は時 間 ステップを表 す。式 (1)-(2)より、最終 的 に解 くべき式 は時 間 調 和 渦 電 流 問 題 で複 素 対 称 連 立 一 次 方 程 式 、非 定 常 渦 電 流 問 題 で実対 称 連 立 一 次 方 程 式 となる。さらに、ADVENTURE_Magnetic における DDM では、解 くべき連 立 一次 方 程 式 を Schur 補 元 方 程 式 へと変 換 する方 法 を採 用 している。まず、解 くべき式 を次 式 で表 す。
𝐊𝐊𝐊𝐊 = 𝐛𝐛(3)

ここで、係 数 行 列 𝐊𝐊は大 規 模 かつ疎 な行 列 となる。次 に、FEM のメッシュを𝑁𝑁個 の部 分 領 域 に分 割 し、領 域 間 境 界 上 自 由 度 への静 的 縮 約 を行 うことで、次 式 で表 される Schur 補 元 方 程 式 が得 られる。
(𝑖𝑖)𝑇𝑇(𝑖𝑖)(𝑖𝑖) (𝑖𝑖)† (𝑖𝑖)(𝑖𝑖)(𝑖𝑖)𝑇𝑇(𝑖𝑖)(𝑖𝑖) (𝑖𝑖)−1 (𝑖𝑖)𝑁𝑁
∑𝑁𝑁𝐛𝐛𝐼𝐼 �𝑖𝑖=1 𝐑𝐑 𝐵𝐵 �𝐊𝐊 𝐵𝐵𝐵𝐵 − 𝐊𝐊 𝐵𝐵𝐵𝐵 𝐊𝐊 𝐼𝐼𝐼𝐼 𝐊𝐊 𝐼𝐼𝐼𝐼 � 𝐑𝐑 𝐵𝐵 𝐱𝐱 𝐵𝐵 = ∑𝑖𝑖=1 𝐑𝐑 𝐵𝐵 �𝐛𝐛𝐵𝐵 − 𝐊𝐊 𝐵𝐵𝐵𝐵 𝐊𝐊 𝐼𝐼𝐼𝐼(4)

ここで、𝐑𝐑は全 体 から部 分 領 域 への自 由 度 制 限 行 列 、下 付 き添 え字 𝐵𝐵は領 域 間 境 界 上 自 由 度 に関する項 、𝐼𝐼は部 分 領 域 内 部 自 由 度 に関 する項 、上 付 き添 え字 (𝑖𝑖)は部 分 領 域 𝑖𝑖に関 する項 、𝑇𝑇は転 置

127 / 253

行 列 、†は一 般 化 逆 行 列 を表 す。この式 は、非 定 常 渦 電 流 問 題 であれば共 役 勾 配 （CG）法 、時 間 調
和 渦 電 流 問 題 は共 役 直 交 共 役 勾 配 （COCG）法 などで解 くことができる。また、必 要 となる係 数 行 列と修 正 方 向 ベクトルの積 演 算 は第 3 回 WG 資 料 7 ページに示 すように、部 分 領 域 ごとの疎 行 列 ベク
トル積 演 算 2 回 と連 立 一 次 方 程 式 解 析 1 回 に置 き換 えられ、部 分 領 域 ごとの連 立 一 次 方 程 式 は不完 全 コレスキー分 解 前 処 理 付 きの CG 法 または COCG 法 で解 いている。疎 行 列 の格 納 形 式 は CSRを用 いている。
次 に、ADVENTURE_Magnetic のコーディング指 針 について述 べる。本 プログラムは C 言 語 で記 述されている。前 述 のとおり複 数 の解 析 機 能 があるが、それらは有 限 要 素 法 や領 域 分 割 法 の実 装 で共通 化 できる箇 所 が多 く、また線 形 代 数 関 係 コードも実 数 と複 素 数 の違 い以 外 はほぼ共 通 化 できる。
そこで、第 3 回 WG 資 料 8 ページに示 すように、共 通 コードとマクロ定 義 の組 み合 わせで全 体 のプロ
グラム行 数 を削 減 する工 夫 が行 われている。今 回 はこのようなコードの性 能 評 価 結 果 について紹 介する。
2.7.3 測定環境性 能 測 定 には、名 古 屋 大 学 情 報 基 盤 センターの FX10 と FX100、及 び理 化 学 研 究 所 の京 を使 用した。それぞれの環 境 におけるコンパイラとコンパイラオプションは WG 資 料 に示 す通 りである。
2.7.4 測定結果

まず、ADVENTURE_Magnetic の共 通 化 コードとマクロ定 義 の組 み合 わせによるプログラムに対 する
コンパイラの最 適 化 情 報 について述 べる。第 3 回 WG 資 料 8 ページに示 すように、C プログラムのソースファイルを#include 指 示 で取 り込 んでおり、定 義 したマクロによって例 えば実 数 向 け・複 素 数 向 けとなるように実 装 されている。このようなプログラムを富 士 通 社 製 コンパイラにかけた場 合 、最 適 化 情 報を含 んだソースリストが表 示 されず、最 適 化 作 業 が行 いづらいという問 題 が生 じた。そこで今 回 は、ソースリストを見 るためにインクルードするソースファイルを手 動 で取 り込 んだファイルを別 途 用 意 することで、その問 題 を回 避 した。
次 に、ADVENTURE_Magnetic と同 様 に領 域 分 割 法 を採 用 する構 造 解 析 コード ADVENTURE_Solid の演 算 性 能 について述 べる。第 3 回 WG 資 料 10 ページに示 すように、FX10 においてピーク性 能比 4%以 上 が得 られていた。これは、3 次 元 構 造 解 析 では節 点 あたり 3 自 由 度 を持 つため、それを利用 して手 動 ループアンローリングが可 能 であったことが要 因 の 1 つである。しかし、ADVENTURE_Mag
netic では要 素 辺 あたり 1 自 由 度 のみのため、同 様 の最 適 化 を行 えない。これにより、ピーク性 能 比 は
構 造 解 析 に比 べて低 下 することが予 想 される。実 測 した結 果 を第 7 回 WG 資 料 に示 す。6 ページに
as is コード、コンパイラへの最 適 化 指 示 行 追 加 、一 部 のループ入 れ替 え、realloc 関 数 呼 び出 し削
減 を行 ったコードでの FX100 におけるピーク性 能 比 を示 す。非 定 常 渦 電 流 問 題 でピーク性 能 比 0.7～0.9%、時 間 調 和 渦 電 流 問 題 で 1.6%～2.4 程 度 であり、実 数 問 題 における性 能 の低 さが際 立 つ結果 となった。一 方 、複 素 数 の乗 算 は実 数 に比 べて演 算 強 度 が大 きくなるため、実 行 効 率 が高 くなったと言 える。この複 素 数 問 題 の場 合 について、京 、FX10、FX100 で比 較 した結 果 を 7 ページに示 す。
これより、京 や FX10 に比 べて FX100 での実 行 効 率 が大 きく下 がっていることが分 かる。この点 について考 察 する。FX100 はノードあたり 32 コアで京 の 8 コアや FX10 の 16 コアに比 べて増 加 しているが、FX100 では Core Memory Group（CMG）あたり MPI プロセスを 1 つ起 動 させているため、プロセスあたりのコア数 は FX10 と同 数 であり、8 ページに示 すようにスレッド並 列 効 率 の結 果 も FX10 と同 程 度

128 / 253であった。そこで SIMD 率 （11 ページ）を調 べたところ、FX10 に比 べて半 分 以 下 になっており、FX100の 4way SIMD を十 分 に活 かせていないことが分 かった。この点 は今 後 改 善 する必 要 がある。
また、三 吉 委 員 より、9 ページの高 コスト関 数 リストで「__lll_lock_wait」や「__pthread_mutex_unlock_usercnt」が上 位 にきており、メモリ獲 得 をマスタースレッド以 外 でも頻 繁 に行 っているプログラムであれ
ば、「XOS_MMM_L_ARENA_LOCK_TYPE=0」の環 境 変 数 を指 定 するよう助 言 を頂 いた。その結 果 を次 表 に示 す。表 より、同 環 境 変 数 の指 定 が有 効 であることが分 かった。
表 1 時 間 調 和 渦 電 流 問 題 における実 行 効 率 [%]の比 較
FX100
as is

1.64+realloc 呼 び出 し削 減

2.43

環境変数指定2.95

2.7.5 まとめ今 回 の測 定 で得 られた知 見 は以 下 の通 りである。
a) #include 指 示 行 で取 り込 むファイルに対 しては、コンパイラによる最 適 化 情 報 付 きソースリストは出力 されない。
b) 複 素 数 の疎 行 列 ベクトル積 が主 な計 算 となる領 域 分 割 法 において、京 や FX10 に対 し FX100 では実 行 効 率 が半 分 以 下 に低 下 した。SIMD 率 も半 分 以 下 に低 下 しており、SIMD 幅 増 加 に対 して複素 数 四 則 演 算 の効 率 的 な実 装 が必 要 となる。
c) スレッド並 列 処 理 時 にマスタースレッド以 外 でもメモリ確 保 ・解 放 を繰 り返 す領 域 分 割 法 コードでは、”XOS_MMM_L_ARENA_LOCK_TYPE=0”の指 定 が有 効 である。

129 / 253

アプリ性能評価
電磁場解析「ADVENTURE_Magnetic」
荻野正雄 (名古屋大学)
2014年10月1日
第3回SS研ポストペタアプリ性能WG
第3回WG資料

1

ADVENTUREシステム
External CAD

Utilities
iAgentMaterial
FEMAPtool
onWindows

CAD
TriPatch

Opt Shape
AutoTetMesh
BCtoolIO

MetissFlow
Solid Thermal Fluid
Impact Forge Magnetic

今回の対象アプリVisual
Bold: Parallel modules

第3回WG資料130 / 2532

ADVENTURE_Magneticの概要• 電磁場解析ADVENTURE_Magnetic– 最新バージョン: 1.5 (2014年3月19日公開)– 有限要素法(FEM)による電磁場解析• 非線形静磁場問題, 時間調和渦電流問題, 非定常渦電流問題• A法またはA‐法による定式化• 陰解法• Nédélec四面体1次要素 (ベクトル関数を要素辺上で評価)– 領域分割法(DDM)• Glowinski '84に基づく定式化• 領域分割数N >= プロセス数Np• 計算ノード内は部分領域ループをスレッド並列処理– 言語• C, OpenMP, MPI
第3回WG資料

3定式化• 静磁場問題rot

実数, 対称∗, rot

AはNédélec四面体1次∗,• 時間調和渦電流問題 複素数, 対称rot , rot ∗grad , grad∗,∗grad, grad

• 非定常渦電流問題
rot∗, rot, grad∗

ΔΔ,grad

∗

∗,,

∗0

φは四面体1次

実数, 対称∗

grad, grad∗,∗, grad,∗∗

Δ: 磁気ベクトルポテンシャル Wb/m , : 電気スカラーポテンシャル V ,: 磁気抵抗率 m/H , : 電流密度 A/m , : 虚数単位, : 角周波数 rad/s ,0 , Δ : 時間刻み幅 s: 導電率 S/m 不導体領域では第3回WG資料
131 / 253,∗4領域分割法(DDM)• 線形化された方程式• Non‐overlapping領域分割

辺自由度

領域分割

• Schur補元方程式
ただし,

Krylov部分空間法(CG, COCG)で解く,
領域内部辺(I)または部分領域ごとの項を用いて,,袖領域辺(B),, 第3回WG資料

5DDMの実装例• 一般的な実装 (ADVENTUREなど)– Schur補行列を陰に構築
行列ベクトル積演算←• 河合らによる実装 (ADV‐K, '12)
– 部分領域(i)のローカルSchur補行列を陽に構築
行列ベクトル積演算←全体行列の成分が不明のため, 評価できる反復法・前処理法が限定される• 屋・荻野による実装 (LexADV_TryDDM, '13)
– 全体行列を陽に構築
行列ベクトル積演算←6
第3回WG資料
ほとんどの反復法・前処理法が評価可能で,新しい前処理の開発コストも低い
132 / 253ADVENTUREにおけるコア部分
Schur補行列‐ベクトル積演算• 部分領域ループ内– ① 疎行列ベクトル積– ② ICCG/ICCOCG法で解く

1
1,,

←,

solve,,,,

←

①,,,,

←

• ②－１ 疎行列ベクトル積• ②－２ 前進後退代入②,③– ③ 疎行列ベクトル積,←

第3回WG資料7ADVENTURE_Magneticの特徴• コーディング指針– 静磁場・渦電流(2種)でFEMやDDM等のコードを共通化– 実数・複素数で線形代数関係のコードを共通化
共通コード＋異なるマクロ#define _real_#include "common.c"#define _complex_#include "common.c"

コンパイラによる最適化情
報付きソースリストが出力されない箇所が多い

コード例(DAXPY)
3017
3018
3019
3020
3021

8
8
8for( i=0 ; i<nf ; i++ ) {MTYPE dd ;MMULTI( dd, alpha, aq[i] ) ;MPLUS( r[i], r[i], dd ) ;}第3回WG資料133 / 253

SIMD化されない原因が分からないことが多い...

8数値実験
• テスト問題– 時間調和／非定常渦電流– 無限長ソレノイドコイル→ 長さ0.1m, 中心角20°モデル– 100万(複素)自由度メッシュ• 使用計算機– 名古屋大学Fujitsu PRIMEHPC FX1012ノード– コンパイラオプション"‐Kfast,ocl,restp=arg,simd=2,openmp"(名大標準) "‐Kfast ‐g ‐Ntl_trt ‐Xa ‐NRtrap""‐ipo"を指定しようとしたが,名大標準で"‐g"があるので無効になってしまった
第3回WG資料9ADVENTURE_Solidのピーク性能比
第9回マルチコアWG時の資料(# Nodes)(12) (24)(6) (12)(24) (48)

第3回WG資料134 / 253(6) (12)
10

"AS IS"コードのピーク性能比
処理

OpenMP並列化ループ

Time‐Harmonic(Complex) [%]Non‐Steady(Real) [%]all‐

2.170.43

SolveDom

内3.020.67

LoopPart

外3.61

0.72

SolverCG②式のCG法計算

内

3.55

0.87

mymtMxV
疎行列ベクトル積

内

3.46

1.12

mymtSetBC
境界条件処理

内

8.54

0.20

mymtMakeICC, IC分解

内

0.32

0.27

mymtSetICC, IC前処理

内

3.68

2.01

RealInner, ドット積

内外

0.00

0.45

第3回WG資料11

簡単な改良後のピーク性能比
処理

Time‐Harmonic(Complex) [%]Non‐Steady(Real) [%]

AS IS

TUNED

AS IS

TUNED

all

2.17

2.60

0.43

0.50

SolveDom

3.02

4.09

0.67

0.77

LoopPart

3.61

5.07

0.72

0.83

SolverCG

3.55

3.71

0.87

0.90

mymtMxV

3.46

3.77

1.12

1.19

mymtSetBC

8.54

8.40

0.20

0.21

mymtMakeICC

0.32

0.23

0.27

0.26

mymtSetICC

3.68

3.88

2.01

2.10

RealInner

0.00

0.00

0.45

0.46

第3回WG資料135 / 25312

精密PA結果: SolveDom, 実行時間内訳
時間調和渦電流(複素数)の実行時間内訳

非定常渦電流(実数)の実行時間内訳

第3回WG資料13

精密PA結果: LoopPart, 実行時間内訳
時間調和渦電流(複素数)の実行時間内訳

非定常渦電流(実数)の実行時間内訳

第3回WG資料136 / 25314

精密PA結果: SolverCG, 実行時間内訳
時間調和渦電流(複素数)の実行時間内訳

非定常渦電流(実数)の実行時間内訳

第3回WG資料15

精密PA結果: mymtMxV, 実行時間内訳
時間調和渦電流(複素数)の実行時間内訳

非定常渦電流(実数)の実行時間内訳

第3回WG資料137 / 25316

精密PA結果: mymtSetBC, 実行時間内訳
時間調和渦電流(複素数)の実行時間内訳

非定常渦電流(実数)の実行時間内訳

第3回WG資料17

精密PA結果: mymtMxV (1)メッシュ・キャッシュエンジン ビジー率

SIMD命令率

第3回WG資料138 / 25318

精密PA結果: mymtMxV (2)キャッシュミス率(/ロード・ストア数)

L1Dキャッシュミス内訳(/L1Dキャッシュミス数)

L2キャッシュミス内訳(/L2キャッシュミス数)

第3回WG資料19

精密PA結果: mymtMxV (3)実行時間内訳 [概略] (/実行時間)

命令内訳 (/有効総命令数)

第3回WG資料139 / 25320電磁場解析ADVENTURE_MagneticのFX100性能評価
荻野正雄 (名古屋大学)
2015年10月8日
第7回SS研ポストペタアプリ性能WG
第7回WG資料

1AdvMagneticにおける実装の特徴• コーディング指針– 静磁場・渦電流(2種)でFEMやDDM等のコードを共通化– 実数・複素数で線形代数関係のコードを共通化
マクロ定義+共通コード
hddm_solver_rs.c#define __ADVMAG_MATRIX_SYSTEM_COMPLEX__#include "mtype.h"#include "hddm_solver.c"

hddm_solver_cs.c

プログラム実体である
hddm_solver.cをincldue文で取り込んでおり, それらはコンパイラによる最適化情報付きソースリストが出力されない#define __ADVMAG_MATRIX_SYSTEM_REAL__

必要に応じて, 展開してコンパイルしてみて最適化情報を確認#include "mtype.h"#include "hddm_solver.c"
第7回WG資料140 / 2532

四則演算のコーディング方法
for( j=ai[i] ; j<ii ; j++ ) {MTYPE ddd;
MMULTI( ddd, vij[j], vec[aij[j]] );MPLUS( x[i], x[i], ddd );MMULTI( ddd, vij[j], vec[i] );MPLUS( x[aij[j]], x[aij[j]], ddd );}jai i to iixivij j
vec aij j
x aij jvij jvec i• AdvMagneticの実装

v for( j=ai[i] ; j<ii ; j++ ) {v
MTYPE ddd;
6v
MMULTI( ddd, vij[j], vec[aij[j]] );6v
MPLUS( x[i], x[i], ddd );6v
MMULTI( ddd, vij[j], vec[i] );6v
MPLUS( x[aij[j]], x[aij[j]], ddd );
6v }

– 実数
• 関数形式マクロ– 複素数• 構造体(AOS) + 関数
• 構造体(AOS) + 関数形式マクロ• _Complex型#pragma loop norecurrenceを指定する(第6回富士通報告より)ことで, 実数/複素数ともにSIMD化が適用された
第7回WG資料v for( j=ai[i] ; j<ii ; j++ ) {v
MTYPE ddd;
2v
MMULTI( ddd, vij[j], vec[aij[j]] );2v
MPLUS( x[i], x[i], ddd );2v
MMULTI( ddd, vij[j], vec[i] );2v
MPLUS( x[aij[j]], x[aij[j]], ddd );2v }3

並列計算方法と行列サイズ
1MPI並列化 (MPIプロセスに1つずつ割当)
1,,←,solve,

OpenMP並列化 (スレッドに複数領域を割当)←←,,,,,,,,

今回は行列サイズは100～200程度となるように領域分割,←

第7回WG資料141 / 2534数値実験
• テスト問題– 時間調和／非定常渦電流– 無限長ソレノイドコイル→ 長さ0.1m, 中心角20°モデル– 400万(複素)自由度メッシュ– 領域分割数 30,720• 使用計算機

無限長ソレノイドコイル– 名大FX100 4ノード(4,505 Gflop/s)• コンパイラオプション"‐Kfast,ocl,restp=arg,preex,array_private‐Kopenmp"– 東大FX10 4ノード(946 Gflop/s)– 理研AICS京 4ノード(512 Gflop/s)

ケーキモデル

第7回WG資料

5

時間調和問題(複素数)と非定常問題(実数)の比較 @ FX100FLOPS / PEAK [%]Time‐Harmonic(Complex)

Non‐Steady(Real)

asis

1.63810.6962

ocl指定

1.69160.7256+一部のループ入れ替え

2.37590.8755+realloc呼び出し回数削減

2.43540.9303複素数問題は実数問題に比べて,例えば疎行列(CSR)ベクトル積では,・データ読み書き量は2倍・演算量は4倍
第7回WG資料142 / 253

jai i to ii
xivij jvec aij jx aij jvij jvec i

6時間調和問題(複素数)におけるK, FX10とFX100の比較
K
Time [s](ratio toFX100)

FX10
FLOPS
/PEAK [%]

Time [s](ratio toFX100)

FX100

FLOPS
/PEAK [%]

Time [s]FLOPS/PEAK [%]

asis626(3.35)

5.2819424(2.27)

4.2196187

1.6381

ocl指定

604(3.34)

5.4699412(2.28)

4.3455181

1.6916+一部のループ入れ替え

461(3.60)

7.1466320(2.5)

5.5657128

2.3759+realloc
呼び出し
回数削
減

441(3.5)

7.4700298(2.37)

5.98481262.4354

第7回WG資料
KやFX10に比べてFX100での実行効率が大きく下がっている

7

Scalability of multithreads @ FX100# of threads / CMG

Time [s]Speedup ratio

FLOPS/PEAK [%]

1

1,061

1.00

3.68322623

1.70

3.13944324

3.27

3.01998188

5.64

2.5990

16123

8.63

2.0123

CMGあたりのスレッド並列効率は54%くらいと高くはないが,この傾向はFX10でも同じ

第7回WG資料143 / 2538時間調和問題(複素数)における高コスト関数@ FX100*************************************************************************************
Application - procedures*************************************************************************************
Cost% Operation (S)------------------------------------------------------------------------------------122204
100.000012329.8926
Application------------------------------------------------------------------------------------32830
26.86493312.3438
mymt_CS_AIJ_PC_ICC_set
27776
22.72922802.4683
mymt_CS_AIJ_MxV
16841
13.78111699.4738
hddm_solver_CS_solve_dom
9309
7.6176939.2852
hddm_solver_CS_Parent_loop_part._OMP_2
7041
5.7617710.4250__lll_lock_wait
7040
5.7609710.2708
mymt_CS_AIJ_SetBC_with_bcMat
6136
5.0211619.0325__pthread_mutex_unlock_usercnt
3686
3.0163371.9494
hddm_solver_CS_renewal_bc_sp
3680
3.0114371.2768
mymt_CS_AIJ_Solver_COCG_func
637
0.521364.2622
COM_WriteCpl

このリストはK, FX10, FX100で大差はない
第7回WG資料9

高コスト関数上位3傑の精密プロファイラ情報

4命令
2/3命令
1命令
浮動小数点
ロードL2アク
セス待ち
浮動小数点
演算待ち

浮動小数点
ロードL1Dア
クセス待ち
整数ロード
L1Dアクセス
待ち

SetICC

MxV
第7回WG資料144 / 253

整数ロード
L2アクセス待ち
浮動小数点
ロードメモリアクセス待ちSolveDom

10全体及び高コスト関数のSIMD率
SIMD [%]
FX10

FX100

all

38.7176

16.7654

SetICC
MxV

36.2900
24.0306

15.1750
6.6256

SolveDom

17.9075

7.5875

第7回WG資料145 / 25311