分散メモリ型スーパーコンピュータにおける直接法と反復法の

8th Symposium
学際大規模情報基盤共同利用・共同研究拠点公募型共同研究 平成28年度採択課題
jh160002-NAJ
若谷彰良(甲南大学)
分散メモリ型スーパーコンピュータにおける直接法と反復法の並列化行列
解法の研究
概要
現代のスーパーコンピュータは共有メモリ構造を持つマルチコアシステムのクラスタで構成されている.ここにはキャッシュメモリ, 主記
憶, ネットワークを介した分散記憶の3種類のアクセス速度の異なるメモリ階層がある. 1つのプロセッサの内部は4から16程度のマルチ
コアを持ち, 1ノードの論理演算速度は256GFlop/s程度になっている. クラスタ全体は1,000ノードを超えるが, 実アプリケーションでは, 30
ノード程度での高い並列効率が必要である.ノード内メモリバンド幅とノード間通信バンド幅の差は大きいが, この環境でも演算速度を保
てるように最適なタスク配置と新規アルゴリズムの導入により通信コストの低減を図る. またノード内での演算器の効率的な利用を実現
する必要がある. 偏微分方程式の離散化で得られる対称行列及び非対称行列の問題に対する反復法及び直接法の並列化手法を研
究し, 各種スーパーコンピュータ上で評価することによって, メニーコア時代に対応した並列化行列解法を提供するとともに,対称行列及
び非対称行列を用いた大規模半導体シミュレーションで有用性を検証することを目的とする.
特に,反復法においてはSplitting‐Up作用素を用いた前処理付き共役勾配法の実装を主な対象とし,直接法においてはDissection法
による疎行列のグラフ分割と密行列部分のブロック化によって得られたLDU分解のタスクの非同期実行とデータ配置の最適化を主な対
象として取り組む. 直接法の並列化行列解法
反復法の並列化行列解法
現状とその問題点
現状とその問題点
行列解法の直接法はnested‐dissection法などによる疎行列のオーダリン
グにより並列計算が可能な部分を抜き出すこと(マルチフロンタル法)で, 複
数の部分的な疎行列と再帰的に構成されるSchur補行列からなる部分密行
列のLDU分解の組み合わせになる. 二分木構造の密行列は更にブロック化
によって並列計算を実現する.
8
9
a
b
c
d
e
f
88
99
4
5
6
7
2
84
82
94
92
aa
bb
a5
a2
b5
b2
cc
dd
3
1
44
55
91
Schur complement
c6
c1
by sparse solver
d6
d3 d1
ff
41
52
51
63 61
66
b1
ee
42
e7
e3 e1
f7
f3
73 71
77
24 25
22
36 37
21
行列解法の反復法には,ICCG法がしばしば用いられるが,収束性能を
保ったままで,単純に並列化することが難しいものとされている.一方,
Splitting‐Up作用素を前処理として用いた共役勾配法(SPCG法)は,ICCG法と
同等程度の収束性能を持ち,また,並列実行に適したアルゴリズムである.
しかし,前処理の際の配列再分散が並列化効果を低下させるので,前処
理の不完全化(NoZSolve及びISPCG)をした実装方法を提案した.下図に示
すように,SX‐ACEのような分散メモリスーパーコンピュータにおいて,ポアソ
ン方程式に対するMPIだけを用いたフラット実装の効果が確認できている
が,ノード内でのマルチスレディングの効果の検証には至っていない.
33 31
14 15 16 17 12 13 11
100
1
10‐2
10‐4
10‐6
10‐8
10‐10
10‐12
Schur complement
44
48 49
42
55
5a 5b
66
6c 6d
28 29 2a 2b
61
77
7e 7f
37
1b 1c 1d 1e
16
Schur complement
73
22
24 25
3d 3e 3f
19
by dense solver
52
by dense solver
21
33 31
11
22
12 13 11
dense factorization
21
33 31
12 13 11
NEC SX-ACE
Intel Xeon E5-4650 v2
Intel Pardiso 11.2
O(1/p)
time(sec.)
1000
100
1
# cores
10
POSIX threads による直接法部分タスクの
非同期並列実行(NEC SX‐ACEで計測)
上図は非対称疎行列 N=645,928, nnz=60,863,284のLDU分解
密行列のLDU分解の主要演算である, dgemm, dtrsm (BLAS 3)は演算集約
的であるが, 主記憶へのアクセス効率にも左右される. バンク構成のメモリ
の場合, 繰り返し同一のメモリバンクにアクセスするバンクコンフリクトが起
きると性能が低下するため, データの記憶方法を最適化する必要がある. また, タスクの非同期並列実行では, タスクの状態の確認の必要のない静
的割当と依存関係にあるタスクの終了の確認を絶えずおこなう動的割当を
併用しているが, その比率の最適化が必要である.
取組み
以下の研究項目を大阪大学,京都大学および東京大学のスーパーコン
ピュータ(NEC SX‐ACE, Cray XC‐30およびFujitsu FX‐10)で実施する.
a.バンクメモリアクセスに対する最適化と非同期タスクの割当時のメモ
リ配置の最適化を行う. また, NUMA型のメモリアクセスの効率化のために, 二分木構造を利用したメモリ配置を考慮する.
b.4ノードでの分散環境で実行出来るよう共有メモリ型計算機向けに開
発を行ってきたコードを拡張する. Schur補行列はブロック密行列の対角軸
選択付きLDU分解アルゴリズムで計算するが, 最終2段は複数ノードにま
たがる. 演算速度とノード間メモリ転送速度の比は256以上であるためブ
ロック化サイズを大きくとりマルチコア演算器を有効活用する.
配列再分散
(Z方向通信大)
ISPCG
NoZSolve
P‐scheme
pipe
(Z方向通信小) (Z方向通信小) (Z方向通信無) (Z方向通信無)
取組み
以下の研究項目を大阪大学, 京都大学および東京大学のスーパーコン
ピュータ(NEC SX‐ACE, Cray XC‐30およびFujitsu FX‐10)で実施する.
a.SPCG法に対し,パイプラインおよびP‐scheme法による通信削減手法
及び前処理の不完全化(NoZSolve及びISPCG)による通信フリー手法の2レ
ベル実装を行う.
b.2レベル実装とフラット実装での性能評価および性能比較を行なう.
なお,ノード間通信性能の異なる複数のスーパーコンピュータで評価す
ることにより,通信がアルゴリズムに与える影響を評価することができる.
若谷彰良
甲南大学
研究統括・並列化反復法計算手法
小田中 紳二
大阪大学
半導体シミュレーション
鈴木 厚
大阪大学
鍾 菁廣
大阪大学
並列化直接法計算手法
数値シミュレー ション
学際大規模情報基盤共同利用・共同研究拠点 第8回シンポジウム
2016年 7月 14日,15日
THE GRAND HALL (品川)