広域分散計算環境における 適応的なメッセージパッシングシステムの...
DESCRIPTION
広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装. 田浦研究室 46411 斎藤秀雄 2006 年 2 月 13 日. ID=0. ID=2. TCP/IP. Shared Memory. ID=1. ID=3. メッセージパッシング. 従来のクラスタ環境で広く用いられてきた並列プログラミングモデル Point-to-point 通信( send, receive ) 集合通信( broadcast, reduction ) メッセージパッシングレイヤという抽象化. broadcast. reduction. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/1.jpg)
広域分散計算環境における適応的なメッセージパッシングシステ
ムの設計と実装
田浦研究室46411 斎藤秀雄
2006 年 2 月 13 日
![Page 2: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/2.jpg)
SharedMemory
メッセージパッシング 従来のクラスタ環境で広く用いられてきた並列
プログラミングモデル Point-to-point 通信( send, receive ) 集合通信( broadcast, reduction )
メッセージパッシングレイヤという抽象化TCP/IP
broadcast
reduction
ID=0
ID=1 ID=3
ID=2
![Page 3: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/3.jpg)
広域メッセージパッシング 近年、 WAN の帯域が増加 広域環境において並列計算を行う機会が増加
物理的に異なる位置に存在する複数のクラスタ 広域環境はクラスタ環境より複雑
メッセージパッシングのもたらす恩恵はさらに大きい メッセージパッシングシステムはクラスタ環境用のも
のより複雑なものが必要
WAN
![Page 4: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/4.jpg)
広域環境とクラスタ環境の相違点 クラスタ環境
ノード間で全対全で接続を張るのが単純かつ効果的 広域環境
直接は接続できないノード Firewall の後ろにあるノード Private IP しか持っていないノード (NAT)
メッセージを中継する必要がある
Firewall NAT
![Page 5: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/5.jpg)
広域環境とクラスタ環境の相違点 クラスタ用の集合通信
すべてのリンクの速度が等しいという仮定の基に設計されている
広域環境用の集合通信 リンクの速度の違いを考慮する必要がある
Root
WAN
Cluster Cluster
Root
![Page 6: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/6.jpg)
既存手法の問題点 広域計算環境は、静的に捉えてもクラスタ環境
より複雑 既存のグリッド用メッセージパッシングシステ
ムは、広域計算環境を静的に捉えた上で工夫 リンクの速度を考慮した集合通信、 etc.
広域計算環境はさらに動的!実行環境は 実行時まで不明 実行毎に変化 実行中にも変化( e.g., 計算中の資源の増減)
![Page 7: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/7.jpg)
本研究の貢献1. MPI/GXP
広域環境を動的に捉えた適応的なメッセージパッシングシステム
2. 広域環境用の集合通信 広域環境に適応する高性能な broadcast と reduction 計算中に資源の増減があっても高い性能を維持でき
る
![Page 8: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/8.jpg)
発表の流れ1. 背景2. 関連研究3. MPI/GXP
4. 広域環境用の集合通信5. まとめ
![Page 9: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/9.jpg)
MagPIe
Kielmann et al. ’99 クラスタ間・内で異な
る静的な木を用いる Broadcast
クラスタ間: flat tree クラスタ内: binary tree
実行環境毎に手動で設定する必要がある 各クラスタのノード数 各ノードの属すクラス
タLAN
LAN
LANRoot
Coord.Node
Coord.Node
![Page 10: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/10.jpg)
MPICH-G2
Karonis et al. ‘03 より多くの階層のトポロジーを考慮した集合通
信 MagPIe より高性能。でもやはり静的!
ノード間で全対全で接続を張る Firewall/NAT のある環境で動作しない TCP send/receive buffer 用に大量にメモリが必要
Buffer に割り当てるべきメモリ量>帯域遅延積
![Page 11: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/11.jpg)
プロキシを用いるシステム クラスタ間の通信にプロキシを用いるグリッド
用メッセージパッシングシステム PACX-MPI (Gabriel et al. ’98) StaMPI (Imamura et al. ’00) MPICH/MADIII
(Aumage et al. ’03) Unconnectable
Manually-Configured
Proxy
Any-to-AnyOne-Way
![Page 12: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/12.jpg)
発表の流れ1. 背景2. 関連研究3. MPI/GXP
4. 広域環境用の集合通信5. まとめ
![Page 13: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/13.jpg)
MPI/GXPの概要 広域環境を動的に捉えた適応的なメッセージ
パッシングシステム C 言語で約 8000 行 Message Passing Interface (MPI) の主な部分を実装 Machines ファイルや接続性に関する情報なしで起動 Firewall/NAT のある環境で動作 広域接続の数を制限
Buffer に割り当てるメモリを節約 Stateful Firewall が覚えられる
接続の数を超えてしまうことを防ぐ
istapr.i.u-tokyo.ac.jpistbs000.i.u-tokyo.ac.jpistsun0.i.u-tokyo.ac.jp…
Machines ファイル
![Page 14: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/14.jpg)
MPI/GXPの接続確立 実際に接続を試みることによって Firewall の後
ろにあるノードを自動的に検出 実行時に測定した遅延情報を用いて広域接続の
数を制限
各ノード p から他のすべてのノード q への経路が、p から q への最短経路の k 倍以内になるようしながら、最小限の接続を張る
影響大影響小
![Page 15: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/15.jpg)
三角不等式を用いた RTT見積もり 全ノード間の RTT を測定するのには長時間かか
る 三角不等式を用いて、実際には測定していない
RTT を見積もる If (rttp,r + rttr,q) / |rttp,r – rttr,q| < k:
p から r を経由して q へ行く経路は、p から直接 q へ行く経路の k 倍より短い
pq
r
Direct route
Route via r
![Page 16: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/16.jpg)
実験:接続数 様々な k において張られた接続数を数えた
3 台のクラスタに分散された 292 ノードを使用
NATRTT: 4.6 ms
RTT: 4.5 ms
RTT: 0.3 ms
HONGO_A40 nodes(0.2 ms)
KASHIWA_D64 nodes(0.2 ms)
HONGO_B188 nodes(0.1 ms)
![Page 17: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/17.jpg)
実験結果:接続数
0%
20%
40%
60%
80%
100%
1.0 1.2 1.4 1.6 1.8 2.0
k
Per
cent
age
of C
onne
ctio
ns E
stab
lishe
d
HONGO_A
HONGO_B
KASHIWA_D
HONGO_A-HONGO_B
HONGO_A-KASHIWA_D
HONGO_B-KASHIWA_D
![Page 18: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/18.jpg)
性能評価 様々な環境で MPI/GXP を用いて NAS Parallel
Benchmarks を実行 8 つのうち 5 をコンパイル・実行することに成功 残りの 3 つは MPI/GXP が Fortran90 に未対応
( C と Fortran77 には対応)などの理由で実行不可
Firewall
Linux Cluster128 nodes (Eng. 14)
Solaris Cluster128 nodes (Sci. 7)
約 4000 しか接続を覚えられない
![Page 19: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/19.jpg)
性能評価 様々な環境で MPI/GXP を用いて NAS Parallel
Benchmarks を実行 8 つのうち 5 をコンパイル・実行することに成功 残りの 3 つは MPI/GXP が Fortran90 に未対応
( C と Fortran77 には対応)などの理由で実行不可
NATRTT: 4.5 msBandwidth: 1 Gbps
Linux Cluster128 nodes (Hongo)
Linux Cluster128 nodes (Kashiwa)
![Page 20: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/20.jpg)
NPBの結果 1 クラスタでは MPICH とほぼ
同等の性能 EP
2 クラスタでかなりの性能向上 LU, MG
1 クラスタ 64 プロセッサよりは2 クラスタ 128 プロセッサの方が速かった
CG, IS 2 クラスタ用いると遅くなった
EP (CLASS D)
0
50
100
150
200
1 64 128 128 256
Number of Processors
Spe
edup
vs.
1 P
roc.
MPICHMPI/ GXP
1 Cluster 2 Clusters
LU (CLASS D)
0
2
4
6
8
10
8 64 128 128 256
Number of Processors
Spe
edup
vs.
8 P
rocs
.
MPICHMPI/ GXP
1 Cluster 2 Clusters
![Page 21: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/21.jpg)
発表の流れ1. 背景2. 関連研究3. MPI/GXP
4. 広域環境用の集合通信5. まとめ
![Page 22: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/22.jpg)
提案手法の概要 トポロジーを考慮したスパニング
ツリーを実行時に生成する 遅延を考慮した木(短いメッセージ用) 帯域を考慮した木(長いメッセージ用)
生成された木に沿ってブロードキャストとリダクションを行う
プロセスの増減時には木を更新するRoot
Root
![Page 23: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/23.jpg)
スパニングツリーの生成 各プロセスをルートとする木を生成
する メッセージパッシングでは全プロセス
がブロードキャストやリダクションのルートになれる必要がある
各プロセスが自律的に… 自分とランダムに選んだ他のプロセス
の間の RTT を測定 各木において適切な親を探す
Root
RTTRTT
RTT
![Page 24: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/24.jpg)
Rationale
Bernaschi et al. ’98 集合通信の性能をモデル化 遅延→∞:最適な broadcast tree は flat tree 遅延→ 0 :最適な broadcast tree は binomial tree
Flat Tree Binomial Tree
Root Root
![Page 25: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/25.jpg)
目標 クラスタ内の遅延は小さいが、
最適な木はネットワーク性能による 既存のライブラリはクラスタ内では
深さ log2p の木を使用( p :プロセス数) MPICH: binomial tree MagPIe: binary tree
目標:最適に近い木を生成すること クラスタ間:深さ 1 の木 クラスタ内:深さ約 log2p の木
Binomial Tree
Root
Binary Tree
Root
![Page 26: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/26.jpg)
Cluster Cluster
Cluster
親の選択 各プロセスができる限り自分に近いプロセスを
親にすれば、クラスタ間で flat tree ができる
Root
![Page 27: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/27.jpg)
クラスタ内の木の深さ
0
5
10
15
20
25
30
35
0 100 200 300 400
Number of Processes (p)
Dep
th o
f Tre
e (A
vg. o
f 20
Tria
ls)
log2p
ClosestParent
My Algorithm
![Page 28: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/28.jpg)
親の選択 プロセス p は、以下
の条件が両方満たされたら、現在の親 parent から親候補 candに親を乗り換える rttp,cand < rttp,parent
distcand,root < distp,root
root
p
distp,root
![Page 29: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/29.jpg)
Broadcast
生成したスパニングツリーに沿ってメッセージを転送 Self-tuning なので、 MPI のような計算資源が変化し
ないモデルでも十分有用 Phoenix(Taura et al. ’03) のような計算資源の増減が
あるようなモデルにも適用できる
0-9 10-1910-14
send(15)
15-19
Migration ofVirtual Nodes
15-19
![Page 30: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/30.jpg)
Phoenix用の Broadcast
全仮想ノードにメッセージを届ける
子に転送するメッセージのヘッダに、その子を経由して到達すべき全仮想ノードを列挙しておく
ヘッダと木が一致しない場合は、 point-to-point 通信を用いる
Root
0
1 2 3
4
Migration ofVirtual Node 4
1,4
{3,4}{2}
{1}
Point-to-PointMessage to
Virtual Node 4
![Page 31: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/31.jpg)
1-Byte Broadcast
MPI のようなbroadcast 1 仮想ノード/プロセ
ス 3 台のクラスタに分散
された 201 プロセッサ
0
5
10
15
20
25
30
35
40
0 40 80 120 160 200
Process Number
Com
plet
ion
Tim
e (m
s)
0
5
10
15
20
25
30
35
40
0 40 80 120 160 200
Process Number
Com
plet
ion
Tim
e (m
s)
0
5
10
15
20
25
30
35
40
0 40 80 120 160 200
Process Number
Com
plet
ion
Tim
e (m
s)
Grid-unaware (MPICH-like)
Static Grid-aware (MagPIe-like)My Implementation
![Page 32: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/32.jpg)
プロセス参加・脱退時の挙動 4 MB の broadcast を繰
り返し実行 4 台のクラスタに分散
された 160 プロセッサ Broadcast 中にプロセ
スが脱退・再参加 t = 0 [s]
1 仮想ノード/プロセス t = 60 [s]
半分のプロセスが脱退 t = 90 [s]
プロセスが再参加
0
100
200
300
400
500
600
0 20 40 60 80 100 120
Elapsed Time (secs)
Ban
dwid
th (M
B/s
ec)
Leave
Re-join
![Page 33: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/33.jpg)
発表の流れ1. 背景2. 関連研究3. MPI/GXP
4. 広域環境用の集合通信5. まとめ
![Page 34: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/34.jpg)
まとめ MPI/GXP
Firewall/NAT のある環境で動作 クラスタ間の接続を 2% に制限 1 クラスタで MPICH とほぼ同等の性能 2 クラスタで EP/LU/MG を 1 クラスタより高速に実行
広域環境用の集合通信 静的に Grid-aware な実装の 2倍以内の遅延の
broadcast プロセスが参加・脱退しても高性能な broadcast を継
続
![Page 35: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/35.jpg)
今後の課題提案した集合通信の MPI/GXPへの組み込み ノードの故障や参加・脱退にも適応するメッセ
ージパッシングシステムの作成 ノードの使用状況などにも適応するシステムの
研究
![Page 36: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装](https://reader034.vdocuments.net/reader034/viewer/2022042718/56814737550346895db47634/html5/thumbnails/36.jpg)
発表文献 ジャーナル・トランザクション
1. International Journal of High Performance Computing and Networking (IJHPCN). Vol.3, No.4, 2006 (To appear)
2. 情報処理学会論文誌:コンピューティングシステム. Vol.46 No. SIG 12 (ACS 11), 2005 年 8 月.
3. 情報処理学会論文誌:コンピューティングシステム. Vol.45 No. SIG 11 (ACS 7), 2004 年 10 月.
査読付き学会1. 6th IEEE/ACM International Workshop on Grid Computing
(Grid2005), Seattle, November 2005.
2. 先進的計算基盤システムシンポジウム( SACSIS2004 ),札幌, 2004 年 5 月
その他査読なし学会 2件、ポスター発表 1件