ネットワークの情報に基づく MPI集合通信アルゴリズムの改善

Download Report

Transcript ネットワークの情報に基づく MPI集合通信アルゴリズムの改善

ネットワークトポロジーの情報に基づく
MPI集合通信アルゴリズムの改良
近山・田浦研究室
60412 吉富 翔太
発表の流れ




研究の背景
関連研究と研究の目的
提案手法
今後の予定
背景
 グリッドコンピューティングの発展
 MPIを用いた大規模な計算
 計算処理の性能をより向上したい
 計算処理中の通信時間をなるべく減らす工夫
 特に集合通信の性能の向上が不可欠
 複数のノード間でデータ通信を行う
 Broadcast データを全体に分配する
 Gather
データを全体から集約する
etc
集合通信のアルゴリズムの研究例
MagPIe [Thilo Kielmann 99]
 特徴
 グリッド上で動作するように最適化されたMPI システムの一つ
 ノードとノードの間の遅延を考慮してデータ通信順序を制御
 問題点
 事前に
 ノードとノードがどのように繋がっているか
 ノードとノードの間の遅延
といった、使用するネットワークの設定を記述する必要がある
 スイッチが多段に接続され階層構造となっているような環境を
あまり考慮していない
関連研究
高速なトポロジー推定 - ネットワークを考慮した並列計算の基盤として[白井 07]
 得られる情報
 計算ノード及びスイッチがどのよ
うに繋がりあい階層構造を成して
いるかというネットワークのトポロ
ジー
 ノードとノードの間のリンクの遅延
8ノードが存在する環境
クラスタA
クラスタB
• 合計4つのスイッチが存在
• 一つのスイッチには2つのノードが接続
• リンクの遅延の大きさを考慮すると、2つ
のクラスタが存在することが推定可能
スイッチ
目的
 ノードやスイッチの階層構造に関する情報を集合通
信に利用
 ノードやスイッチが多段に階層構造を成していることを考慮
した様々な集合通信モデルの作成
 通信開始から全通信終了までの集合通信の実行時間の短
縮
 カプセル化した集合通信関数群の提供
 ネットワークの情報を知らないユーザでも、トポロジーを考
慮した集合通信アルゴリズムが利用できるようなシステム
作り
実現方法
 アプリケーションの実行直前にネットワークの
情報を取得する
ネットワークトポロジーの高速な推定法[白井 07]の利用
 効率の良いデータ通信の実現
得られたネットワークの構造を最大限利用した上で
既存の集合通信のアルゴリズムを修正・適用
提案手法
 アプリケーション実行前(前準備)
1. ネットワークトポロジーを推定し、情報を取得
 アプリケーション実行中
1. 集合通信関数の呼び出し
2. 計算ノードのグルーピング
3. ネットワークの情報を元にノードのツリーを構築
4. データサイズにより適用するアルゴリズムを選択
5. データの送受信
計算ノードのグルーピング
 1つの同じスイッチに繋が
るノードの集合を1つのグ
ループとして扱う
 同じグループに属する
ノード間の通信時間は一
定と仮定する
 起点ノードから他ノードへ
の平均の遅延の大きさに
よって通し番号を付ける
クラスタA
起点ノード
クラスタB
g0
g1
0 1 2 3
g2
g3
4 5 6 7
ツリー構築
 ノード間でどのような順番で通信を行うかを決定
 通信順序決定における優先度
1. 遅延の大きいクラスタ間通信の回数を抑制
2. クラスタ内での総通信ステップ数を少なくする
3. 複数のスイッチをまたいだノード間での通信もなるべ
く抑制
Broadcastによる具体例
 ある特定のノードから他の全ノードへ同じデー
タを分配する通信
 クラスタ内通信
 総通信ステップ数を減らす
 複数のスイッチをまたぐ通信の回数を減らす
 クラスタ間通信
 同一データがクラスタを行き来するのは一度きり
 送受信側で代表のノードを一つずつ選んでその間
で通信
Broadcast
アルゴリズム選択
 データサイズが小さい場合(binomial tree)

データを分割せず通信
1. クラスタ間で通信
2. 各クラスタ内に分配
 データサイズが大きい場合(van de Geijn)

データを分割して通信
1. クラスタ内の全ノードへデータ分割
2. クラスタ間でそれぞれ通信
3. 各クラスタ内でデータを集約
 どの程度のデータサイズを境界とするかは検討中
Broadcast
binomial tree
 データを持っているノードがそ
の時点で持っていないノードへ
通信
 同一グループに属すノードはな
るべくツリー上で近接して配置
 クラスタ・スイッチをまたいだ通
信を極力減らす
 同一グループからデータを受
け取るノードの数をなるべく多
くする
g0
0 1
g1
g2
g3
2 3 4 5 6 7
Broadcast
小さいデータのBroadcast
 始めに全クラスタでデータを共有する
 クラスタ内でbinomial treeを構築し通信
0
1
クラスタB
2
4
3
5
クラスタA
1. 2つのクラスタ間で通信
2. 各クラスタ内で異なるグ
ループと通信
6
7
3. 同一グループ内で通信
Broadcast
大きいデータのBroadcast(1)
 データを最初に保有しているノードが存在するクラスタ内でデータ
を分散して保有(binomial treeのアルゴリズム)
 1対1通信で他のクラスタのノードにもデータを分散
 利点: バンド幅がボトルネックになるのを避ける
0
1
2
3
クラスタA
4
1. クラスタA内の異なった
グループ間で通信
5
2. クラスタA内の同一グ
ループ間で通信
6
7
クラスタB
3. クラスタA内の各ノードがク
ラスタB内の各ノードと通信
Broadcast
大きいデータのBroadcast(2)
 各クラスタごとに断片化したデータを合体させ
て元のデータを復元する
クラスタA
0
2
クラスタB
4
6
4. 同一グループ内で持って
いるデータを交換し合う
5. 異なるグループ内で持っ
ているデータを交換し合う
1
3
5
7
Broadcast
モデルの特徴
 データサイズによる通信手順の違い
 サイズ小: データを分割せずに初めにクラスタ間での通信を行う
 サイズ大: データを分割して先にクラスタ内に分布させ、その後
クラスタ間でのデータの通信を行う
 通信の際のバンド幅への配慮
 当面はバンド幅を考慮しない
 モデルの実験を通して、影響を検証しフィードバックする
 他の集合通信も似たようなモデル化が可能
今後の進め方
 トポロジー推定モジュールの本研究のシステ
ムへの組み入れ
 他の集合通信のツリーモデル作り
 トポロジーの情報を最大限活かせるツリーモデル
とアルゴリズムの推定
 性能測定等の実験を通じてモデルを検証
 システムの実装
 集合通信の関数群を作成