Presentation is loading. Please wait.

Presentation is loading. Please wait.

進捗報告 金田憲二.

Similar presentations


Presentation on theme: "進捗報告 金田憲二."— Presentation transcript:

1 進捗報告 金田憲二

2 導入 メッセージパッシングライブラリ 各計算機に仮想ノードの集合を割り振り 宛先を仮想ノードで指定して通信
動的に計算機が増減するなかで動作可能 複数サブネットにまたがる計算機を利用可能 各計算機に仮想ノードの集合を割り振り 宛先を仮想ノードで指定して通信

3 発表の概要 通信アルゴリズム 実験 まとめと今後の課題

4 通信アルゴリズム

5 通信に必要な機能 IPアドレスと仮想ノード集合とのマッピング 通信路の迂回 ファイアウォール、NATが存在
TCP/IPでは全体全の通信ができない csc000 tuba csc001 beatrice

6 基本方針 生成可能なTCPコネクション全てを張りっぱなしにする 張りっぱなしにしたコネクションを通してメッセージを配送する
DSDV というアルゴリズムでルーティング表を構築する ルーティング表の大きさ=O(ノード数)

7 問題点 無駄なルーティング表の更新メッセージの伝播 生成維持するコネクションの数が莫大 全体全の通信が可能なクラスタ内部
特にsshのコネクション

8 通信アルゴリズムの改良 (1/4) 動的にgatewayを求める 強連結グラフG=(V,E)において
 以下の条件を満たす集合V’をgatewayとする    ∀v ∈ V - V’, ∃v’∈V’, (v’ v) ∈E

9 通信アルゴリズムの改良 (2/4) non-gatewayは gatewayのどれか一つとコネクションを維持
隣接ノード宛のメッセージは、隣接ノードに直接送信 それ以外宛てのメッセージは、gatewayに送信 (ルーティング表の更新メッセージを伝播させない)

10 通信アルゴリズムの改良 (3/4) gatewayの求め方[Jie Wo02] 強連結グラフG=(V,E)の元で
 {u∈V | ∃v,w ∈V, (v,u) ∈ E ∧ (u,w) ∈ E ∧ (v,w) ∈ E }  はgatewayの集合 v w u uはgateway

11 通信アルゴリズムの改良 (4/4) local subnet内にgatewayが存在しない場合 gatewayを一つ追加する
例)その中で一番大きな仮想ノードをもつ計算機

12 メッセージ配送の信頼性 ノードの脱退時にキューにたまっているメッセージをどうするか 現段階では脱退時に以下のように処理を行う
自ノードにメッセージがこないようにする 隣接ノードのルーティング表をいじる なるべく他の計算機にキュー中のメッセージを委譲する 100%他のノードにメッセージを委譲できるとは限らない 例)隣接ノードも脱退中 ある程度時間がたったらディスクに保存して、終了

13 実験

14 Ray-tracing 動的負荷分散するRay-tracing 各計算機が、仮想ノード空間を重複なく担当
各計算機は、randomに選んだ仮想ノードからtaskをsteal 動的に計算機が増減しても、steal requestの送信先が常に存在

15 実験結果 (1/2) 1 subnet 約40倍のspeed up CPU: Ultra Sparc 750MHz x 2
Network: 100Mbps Ethernet 約40倍のspeed up

16 実験結果 (2/2) 3 subnets SF15K : Ultra Sparc 900MHz

17 Integer Sort 個々の計算機がランダムに整数を保持 整数の再配布 ローカルソート どの計算機がどの整数をソートするかは既知 1 7
5 8 3 6 2 4 A B C D 2 1 5 8 3 6 4 A B C D 7 1 2 3 4 5 6 7 8 A B C D

18 動的に計算機が増減するInteger Sort
オリジナルはMPI プログラム(from NPB2.3) 計算機の台数は固定 MPI 集団命令を使用 MPI_Bcast 、MPI_Reduce、MPI_Allreduce, MPI_Alltoall 、MPI_Alltoallv MPI集団命令をPhoenixのsend/recvで置き換え MPI_Alltoall、MPI_Alltoallvについて説明する

19 MPI_Alltoall、MPI_Alltoallv
MPI_Alltoall(sbuf, c, rbuf, ...) 計算機 i のrbuf[c*j, ... c*(j+1)-1]     := 計算機 j のsbuf[c*i, .., c*(i+1)-1] MPI_Alltoallv(sbuf, c[], rbuf, ...) cの値が計算機ごとに可変 IS内での使われ方 整数の再配布 実行時間の大部分 A1 A2 B1 B2 C1 C2 D1 D2 A3 A4 B3 B4 C3 C4 D3 D4 A B C D A1 B1 A2 B2 A3 B3 A4 B4 C1 D1 C2 D2 C3 D3 C4 D4 A B C D

20 MPIからPhoenixへの変換 (1/4) 変換方法1 (static IS) MPI_AlltoAllをそのまま実装 台数固定でのみ動作
一つの計算機に一つの仮想ノードを割り当て 台数固定でのみ動作 (性能測定用)

21 MPIからPhoenixへの変換 (2/4) 変換方法2 (dynamic IS) 計算機の動的な増減を可能にする
仮想ノード集合の大きさ=整数の個数 仮想ノード集合[a ... b]を担当する計算機は、a番目からb番目の整数をローカルソート

22 MPIからPhoenixへの変換 (3/4) 変換方法2 (dynamic IS) 以下の繰り返して、整数の再配布を行う 1 2 5 8 9
自分より範囲が下の整数を 自分より値が下の仮想ノードのどれかに送信 自分より範囲が上の整数を 自分より値が上の仮想ノードのどれかに送信 1 2 5 8 9 12 0...3 4...7 8...11 1 2 5 8 9 12 0...3 4...7 8...11 1 2 5 8 9 12 0...3 4...7 8...11

23 Bで送信されたメッセージをAで受信しないようにする
MPIからPhoenixへの変換 (4/4) その他 個々の集団通信ごとに、送信メッセージに一意なtagをつける tagの一致するメッセージしか受信しない Bで送信されたメッセージをAで受信しないようにする     ... ph_reduce(....) /* A */ ph_reduce(....) /* B */

24 実験結果 (1/2) 仮想ノード集合は均等に分割 CPU: 1~16台:PIII 800MHz x 2
Network: 100base Ethernet Class : C (134,217,728 keys)

25 実験結果 (2/2) 通信時間 vs. 計算時間 (32台で実行時) 整数の再配布時の通信時間が大部分

26 関連研究 Highly Dynamic Destination-Sequenced Distance-Vector Routing (DSDV) for Mobile Computers Charles Perkins ACM SIGCOMM’94 Conference on Communications Architectures Protocols and Applications, 1994 Extended dominating-set-based routing in ad hoc wireless networks with unidirectional links Jie Wu Parallel and Distributed Systems, IEEE Transactions on Sep, 2002

27 まとめ Phoenixの通信アルゴリズムとその実験

28 今後の課題 実装が不十分な部分の完成 通信アルゴリズムの改良 メッセージ配送の信頼性の保証
TCPコネクションの切断、計算機のクラッシュへ対処


Download ppt "進捗報告 金田憲二."

Similar presentations


Ads by Google