広域分散計算環境における 適応的なメッセージパッシングシステムの...

36
広広広広広広広広広広広広 広広広広広広広広広広広広広広広広広広広 広広広広広 田田田田田 46411 田田田田 2006 田 2 田 13 田

Upload: kiley

Post on 14-Jan-2016

36 views

Category:

Documents


5 download

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 Presentation

TRANSCRIPT

Page 1: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

広域分散計算環境における適応的なメッセージパッシングシステ

ムの設計と実装

田浦研究室46411 斎藤秀雄

2006 年 2 月 13 日

Page 2: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

SharedMemory

メッセージパッシング 従来のクラスタ環境で広く用いられてきた並列

プログラミングモデル Point-to-point 通信( send, receive ) 集合通信( broadcast, reduction )

メッセージパッシングレイヤという抽象化TCP/IP

broadcast

reduction

ID=0

ID=1 ID=3

ID=2

Page 3: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

広域メッセージパッシング 近年、 WAN の帯域が増加 広域環境において並列計算を行う機会が増加

物理的に異なる位置に存在する複数のクラスタ 広域環境はクラスタ環境より複雑

メッセージパッシングのもたらす恩恵はさらに大きい メッセージパッシングシステムはクラスタ環境用のも

のより複雑なものが必要

WAN

Page 4: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

広域環境とクラスタ環境の相違点 クラスタ環境

ノード間で全対全で接続を張るのが単純かつ効果的 広域環境

直接は接続できないノード Firewall の後ろにあるノード Private IP しか持っていないノード (NAT)

メッセージを中継する必要がある

Firewall NAT

Page 5: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

広域環境とクラスタ環境の相違点 クラスタ用の集合通信

すべてのリンクの速度が等しいという仮定の基に設計されている

広域環境用の集合通信 リンクの速度の違いを考慮する必要がある

Root

WAN

Cluster Cluster

Root

Page 6: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

既存手法の問題点 広域計算環境は、静的に捉えてもクラスタ環境

より複雑 既存のグリッド用メッセージパッシングシステ

ムは、広域計算環境を静的に捉えた上で工夫 リンクの速度を考慮した集合通信、 etc.

広域計算環境はさらに動的!実行環境は 実行時まで不明 実行毎に変化 実行中にも変化( e.g., 計算中の資源の増減)

Page 7: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

本研究の貢献1. MPI/GXP

広域環境を動的に捉えた適応的なメッセージパッシングシステム

2. 広域環境用の集合通信 広域環境に適応する高性能な broadcast と reduction 計算中に資源の増減があっても高い性能を維持でき

Page 8: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

発表の流れ1. 背景2. 関連研究3. MPI/GXP

4. 広域環境用の集合通信5. まとめ

Page 9: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

MagPIe

Kielmann et al. ’99 クラスタ間・内で異な

る静的な木を用いる Broadcast

クラスタ間: flat tree クラスタ内: binary tree

実行環境毎に手動で設定する必要がある 各クラスタのノード数 各ノードの属すクラス

タLAN

LAN

LANRoot

Coord.Node

Coord.Node

Page 10: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

MPICH-G2

Karonis et al. ‘03 より多くの階層のトポロジーを考慮した集合通

信 MagPIe より高性能。でもやはり静的!

ノード間で全対全で接続を張る Firewall/NAT のある環境で動作しない TCP send/receive buffer 用に大量にメモリが必要

Buffer に割り当てるべきメモリ量>帯域遅延積

Page 11: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

プロキシを用いるシステム クラスタ間の通信にプロキシを用いるグリッド

用メッセージパッシングシステム 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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

発表の流れ1. 背景2. 関連研究3. MPI/GXP

4. 広域環境用の集合通信5. まとめ

Page 13: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

MPI/GXPの接続確立 実際に接続を試みることによって Firewall の後

ろにあるノードを自動的に検出 実行時に測定した遅延情報を用いて広域接続の

数を制限

各ノード p から他のすべてのノード q への経路が、p から q への最短経路の k 倍以内になるようしながら、最小限の接続を張る

影響大影響小

Page 15: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

三角不等式を用いた 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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

実験:接続数 様々な 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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

実験結果:接続数

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

性能評価 様々な環境で 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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

性能評価 様々な環境で 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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

発表の流れ1. 背景2. 関連研究3. MPI/GXP

4. 広域環境用の集合通信5. まとめ

Page 22: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

提案手法の概要 トポロジーを考慮したスパニング

ツリーを実行時に生成する 遅延を考慮した木(短いメッセージ用) 帯域を考慮した木(長いメッセージ用)

生成された木に沿ってブロードキャストとリダクションを行う

プロセスの増減時には木を更新するRoot

Root

Page 23: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

スパニングツリーの生成 各プロセスをルートとする木を生成

する メッセージパッシングでは全プロセス

がブロードキャストやリダクションのルートになれる必要がある

各プロセスが自律的に… 自分とランダムに選んだ他のプロセス

の間の RTT を測定 各木において適切な親を探す

Root

RTTRTT

RTT

Page 24: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

Rationale

Bernaschi et al. ’98 集合通信の性能をモデル化 遅延→∞:最適な broadcast tree は flat tree 遅延→ 0 :最適な broadcast tree は binomial tree

Flat Tree Binomial Tree

Root Root

Page 25: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

目標 クラスタ内の遅延は小さいが、

最適な木はネットワーク性能による 既存のライブラリはクラスタ内では

深さ log2p の木を使用( p :プロセス数) MPICH: binomial tree MagPIe: binary tree

目標:最適に近い木を生成すること クラスタ間:深さ 1 の木 クラスタ内:深さ約 log2p の木

Binomial Tree

Root

Binary Tree

Root

Page 26: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

Cluster Cluster

Cluster

親の選択 各プロセスができる限り自分に近いプロセスを

親にすれば、クラスタ間で flat tree ができる

Root

Page 27: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

クラスタ内の木の深さ

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

親の選択 プロセス p は、以下

の条件が両方満たされたら、現在の親 parent から親候補 candに親を乗り換える rttp,cand < rttp,parent

distcand,root < distp,root

root

p

distp,root

Page 29: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

プロセス参加・脱退時の挙動 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: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

発表の流れ1. 背景2. 関連研究3. MPI/GXP

4. 広域環境用の集合通信5. まとめ

Page 34: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

まとめ MPI/GXP

Firewall/NAT のある環境で動作 クラスタ間の接続を 2% に制限 1 クラスタで MPICH とほぼ同等の性能 2 クラスタで EP/LU/MG を 1 クラスタより高速に実行

広域環境用の集合通信 静的に Grid-aware な実装の 2倍以内の遅延の

broadcast プロセスが参加・脱退しても高性能な broadcast を継

Page 35: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

今後の課題提案した集合通信の MPI/GXPへの組み込み ノードの故障や参加・脱退にも適応するメッセ

ージパッシングシステムの作成 ノードの使用状況などにも適応するシステムの

研究

Page 36: 広域分散計算環境における 適応的なメッセージパッシングシステムの 設計と実装

発表文献 ジャーナル・トランザクション

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件