Post on 14-Jan-2017
/ 56
周回積分型固有値解法と その並列ソフトウェア
今倉 暁
筑波大学 システム情報系
2014/11/24 数理人セミナー@早稲田大学
1
/ 56
大もくじ CRESTプロジェクトの紹介
研究領域・課題
領域:「ポストペタスケール高性能計算に資するシ ステムソフトウェア技術の創出」
課題:「ポストペタスケールに対応した階層モデル のよる超並列固有値解析エンジンの開発」 (研究代表者:櫻井鉄也)
主な成果物
固有値解析エンジン:z-Pares、EigenExa
周回積分型固有値解法とその並列ソフトウェア
周回積分型固有値解法の概略
並列ソフトウェア
2014/11/24 数理人セミナー@早稲田大学
2
/ 56
はじめに:研究背景 ポストペタスケールで想定される計算機構成 階層構造 計算ノード/コア メモリーストレージ ネットワーク
各種アクセラレータ GPU MIC(Many Integrated Core)
2014/11/24 数理人セミナー@早稲田大学
3
ハードウェアの階層性
階層的なアーキテクチャで性能を発揮するためには、 アルゴリズムに対しても高い階層性を持つことが望まれる Remark
/ 56
はじめに:プロジェクトの概要 研究プロジェクト:CREST
研究領域「ポストペタスケール高性能計算に資するシステムソフトウェア技術の創出」
研究課題「ポストペタスケールに対応した階層モデルのよる超並列固有値解析エンジンの開発」(研究代表者:櫻井鉄也)
プロジェクトの目的
大規模並列のハードウェア性能を十分に引き出すことのできる次世代型並列アルゴリズムとソフトウェアの開発
疎行列向け並列固有値解析エンジン:z-Pares
密行列向け並列固有値解析エンジン:EigenExa
高性能化基盤技術
高度利用技術
2014/11/24 数理人セミナー@早稲田大学
4
/ 56
はじめに:プロジェクトの概要 プロジェクトの意義
2014/11/24 数理人セミナー@早稲田大学
5
超並列固有値解析エンジン z-Pares, EigenExa
疎行列向け・密行列向け固有値解析エンジンを提供することで、 各種のアプリケーションの高速化を支える
/ 56
小もくじ はじめに
プロジェクトの進捗および構成
疎行列向け固有値解析エンジンz-Paresの概要
密行列向け固有値解析エンジンEigenExaの概要
2014/11/24 数理人セミナー@早稲田大学
6
/ 56
プロジェクトの進捗および構成 プロジェクトの進捗状況
2014/11/24 数理人セミナー@早稲田大学
7
H24年度、H25年度 固有値解析ソフトウェアの公開
H26年度 「京」での性能評価と高性能化
H27年度 実アプリケーションに特化した高性能アダプタの開発
H28年度以降 高性能固有値解析 インフラの開発
疎行列・部分固有対:z-Pares 密行列・全固有対:EigenExa
「京」での性能評価 大規模並列時のボトルネック改善 アプリケーションからの典型的ニー
ズに対する高性能化技術の開発
開発ソフトウェアz-Pares、EigenExaの更なる高性能化 階層性の深化と演算の高密度化 通信回避 高信頼性
戦略分野に特化した高性能アダプタの開発・整備 → 次年度以降の高性能固有値解析インフラの
整備につなげる
開発した高性能固有値解析ソフトウェアを基盤とした高性能固有値解析インフラを整備し、各種アプリケーションを基盤として支える 高性能インフラ
の実現
/ 56
プロジェクトの進捗および構成 プロジェクトのグループ構成
2014/11/24 数理人セミナー@早稲田大学
8
疎行列向け固有値解析エンジングループ -- 櫻井グループ >> 疎行列向け固有値解
法の開発 >> z-Paresの開発 -- 張グループ >> 疎行列向け固有値解
法およびその基盤技術の開発
密行列向け固有値解析エンジングループ -- 今村グループ >> 密行列向け固有値解
法の開発 >> EigenExaの開発 -- 山本グループ >> 密行列向け固有値解
法およびその基盤技術の開発
アプリケーショングループ -- 藏増グループ >> 基礎科学分野における固有値解析エンジンの高度利用技術の開発 -- 星グループ >> 物質科学分野における固有値解析エンジンの高度利用技術の開発
/ 56
プロジェクトの進捗および構成 プロジェクトの主なグループメンバー
疎行列グループ
櫻井グループ
–櫻井鉄也、多田野寛人、今倉暁、二村保徳(筑波大)、池上努(産総研)、中務佑治(東大)
張グループ
–張紹良(名大)、曽我部知広(愛知県立大)、 宮田考史(名大)
密行列グループ
今村グループ
–今村俊幸、深谷猛、廣田悠輔(理研 AICS)
山本グループ
–山本有作(電気通信大)
2014/11/24 数理人セミナー@早稲田大学
9
/ 56
プロジェクトの進捗および構成 プロジェクトの主なグループメンバー
アプリケーショングループ
星グループ
–星健夫、井町宏人(鳥取大)
藏増グループ
–藏増嘉伸(筑波大、理研 AICS)、石川健一 (広島大)、中村宜文(理研 AICS)
2014/11/24 数理人セミナー@早稲田大学
10
/ 56
z-Paresの概要 疎行列向け固有値解析エンジン:z-Pares
対象とする問題設定
標準/一般化固有値問題、実/複素、対称/非対称
部分固有対(数個~10%程度)
内部固有値問題(任意領域)
基本アルゴリズム
周回積分型固有値解法:
– Block SS-RR法、Block SS-Hankel法
–(一部)パラメータ自動設定付き
2014/11/24 数理人セミナー@早稲田大学
11
/ 56
z-Paresの概要 疎行列向け固有値解析エンジン:z-Pares
並列化構造:3段階の階層性
積分領域、数値積分、線形方程式
2014/11/24 数理人セミナー@早稲田大学
12
Top layer
Middle layer
Bottom layer
周回積分型固有値解法の階層性 ハードウェアの階層性
アルゴリズムの階層性に併せて計算リソースを割り当てる → ノード間通信性能を改善
周回積分に基づき 指定領域内部の固有対を抽出
各積分点での計算は 独立した線形方程式の求解
/ 56
z-Paresの概要 疎行列向け固有値解析エンジン:z-Pares
z-Pares開発・リリース状況
2013.12 :ver. 0.9.3 リリース
2014.7 :ver. 0.9.5 リリース
2014.9 :ver. 0.9.6 リリース
主たる成果
企業の振動解析における大規模問題を高速化
今後の展開
電子構造計算の各種アプリで性能を発揮する計算カーネルの開発と性能評価
– RSDFT
– CONQUEST
– ETH-CSCSの電子構造計算コード
2014/11/24 数理人セミナー@早稲田大学
13
/ 56
EigenExaの概要 密行列向け固有値解析エンジン:EigenExa
対象とする問題設定
標準固有値問題、実、対称
全固有対を計算
基本アルゴリズム
3重対角行列を経由しない新1stepアルゴリズム
– Householder法による帯行列化
–帯行列向け分割統治法
2014/11/24 数理人セミナー@早稲田大学
14
/ 56
EigenExaの概要 密行列向け固有値解析エンジン:EigenExa
アルゴリズムの概要
2014/11/24 数理人セミナー@早稲田大学
15
A B
T
real symmetric banded eigenpairs of B eigenpairs of A
tridiagonal eigenpairs of T 高性能実装が困難 メモリバンド幅律速
1-step scheme (ScaLAPACK)
2-step scheme (ELPA, DPLASMA)
new 1-step scheme (EigenExa)
/ 56
EigenExaの概要 密行列向け固有値解析エンジン:EigenExa
EigenExa開発・リリース状況
2013.8 :ver. 1.0 リリース
2013.12 :ver. 2.0 リリース ※三重対角化版(eigen_s)を提供
主たる成果
京のフルノードを用いた100万次元の実対称密行列の固有値計算(全固有対計算を1時間弱で実現)
データ同化(理研の三好Tとの共同研究)での利用
今後の展開
計算式の変形による通信回避技術の導入
京以外のシステムでの性能評価 (JulichのBlueGene/Q)
2014/11/24 数理人セミナー@早稲田大学
16
/ 56
大もくじ CRESTプロジェクトの紹介
研究領域「ポストペタスケール高性能計算に資するシステムソフトウェア技術の創出」
研究課題「ポストペタスケールに対応した階層モデルのよる超並列固有値解析エンジンの開発」
(研究代表者:櫻井鉄也)
周回積分型固有値解法とその並列ソフトウェア
周回積分型固有値解法の概略
並列ソフトウェア
2014/11/24 数理人セミナー@早稲田大学
17
/ 56
はじめに 対象とする問題
(特定領域の固有値を求める)一般化固有値問題:
2014/11/24 数理人セミナー@早稲田大学
Re
Im
18
Ω内部の固有値数を とする
固有対 を求めたい
/ 56
はじめに 対象とする数値解法
周回積分型固有値解法:SS-RR法 [Sakurai&Sugiura:2003]
周回積分により対象の固有ベクトル成分を取り出す
関連解法
(block) SS-Hankel法 [Sakurai&Sugiura:2003,Ikegami et al.:2010]
(block) SS-RR法 [Sakurai&Tadano:2007,Ikegami&Sakurai:2010]
FEAST法 [Polizzi:2009]
block SS-Arnoldi法 [I,Du&Sakurai:2013]
Beyn法 [Beyn:2012] (非線形固有値問題向け)
2014/11/24 数理人セミナー@早稲田大学
19
/ 56
はじめに 本講演の目的
周回積分型固有値解法の概略を示す
block SS-RR法
block SS-Hankel法
階層型並列固有値解析ソフトウェアを紹介する
SSEIG
CISS
z-Pares
超並列環境での実用化するための関連技術を紹介
耐故障性
2014/11/24 数理人セミナー@早稲田大学
20
/ 56
小もくじ はじめに
一般化固有値問題に対する周回積分型固有値解法
階層型並列固有値解析ソフトウェア
超並列環境での実用化するための関連技術
まとめ
2014/11/24 数理人セミナー@早稲田大学
21
/ 56
周回積分型固有値解法の概略 基本的アイディア [Sakurai&Sugiura:2003]
一般化固有値問題の固有値を極に持つ有理関数 の領域Ω内の極をCauchyの積分公式 に基づく手法により計算する.ここで, ΓはJordan閉曲線(Ωの境界)
2014/11/24 数理人セミナー@早稲田大学
22
/ 56
周回積分型固有値解法の概略 関数の領域Γ内部の極の計算 [Kravanja,Sakurai&van Barel:1999]
複素モーメント:
正則関数の領域Γ内部の極はHankel行列 を係数にもつ(小規模)一般化固有値問題
を解くことで得られる.
2014/11/24 数理人セミナー@早稲田大学
23
/ 56
周回積分型固有値解法の概略 関連解法
原著論文とその改良法
その他の関連解法
FEAST eigensolver [Polizzi:2009]
Beyn法(非線形) [Beyn:2012]
2014/11/24 数理人セミナー@早稲田大学
24
(原著論文) [Sakurai&Sugiura:2003]
ブロック化に基づく 高安定化
[Ikegami et.al.:2010]
RR法に基づく 高精度化
[Sakurai&Tadano:2007]
ブロック化 + RR法 (SS-RR法)
[Ikegami&Sakurai:2010]
Arnoldi法に基づく 新解釈・新解法 (SS-Arnoldi法) [I,Du&Sakurai:2014]
/ 56
SS-Hankel法
複素モーメント( )
Hankel一般化固有値問題(サイズ:M x M)
block SS-Hankel法の概略 2014/11/24 数理人セミナー@早稲田大学
25
/ 56
block SS-Hankel法
block複素モーメント( )
block Hankel一般化固有値問題(サイズ:LM x LM)
block SS-Hankel法の概略 2014/11/24 数理人セミナー@早稲田大学
26
/ 56
アルゴリズム
block複素モーメント( )
block Hankel一般化固有値問題(サイズ:LM x LM)
block SS-Hankel法の概略 2014/11/24 数理人セミナー@早稲田大学
27
/ 56
block SS-Hankel法の概略 実用上の工夫
block Hankel行列の低ランク近似:
標準固有値問題(サイズ:d x d, m < d ≦ LM)
2014/11/24 数理人セミナー@早稲田大学
28
対象の一般化固有値問題はblock Hankel行列から得られる標準固有値問題に帰着される
/ 56
block SS-Hankel法の概略 block SS-Hankel法 [Ikegami et al.:2010]
アルゴリズム
2014/11/24 数理人セミナー@早稲田大学
29
Algorithm: block SS-Hankel
1. Compute basis vectors: 2. Construct block Hessenberg matrices 3. Compute low-rank approx. of : 4. Solve and set
/ 56
block SS-RR法の概略 基本戦略:以下の定理に基づきRRの技法を利用
定理が意味すること
周回積分により対象の固有ベクトルで張られる部分空間が生成される → Rayleigh-Ritzの技法により対象の固有対が計算できる
2014/11/24 数理人セミナー@早稲田大学
30
Theorem 3
対象の固有値数が を満たし, また入力行列 が がフルランクとなる行列であるとする. この時, 以下が成り立つ.
/ 56
block SS-RR法の概略 アルゴリズム
射影条件:
Ritz-Galerkin条件:
実用上の工夫
基底の低ランク近似:
一般化固有値問題(サイズ:d x d, m ≦ d ≦ LM)
2014/11/24 数理人セミナー@早稲田大学
31
対象の一般化固有値問題は一般化固有値問題に帰着される
/ 56
block SS-RR法の概略 block SS-RR法 [Ikegami&Sakurai:2010]
アルゴリズム
2014/11/24 数理人セミナー@早稲田大学
32
Algorithm: block SS-RR
1. Compute basis vectors: 2. Compute low-rank approx. of : 4. Solve and set
/ 56
並列固有値解析ソフトウェア 周回積分型固有値解法のアルゴリズムの流れ
1:積分点毎の線形方程式の求解
2:積分計算
3:行列の特異値分解、小規模固有値問題の求解
周回積分型固有値解法の階層的並列性
計算コストの主要部(線形方程式の求解)に対し、 3階層の並列性を持つ
積分領域:複数の積分領域を並列に計算
数値積分:積分点毎の計算を並列に計算
線形方程式:線形方程式を並列計算
2014/11/24 数理人セミナー@早稲田大学
33
/ 56
並列固有値解析ソフトウェア 周回積分型固有値解法の階層的並列性
計算コストの主要部に対する3階層の並列性を持つ
積分領域、数値積分、線形方程式
2014/11/24 数理人セミナー@早稲田大学
34
Top layer
Middle layer
Bottom layer
周回積分型固有値解法の階層性 ハードウェアの階層性
アルゴリズムの階層性に併せて計算リソースを割り当てる → ノード間通信性能を改善
周回積分に基づき 指定領域内部の固有対を抽出
各積分点での計算は 独立した線形方程式の求解
/ 56
並列固有値解析ソフトウェア 関連ソフトウェアとの比較
2014/11/24 数理人セミナー@早稲田大学
35
A B 部分空間
PARPACK
S
複数線形方程式を逐次に求解
固有対
係数行列 逐次演算であるため、 並列化が困難
複数ブロック線形方程式を独立に求解
FEAST 演算量が多い
階層型アルゴリズムにより ノード間演算コストを削減 複数線形方程式を独立に求解
z-Pares
高次モーメントを利用
/ 56
並列固有値解析ソフトウェア 並列固有値解析ソフトウェア
公開済みソフトウェア
SSEIG (MATLAB)
–周回積分型固有値解法の有効性検証のための利用を想定
CISS (SLEPc)
–分散並列環境での利用を想定
z-Pares (Fortran90・MPI)
–大規模分散並列環境での利用を想定
公開ポリシー:フリー
Web:http://zpares.cs.tsukuba.ac.jp/
2014/11/24 数理人セミナー@早稲田大学
36
/ 56
並列固有値解析ソフトウェア SSEIG
概要
目的:周回積分型固有値解法の有効性検証用
動作環境:MATLAB
並列化:逐次版(MATLABの自動並列は有効)
機能・仕様
対象固有値問題:実/複素・標準/一般化・密/疎
数値積分:楕円・N点台形則
線形方程式の求解:LU分解
2014/11/24 数理人セミナー@早稲田大学
37
/ 56
並列固有値解析ソフトウェア SSEIGの実行例
テスト行列
–複素非エルミート一般化固有値問題
» MHD1280(電磁気問題), n = 1280
領域・パラメータ
–中心:-0.1+0.6i, 半径:0.2の円
– L=16, M=8, N=32
2014/11/24 数理人セミナー@早稲田大学
38
/ 56
並列固有値解析ソフトウェア CISS
概要
目的:周回積分型固有値解法を分散並列環境で利用
動作環境:SLEPc・PETSc
並列化:全ての階層の分散並列化に対応
機能・仕様
対象固有値問題:実/複素・標準/一般化・密/疎
数値積分:楕円・N点台形則
線形方程式の求解:PETScのライブラリから選択可能
行列の格納形式:PETScの行列格納形式に準拠
2014/11/24 数理人セミナー@早稲田大学
39
/ 56
並列固有値解析ソフトウェア 2014/11/24 数理人セミナー@早稲田大学
40
PETSc Portable, Extensible Toolkit for Scientific Computation
PETSc・SLEPcの組み込みソフトウェア SLEPc
Scalable Library for Eigenvalue Problem Computations
/ 56
並列固有値解析ソフトウェア z-Pares
概要
目的:周回積分型解法を大規模分散並列環境で利用
動作環境:Fortran90、MPI
並列化:全ての階層の分散並列化に対応
機能・仕様
対象固有値問題:実/複素・標準/一般化・密/疎
数値積分:楕円・N点台形則・その他
線形方程式の求解:
– Krylov部分空間法・疎行列向け直接法・その他
行列の格納形式:ユーザー定義
2014/11/24 数理人セミナー@早稲田大学
41
/ 56
並列固有値解析ソフトウェア z-Paresのデータ構造
疎行列向けソフトウェアではアプリケーション毎に異なるデータ分散形式に対応することが必要
z-Paresでは, 線形方程式の求解および行列ベクトル積において異なるデータ分散形式に対する対応を考える必要がある
z-Paresでは行列やベクトルのデータ分散形式に自由度与えるReverse communication interface (RCI)を採用
2014/11/24 数理人セミナー@早稲田大学
42
/ 56
並列固有値解析ソフトウェア RCI
線形方程式の求解や行列ベクトル積などのデータ分散に依存する計算が必要になる度にユーザーに制御を戻す
ユーザー自身が線形方程式の求解や行列ベクトル積のコードを作成する
特定の分散データ構造に対しては, z-Pares側で高速なルーチンを用意する
ユーザーは終了サインが出るまでwhile文で何度も z-Paresのサブルーチンを呼び出す
ARPACK(1996)やFEAST(2009), BLOSS(2012)という固有値解法パッケージに採用されている
2014/11/24 数理人セミナー@早稲田大学
43
/ 56
program user_code use zpares !<中略> ! 初期化
task = ZPARES_TASK_INIT do while ( task /= ZPARES_TASK_FINISH ) ! 固有値解析エンジン呼び出し
call zpares(task, work1, work2, …) ! taskにユーザーコード側の処理が指定される
if ( task == ZPARES_TASK_MATVEC ) ! ユーザーの行列ベクトル積ルーチン呼び出し
call user_matvec(work1, work2) else if ( task == ZPARES_TASK_SOLVE) ! ユーザーの線形ソルバルーチン呼び出し
call user_solver(work1, work2) end if end do
並列固有値解析ソフトウェア RCI
2014/11/24 数理人セミナー@早稲田大学
44
/ 56
並列固有値解析ソフトウェア z-Paresの(簡易的な)実行例 I
テスト行列
実対称・一般化固有値問題
– VCNT9000(ELSES Matrix Library)
– n=9,000, Nnz=3,464,136
領域・パラメータ
中心:-0.55, 半径:0.04, 半径比:0.1の楕円
L=32, M=16, N=32
線形方程式:MUMPUS
プロセス数:1, 2, 4, 8, 16(中位階層のみ並列化)
計算機環境
「京」, 1プロセス/1ノード
2014/11/24 数理人セミナー@早稲田大学
45
/ 56
並列固有値解析ソフトウェア z-Paresの(簡易的な)実行結果 I
並列性能
2014/11/24 数理人セミナー@早稲田大学
46
0
10
20
30
40
50
60
1 2 4 8 16
misc Mult B Mult A Small diag Orth Solve Fact
Elap
sed
tim
e [s
ec]
Number of Nodes
/ 56
並列固有値解析ソフトウェア z-Paresの(簡易的な)実行結果 I
相対残差ノルム
2014/11/24 数理人セミナー@早稲田大学
47 eigenvalue
Rel
ativ
e re
sid
ual
no
rm
/ 56
並列固有値解析ソフトウェア z-Paresの(簡易的な)実行例 II
テスト行列
複素エルミート・一般化固有値問題
– VCNT10800h(ELSES Matrix Library)
– n=10,800, Nnz=8,511,588
領域・パラメータ
中心:-0.55, 半径:0.07, 半径比:0.1の楕円
L=32, M=16, N=32
線形方程式:MUMPUS
プロセス数:1, 2, 4, 8, 16(中位階層のみ並列化)
計算機環境
「京」, 1プロセス/1ノード
2014/11/24 数理人セミナー@早稲田大学
48
/ 56
並列固有値解析ソフトウェア z-Paresの(簡易的な)実行結果 II
並列性能
2014/11/24 数理人セミナー@早稲田大学
49
Elap
sed
tim
e [s
ec]
Number of Nodes
0
20
40
60
80
100
120
140
160
180
1 2 4 8 16
misc Mult B
Mult A Small diag
Orth Solve
Fact
/ 56
並列固有値解析ソフトウェア z-Paresの(簡易的な)実行結果 II
相対残差ノルム
2014/11/24 数理人セミナー@早稲田大学
50 eigenvalue
Rel
ativ
e re
sid
ual
no
rm
/ 56
block SS-RR法の誤差解析
定理の意味
各固有対の残差ノルム(みたいなもの)は, と の比で抑えられる
部分空間サイズLMを大きく取れば対象の固有対は高精度で得られる
周回積分型固有値解法の誤差解析 2014/11/24 数理人セミナー@早稲田大学
51
Theorem:故障(誤差)なしの場合
( 定数)
/ 56
周回積分型固有値解法の誤差解析 フィルター関数 (領域Ω:単位円)
2014/11/24 数理人セミナー@早稲田大学
52
領域内部 領域外部(遠方)
/ 56
周回積分型固有値解法の誤差解析 block SS-RR法の誤差解析
定理の意味
各固有対の残差ノルム(みたいなもの)は, と の比で抑えられる
故障により部分空間サイズが縮小される(ような効果)
部分空間サイズを大きくとっておけばほぼ影響しない
2014/11/24 数理人セミナー@早稲田大学
53
Theorem:故障発生時(誤差混入時)の解析
( 定数)
/ 56
周回積分型固有値解法の誤差解析 2014/11/24 数理人セミナー@早稲田大学
54
数値実験(故障なし)
Ω:単位円-> m=10, 外部近接固有値=1.01
/ 56
周回積分型固有値解法の誤差解析 2014/11/24 数理人セミナー@早稲田大学
55
数値実験(故障発生時)
Ω:単位円-> m=10, 外部近接固有値=1.01
/ 56
まとめ 本講演では, 一般化固有値問題に対する周回積分型固有値解法のアルゴリズムおよびその並列ソフトウェアを紹介した
SSEIG:お試し用(MATLAB)
CISS:分散並列用(PETSc)
z-Pares:大規模分散並列用(Fortran90、MPI)
これらのソフトウェアはwebで公開されている (z-Paresは2013年12月末公開予定)
http://zpares.cs.tsukuba.ac.jp/
2014/11/24 数理人セミナー@早稲田大学
56