340 likes | 454 Views
修論の概要. M2 弘中 健. 背景. 広域環境オーバレイ LAN/WAN 並列分散計算に活用 長い・短いメッセージ オーバレイが必須 NAT/firewall WAN 接続を疎にしたオーバレイ むしろオーバレイが高性能 ボトルネックリンク パケットロス. NAT. 中継ノードの送受信. src. dst. 長いメッセージに着目 フロー制御が必要 バンド幅の違い (100Mbps ~ 1Gbps) ボトルネックリンク クラスタのゲートウェイ リンク フロー制御をしない 受信 してバッファ Best-effort で 送信
E N D
修論の概要 M2 弘中 健 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
背景 • 広域環境オーバレイ • LAN/WAN • 並列分散計算に活用 • 長い・短いメッセージ • オーバレイが必須 • NAT/firewall • WAN接続を疎にしたオーバレイ • むしろオーバレイが高性能 • ボトルネックリンク • パケットロス NAT www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
中継ノードの送受信 src dst • 長いメッセージに着目 • フロー制御が必要 • バンド幅の違い(100Mbps ~ 1Gbps) • ボトルネックリンク • クラスタのゲートウェイリンク • フロー制御をしない • 受信してバッファ • Best-effortで送信 • バッファオーバーフロー • 安直解:有限バッファの問題 • デッドロック • Un-Reliableな通信 • UDP-likeなAPI • 何も解決してない underlay bottleneck www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
デッドロック • 接続毎に有限な送信バッファ: • 接続間に依存関係を生み出す • 「接続Aからのデータは接続Bに流す」 • 接続Bのバッファが一杯になると 接続Aから受信不可・転送がblockする • 多数の転送が一つにリンクを使用する場合 • 1つの転送が使い終わるまで他はblock 転送1:A→B A 依存関係: 1:A→B 2:C→B 転送2:C→B B C www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
デッドロックの例 • 複数ノード間の転送 • 転送間の依存関係にサイクル www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
デッドロックフリールーティング • 転送間のデッドロックを防ぐ • 並列計算プラットフォームのインターコネクト • 有限バッファを持つスイッチが ノード間の転送をロスレスに中継 • 以後、DLFルーティング • 課題:広域オーバレイに向けて • 不均一なネットワーク • WAN/LANにリンクが混在する • Underlayへの考慮が必要 • 物理トポロジーのグラフへの www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
広域環境のunderlay情報を活用 • バンド幅マップ • ネットワークの木構造 • Leafは各ノード • スイッチ・ノード間のバンド幅 • 高速な自動測定 • [長沼 et al.’08] www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
研究の目的 • 有限バッファでデッドロックしない 広域オーバレイ • reliableなP-P通信を提供 • デッドロックフリールーティング • 広域オーバレイのコンテキストに適用 • 既存のルーティング手法 • 既存のルーティングをWAN/LAN対応にする • Underlay情報を活用する www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
既存のオーバレイ • RON(Resilient Overlay Network) • [Andersen et al. ‘01] • UDP-likeなsocket APIを提供 • 全体全接続の冗長なオーバレイ • フロー制御・reorderingは行わない • Spines • [Amir et al. ’02] • TCP/UDPsocket APIを提供 • オーバレイではUDP上でflow制御・reorderingを実装 • 各ノードの状態はブロードキャストと更新し合う • DiskRouter • [Kola et al. ‘04] • ファイル転送用のオーバレイ • バッファが溢れたらdiskを使う • Fullになったら受信をブロックする • Deadlockの恐れ www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
DLFルーティングの概要 • デッドロックの原因 • 使用するリンクの依存関係にサイクルがある • デッドロックフリールーティングの概念 • ネットワークの無方向グラフを与えられる • 1転送が使えるエッジの順番に制約を設定、サイクルを防ぐ • 「エッジAを使った後はエッジBを使ってはならない」 Link dependency www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
Updownルーティング OK • ルートノードを定義 • ルートから幅優先探索 • 昇順にIDを振る • 深さを振る • ノードの深さでエッジの方向を定義 • 「上」、「下」 • 同じ場合、IDで解決 • 制約: • 「下」のエッジを使った後に「上」のエッジは使用不可 0:0 2:1 1:1 6:2 5:2 4:2 3:2 NG www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
Ordered linkルーティング • [Chiu et al. ‘02] • グラフの各エッジに「ランク」を昇順に付ける • 手法 • step 0: i = 1 • step 1:グラフからスパニングツリーを構成するエッジ達を選び、ランクをiを振る • step 2: i = i + 1 • ランクが振られていないノードがある限り、step 1に戻る • 制約 • ランクiのエッジを使った後にランクi未満のエッジは使えない Rank : 1 Rank : 2 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
広域環境でDLFの問題点 • 遅い転送がリンクを占有してしまう • 速い転送が待たされる • ordered-link • クラスタ間が疎なオーバレイ • クラスタ間接続が低いランクになる • クラスタ間通信にはまず、低いランクのリンクしか使えない fast slow 回り道 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
DLF全般の問題 • DLFは制約を与える • ルーティングテーブルの構築方法は与えてない • 制約の元でルーティングを行うことは自明ではない • Updown • 調査の限り、算出方法はない • Ordered-link [Chiu et al. ‘02] • All-pairs shortest path: O( n^2e^2 ) • Bellman-Ford: O(n^2e) 近似解 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
現在の提案 • DLFルーティング • 競合する複数の転送が交互に リンクを占有できるようにする • 転送のバンド幅と比例した配分 • Dijkstra-likeなルーティングテーブルの構築 • Updown • Ordered-link www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
交互にリンクを占有 • 各転送はデータを サイズMに分割して転送 • サイズMのデータを転送する間 転送に用いるリンクを占有 • サイズMは転送のバンド幅 に比例した値に設定する • バンド幅マップ • 各転送がリンクを占有する時間 は同じになる www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
Dijsktra-likeな計算(1/3) • 準備 • R個のrankがあるとする • Updownの時:R=2とする • 各ノードをR個複製する • (node-id, rank-id)を識別子とする • 各無方向リンクを2つの有方向リンクとする • それぞれの有方向リンクにrankを割り当てる • Ordered-link • 有方向リンクのペアに無方向リンクのランクを割り当てる • Updown • Up方向にランク: 0 • Down方向にランク:1 (nid, R-1) nid (nid, 0) r r r 0 1 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
Dijsktra-likeな計算(2/3) • 制約 • (nid, r)のノードはランクr以上のリンクのみ たどれる • (n0, r)がリンクr’を使ってn1に渡る時、 (n1, r’)に到達する • 初期条件 • ノードsrcからスタート • (src, 0), … (src, R-1)までの距離を0に初期化 r' (nid, r’) (nid, r’) (nid, 0) www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
Dijsktra-likeな計算(3/3) • 計算量 • Dijkstra: |E| + Vlog|V| • フィボナッチヒープを使うとdecrease-key: O(1) • レベル数:R • |E| = eR • |V| = nR • eR + (nR) log(nR) • 最悪(全対全):R = n • 各ソースについて解くが分散計算が 容易に出来る www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
評価 • マイクロベンチマーク • フロー制御の確認 • 有限バッファの確認 • バンド幅の分配 • DLFルーティングのコスト • Many-to-many通信の性能 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
フロー制御 • クラスタ内転送のスループット • istbs内 • ボトルネックがある転送のスループット • istbs000 → istbs001 → keio000 → keio001 istbs-keio:88Mbps Istbs:640~880Mbps www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
バッファ管理 • Gather: • istbs(95) -> keio(11) クラスタ • keio000にgather • オーバレイ: クラスタ間は「ゲートウェイ」で繋ぐ • クラスタ内:全体全接続 • クラスタ間:Istbs000, keio000間に1接続 • istbs000のバッファ使用量をモニター • 有限バッファにした場合・しなかった場合 1link: unlimitedbuff 1link: 12.8 MBbuff www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
バンド幅の分配 • istbs(38), keio(11) • istbs000へGather: 50MB • 受信バンド幅をモニタ istbs keio www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
DLFルーティングのコスト • DLFにしない場合とRTの内容を比較 • Deadlockを考慮せず、最短経路を解いた場合 • 比較項目 • 全経路のhops数 • 全経路のバンド幅使用率 • 全ノードの中継回数 • 冗長な物理トポロジーホップ数 • InTrigger, kototoi, istbsの情報でsimulation • 500以上のノード • オーバレイ:random graphで密度: 0.1 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
全経路のhop数 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
全経路のバンド幅使用率 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
全ノードの中継回数 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
冗長な物理ホップ数 • オーバレイを用いてノードを中継する • 無駄な物理リンクを使用する • 物理リンクの共有で他転送と衝突 • オーバレイを使うことによる余分な物理リンクホップをすべての経路に関して計算 • トポロジー情報を使う www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
冗長な物理ホップ数 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
全対全通信 • istbs/chibaで実験 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
まとめ • 広域オーバレイ転送の要件 • 有限バッファで転送出来る • 転送がデッドロックしない • デッドロックフリールーティングを適用 • バンド幅分配のための簡単な提案 • デッドロック未考慮の場合とは大差がない • ランダムグラフでは・不均一に疎なグラフは別 • 多クラスタAll-to-All通信では オーバレイ+DLFでむしろ高性能 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
今後の目標 • 不均一に疎なグラフでDLF • ordered-linkのホップ数を克服 • クラスタ間が疎なオーバレイ • クラスタ間接続が低いランクになる • クラスタ間通信にはまず、低いランクのリンクしか使えない 回り道 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
極端なケース • Gatewayを用いたオーバレイ • 各クラスタに1ゲートウェイ • istbs-chibaでルーティングテーブルを解析 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf
極端なケースの緩和 • 各クラスタにn個にゲートウェイ • n = 5 www.logos.ic.i.u-tokyo.ac.jp/~kenny/data/mthesis_report.pdf