ネットワークの情報に基づく 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
モデルの特徴
データサイズによる通信手順の違い
サイズ小: データを分割せずに初めにクラスタ間での通信を行う
サイズ大: データを分割して先にクラスタ内に分布させ、その後
クラスタ間でのデータの通信を行う
通信の際のバンド幅への配慮
当面はバンド幅を考慮しない
モデルの実験を通して、影響を検証しフィードバックする
他の集合通信も似たようなモデル化が可能
今後の進め方
トポロジー推定モジュールの本研究のシステ
ムへの組み入れ
他の集合通信のツリーモデル作り
トポロジーの情報を最大限活かせるツリーモデル
とアルゴリズムの推定
性能測定等の実験を通じてモデルを検証
システムの実装
集合通信の関数群を作成