分散遺伝的アルゴリズムによる各種クラスタのベンチマーク

分散遺伝的アルゴリズムによる
各種クラスタのベンチマーク
廣安
三木
谷村
吉田
佐野
知之(同志社大学・工)
光範(同志社大学・工)
勇輔(同志社大学・大学院)
純一(同志社大学・大学院)
正樹(同志社大学)
IBMのチャレンジ
DEEP BLUE
チェスの世界チャンピオン,カスパロフを破った
他の分野でもこれに比肩する偉業が達成される可能性
BLUE GENE (1PetaFLOPs)
“タンパク質の構造解析”にチャレンジ!!
コンピュータの設計およびアーキテクチャに対して従来と
はまったく異なるタンパク質に適したアプローチをとる
ハードウエアとソフトウエアの進化
•頭を使うよりも力技?
•頭を使う場合も道具をよく知って...
道具を磨くと性能50%UP
頭を使うと性能5%UP
システムの性能を左右する要因
•CPU,メモリ
•ネットワークハードウエア
•ネットワークソフトウエア(ドライバ,NFSその他)
•OS
•コンパイラ
•並列ライブラリ
•コンパイルオプション
•その他
ベンチマークの分類
・コンピュータの性能評価の難しさ
コンピュータの挙動はプログラムによってさまざま
比較の指標を一意に決めることは困難
用途に応じたさまざまなベンチマークが存在
LINPACK / ScaLAPACK
世界のスーパーコンピュータのランキング
「TOP500 SUPER COMPUTER」
で用いられる由緒あるベンチマーク
LU分解を行うためのサブルーチンを
ベンチマークに利用
http://www.top500.org
数値演算能力(浮動小数点演算)を測定
するのに適している
姫野ベンチマーク
ポアソン方程式をヤコビの反復法
で解く場合の主要なループの処理速度
を計測
→ 流体計算の性能測定に向く
コードが非常に小さく,実行が容易
理化学研究所の
姫野龍太郎氏が開発
WindowsやMac用のバイナリもある
→ 手軽にベンチマークが可能
NAS Parallel Benchmark
NASA Ames Research Center で開発
された並列計算機のためのベンチマーク
8種類の対象問題と5種類のクラスによる
多角的な性能の評価が可能
並列コンピュータの実行性能を知る上で
権威あるベンチマークの一つ
使用クラスタ
Fraulein
Jupiter
ruins
sequence
cluso
CPU
P3 500MHz
P3 600MHz
P2 400MHz
P3 850MHz
P3 700MHz
SMP
○(2Procs)
×
×
×
○(2Procs)
#Node
8+1
8+1
16
8+1
32+1
#Proc
18
9
16
9
65
Memory
128MB
128MB
128MB
256MB
128MB
Linux 2.2.12
Linux 2.2.?
Linux 2.2.16
gcc 2.95.2
gcc 2.95.2
gcc 2.95.2
OS
Linux 2.2.15 Linux 2.2.14
Compiler
gcc 2.95.2
gcc 2.95.2
Network
100BASE-T
+Switching Hub
Myrinet
100BASE-T
100BASE-T
100BASE-T
+Switching Hub +Switching Hub +Switching Hub
姫野ベンチマークの結果
MPICH(1.2.0)
姫野ベンチマークの結果
Sequence cluster
Pentium 3 850MHz
+ 100BASE-T (TCP/IP)
Jupiter cluster
Pentium 3 600MHz
+ Myrinet (GM)
並列計算機の性能はCPUにだけに依存しない
NPBの結果
MPICH(1.2.0)
分散GA
通常のGA
分散GA
選択
交叉
突然変異
評価
移住
分散GAでは母集団を複数に分割して解探索を行う
各島でそれぞれ独立に遺伝的操作を行う
一定間隔で移住を行い,個体の交換をする
GAPPAベンチマーク
(分散GAのベンチマーク)
•計算負荷,ネットワーク負荷
(移住間隔)はパラメータによっ
て設定
•個体数 640
•移住率 0.3
•交叉率 0.8
•ビット列の長さ 100
•終了世代 2000
計算負荷とトラス構造解析との比較
1×
5×
10×
50×
100×
10段~12段
500×
20段~24段
100段~120段
GAによる最適化で早いネット
ワークが必要なのか?
ノード数
プロセッサ
メモリ
OS
Network
Cluso
コンパイラ:gcc(2.95.3), mpiCC
オプション:-O2 –funroll-loops
30
20
15
20
15
10
10
5
5
0
0
0
1X
5X
10X
50X
100X
500X
25
Speedup
Speedup
30
1X
5X
10X
50X
100X
500X
25
通信ライブラリ
10
20
30
32
PentiumⅢ 700MHz
128 Mbytes
Linux 2.2.16
Fast Ethernet,TCP/IP
Switching HUB
MPICH 1.2.1
0
10
20
Number of Process
Number of Process
migration interval 1
migration interval 5
30
MPICHとLAMの比較(SMP)
ノード数
プロセッサ
メモリ
OS
Network
Cluso
移住間隔1
コンパイラ:gcc(2.95.3), mpiCC
オプション:-O2 –funroll-loops
60
40
30
40
30
20
20
10
10
0
0
0
1X
5X
10X
50X
100X
500X
50
Speedup
50
Speedup
60
1X
5X
10X
50X
100X
500X
20
40
60
32 × 2
PentiumⅢ 700MHz
128 Mbytes
Linux 2.2.16
Fast Ethernet,TCP/IP
Switching HUB
0
20
40
Number of Process
Number of Process
LAM (6.3.2)
MPICH (1.2.1)
60
MPICHとLAMの比較(SMP)
ノード数
プロセッサ
メモリ
OS
Network
Cluso
移住間隔5
コンパイラ:gcc(2.95.3), mpiCC
オプション:-O2 –funroll-loops
60
40
30
40
30
20
20
10
10
0
0
0
1X
5X
10X
50X
100X
500X
50
Speedup
50
Speedup
60
1X
5X
10X
50X
100X
500X
20
40
60
32 × 2
PentiumⅢ 700MHz
128 Mbytes
Linux 2.2.16
Fast Ethernet,TCP/IP
Switching HUB
0
20
40
Number of Process
Number of Process
LAM (6.3.2)
MPICH (1.2.1)
60
MPICHとLAMの比較
(プロセス数)
ノード数
プロセッサ
メモリ
OS
Network
8
8
6
6
4
Speedup
Speedup
sequence
移住間隔1
コンパイラ: gcc(2.95.2), mpiCC
オプション:-O2 –funroll-loops
1X
5X
10X
50X
100X
500X
2
8
PentiumⅢ 850MHz
256 Mbytes
Linux 2.2.17
Fast Ethernet,TCP/IP
Switching HUB
4
2
0
0
0
10
20
30
0
10
20
Number of Process
Number of Process
LAM (6.4-a3)
MPICH (1.2.0)
30
MPICHとLAMの比較
(プロセス数)
ノード数
プロセッサ
メモリ
OS
Network
8
8
6
6
4
Speedup
Speedup
Sequence
コンパイラ: gcc(2.95.2), mpiCC
オプション:-O2 –funroll-loops
1X
5X
10X
50X
100X
500X
2
8
PentiumⅢ 850MHz
256 Mbytes
Linux 2.2.17
Fast Ethernet,TCP/IP
Switching HUB
4
2
0
0
0
10
20
30
0
10
20
Number of Process
Number of Process
LAM (6.4-a3)
MPICH (1.2.0)
30
システムの性能を左右する要因
•CPU,メモリ
•ネットワークハードウエア
•ネットワークソフトウエア(ドライバ,NFSその他)
•OS
•コンパイラ
•並列ライブラリ
•コンパイルオプション
•その他