SIRPPアルゴリズムの並列化について - 先端データ科学研究室

Download Report

Transcript SIRPPアルゴリズムの並列化について - 先端データ科学研究室

仮想並列計算機(PVM)
によるデータ解析について
北海道大学 工学研究科
松田光弘
背景
コンピュータ指向の研究
 ネットワークの利用、計算速度の向上、
並列計算の試み
統計分野での並列計算の事例
 専用マシンの例がある程度でそれほど多くない
SIRPPの計算量
 スライスの数と同じ数の射影追跡が必要
2
目的
SIRPPアルゴリズムの並列化
仮想並列マシン(PVM)を用いた並列計算
並列計算の有効性と問題点の検証
3
SIRPP
1998年、水田によって提案
回帰分析における説明変数空間の次元の縮小を
目的とする
y=f(β1x, …,βk x, ε)の各βi(e.d.r.空間)を推定
各スライスで射影追跡を行う
計算量が多い
4
SIRPPのアルゴリズム
1. xを球化する
2. yの値でx を H 個のスライス に分ける
3.スライスされた x に射影追跡法を実行し、射影方向を定めるベクトル
ak(h) を求める。射影指標の値を重み w(h) とする
4. 求めたベクトルから行列
ˆ
V
を求める
H
K
 w(h)
h 1
( h )T
k
 k( h )
k 1
5. Vˆ の固有値、固有ベクトルを求め、固有値の大きい順にK個の固有
ベクトルを出力する
5
SIRPP概念図
y=f(β1x, …,βk x, ε)
y
{ak(1) }, w(1)
{ ak(2) }, w(2)
{ ak(3) } , w(3)
{ ak(4) } , w(4)
H
射
影
追
跡
法
K
( h )T
(h)
ˆ
V   w(h)  k  k
h 1
x1
k 1
xp
6
SIRPPアルゴリズムの並列化
最も多くの計算量が必要となる射影追跡を
並列に計算する

各スライスでの計算を並列化
データの受け渡し


マスターでスライスした x をスレーブに渡す
射影する空間を張るベクトルと射影指標を各
スレーブから返す
7
仮想並列マシン
PVM(Parallel Virtual Machine)

ライブラリとデーモン
C言語、C++、FORTRAN



仮想マシン
プロセス間通信
移植性と互換性
異なるアーキテクチャーを持つマシンを同時に運
用することが可能
8
並列化
マスタ-スレーブ モデル
-1
-1
マスター
-1
-1
-1
-1
-1
-1
-1
スレーブ
スレーブ
-1
-1
・・・ ジョブ(実際にはデータ)
・・・ 計算結果
-1
スレーブ
-1 ・・・ 終了条件
10
数値実験
N(0,1)から乱数を発生させ、説明変数 x、およ
び誤差項 e を生成
y=f(x)+ e で目的変数 y を生成
10回の 計算時間 の平均と標準偏差,および
並列処理効率 と 速度向上比 を示す
速度向上比
並列処理効率

1台での計算時間
N 台での計算時間

1台での計算時間
マシン数
N  N 台での計算時間
(%)
11
数値実験
実験1
y=x12+x22+0.5・ e
データ数 400
スライス数 10
実験2
y=sin(x1)+cos(x2)+0.5・e
データ数 1200
スライス数 10, 20, 30, 40
13
数値実験
使用したコンピュータのスペック




CPU
Memory
OS
PVM
PentiumIII450MHz
192MByte
LASER5Linux6.0
Version 3.4
OS は Windows98 と LASER5Linux6.0 のデュアルブート
14
実験風景
北海道大学 情報メディア教育研究総合センター
講義室(56台)
15
データ数 400
スライス数 10
マシン数 1~11
実験1 結果
y = x12+x22+0.5 ・e
マシン数(台) 1(逐次)
1
2
3
4
平均
計算時間
516
532
327
283
176
34.7
30.9
30.4
15.3
26.2
(秒)
標準偏差
速度向上比
-
-
1.58
1.82
2.93
並列処理効率(%)
-
-
78.9
60.8
73.3
16
データ数 400
スライス数 10
マシン数 1~11
実験1 結果
y = x12+x22+0.5 ・e
マシン数(台) 5
6
7
8
9
平均
計算時間
121
120
118
110
105
標準偏差
19.7
19.5
20.3
16.1
18.9
速度向上比
4.26
4.30
4.37
4.69
4.91
列処理効率(%)
85.3
71.7
62.5
58.6
54.6
(秒)
17
実験1 結果
y = x12+x22+0.5 ・e
データ数 400
スライス数 10
マシン数 1~11
10
11
71
71
標準偏差
19.9
19.8
速度向上比
7.27
7.27
並列処理効率(%)
72.7
66.1
マシン数(台)
平均計算時間
(秒)
18
実験1 結果
y = x12+x22+0.5 ・e
マシン数と計算時間の関係
600
計算時間(秒)
500
400
300
200
100
0
0
2
4
6
マシン数(台)
8
10
12
19
実験1 結果
速度向上比

y = x12+x22+0.5 ・e
1台での計算時間
N 台での計算時間
速度向上比
マシン数と速度向上比の関係
8
7
6
5
4
3
2
1
0
0
2
4
6
マシン数(台)
8
10
12
20
実験1 結果
並列処理効率

y = x12+x22+0.5 ・e
1台での計算時間
マシン数
N  N 台での計算時間
(%)
マシン数と並列処理効率の関係
並列処理効率(%)
90
75
60
45
30
15
0
0
2
4
6
8
10
12
マシン数(台)
21
実験2 結果
データ数 1200
スライス数 10,20,30,40
マシン数 10,20,30,40
y=sin(x1)+cos(x2)+0.5 ・e
スライス数
10
20
30
40
計算時間(並
列)
199
111
78
56
標準偏差
54.9
25.9
23.5
10.6
計算時間(逐次)
1628
1574
1586
1601
並列処理効率(%)
81.8
70.9
67.8
71.5
速度向上比
8.1
14.2
20.3
28.6
22
実験2 結果
データ数 1200
スライス数 10,20,30,40
マシン数 10,20,30,40
y=sin(x1)+cos(x2)+0.5・e
スライス数と計算時間の関係
250
計算時間(秒)
200
150
100
50
0
0
10
20
30
スライス数
40
50
23
実験2 結果
速度向上比

y=sin(x1)+cos(x2)+0.5・e
1台での計算時間
N 台での計算時間
マシン数と速度向上比の関係
35
速度向上比
30
25
20
15
10
5
0
0
10
20
30
40
50
マシン数(台)
24
実験2 結果
並列処理効率

y=sin(x1)+cos(x2)+0.5・e
1台での計算時間
マシン数
N  N 台での計算時間
(%)
マシン数と並列処理効率の関係
90
並列処理効率(%)
75
60
45
30
15
0
0
5
10
15
20
25
マシン数(台)
30
35
40
45
25
考察
最大40台での並列計算を実現

かなりの計算時間の短縮
計算時間はホスト数に比例して減少

特に実験2の場合は顕著
26
今後の課題
射影追跡法の並列化の検討
一般的な問題の並列プログラムの構築

ルーチンの再利用
数百台規模の並列計算


フォールトトレランスの問題
計算速度の効率
27
仮想並列計算機(PVM)による
データ解析について
ご静聴ありがとう
ございました
北海道大学 工学研究科
松田光弘
28