パケットペーシングを用いた
集団通信アルゴリズムの
シミュレーション評価
○ 柴村英智1) 薄田竜太郎1) 三輪英樹2)
三吉郁夫2) 井上弘士3)
1) 九州先端科学技術研究所
2) 富士通株式会社
3) 九州大学
発表の概要と流れ
►概要 集団通信アルゴリズムにパケットペーシングを適用し、 シミュレーション評価を行った
⇒ パケットの送信間隔を調整することで高速化
►発表の流れ 背景
目的
実験概要
シミュレーション結果
まとめ
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 2
背景
►ペタ/エクサ コンピューティング時代に「集団通信」は使えるのか?
大きな問題
動かない(かも): メモリ不足
ノード数増大、メニーコア化
遅い(かも): 通信混雑
FatTree網 ⇒ メッシュ/トーラス網
解決方法
使わない ⇒ アプリケーション毎に通信アルゴリズムを考える
速いものを選ぶ ⇒ 集団通信アルゴリズムの動的選択
なんとかしよう ⇒ 省メモリで高速な集団通信機構の開発
省メモリ(実装)については別途研究
集団通信の高速化に焦点を絞る
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 3
集団通信の高速化
►高速化の方法 新規に集団通信アルゴリズムを開発
システムとの親和性が重要
適応ルーティングの利用 集団通信は高トラフィック ⇒ 渋滞を迂回しても結局は渋滞
パケットペーシング ネットワークへのパケット投入を抑制(Injection Rate Control)
►通信混雑による遅延の増加 パケットがひとたびブロックされると、 後続パケットの転送再開が遅れる 例) 交通渋滞時: 先行車両が進み始めても
自車はすぐには進めない
続々とパケットが投入され遅延が累積
⇒ パケットの投入間隔を制御(ペーシング)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 4
ブロッキング発生による後続パケットの遅延発生
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 5
A
B
ホップ数
転送が開始された(ブロッキングの原因となる)パケット(A)に対して、パケット(B)は
「パケットのリンク転送時間×(ホップ数+バッファでの順番-1)」だけ転送開始が遅れる
バッファでの
順番-1
パケットペーシング
►指定する間隔(パケット間ギャップ)を空けて、
パケットをネットワークに送出
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 6
パケットペーシング無し
(パケット間ギャップ=0) パケットペーシング有り
(パケット間ギャップ=1)
■通信時のパケットの流れ
1 2 3 4 1 2 3 4 5 6
1パケット分のギャップ
通信効率を最適化(通信時間を最小化)するためには、
適切なパケット間ギャップの導出がポイント
目的
►一般的な集団通信アルゴリズムに対する
パケットペーシングの効果を調査
► SWoPP金沢2010
リッチなルータ(複数NICを搭載)と専用アルゴリズムを評価対象
⇒ バンド幅をほぼ最大限に活用できた
► SWoPP鹿児島2011
一般的なインターコネクト(1NIC)、一般的なアルゴリズム(MPI_All~系)を対象
⇒ パケットペーシングは有効なのか?
⇒ ホップ数に応じたペーシングは効果があるのか?
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 7
SWoPP金沢2010
► 同時送信可能なNICを4つ搭載した2次元トーラス網を対象に、A2ATアルゴリズム(全対全通信)とペーシングを適用
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 8
理想実行時間:24.0ms
ペーシング有り実行時間:25.8ms ・3.2倍の高速化
・理想実行時間の
107.5%
ペーシング無し
ペーシング有り
ペーシング無し実行時間:84.0ms
理想実行時間
理想実行時間
柴村他、パケットペーシングを用いた最適全対全通信
アルゴリズムのシミュレーション評価、SWoPP金沢2010
実験概要
►実験1:様々なパケット間ギャップによる評価
集団通信アルゴリズムに対するペーシングの有効性調査
パケット間ギャップを、0(ペーシング無し)から最大ホップ数まで変化
►実験2:ホップ数に応じたパケットペーシング
ホップペーシングによる集団通信の高速化
パケット間ギャップ=ホップ数-1
► NSIM(インターコネクトシミュレータ)を用いて、集団通信の実行時間を算出
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 9
評価対象インターコネクト(1)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 10
● トポロジ:2次元/3次元トーラス網
■ ルーティング:次元順+日付変更線
+X
-X
+Y
-Y
+Z
-Z
+X
-X
+Y
-Y
+Z
-Z
■ NIC数:1
リンクバンド幅:4GB/s(単方向)
仮想チャネル数:2
仮想チャネルバッファ:2KiB(MTU)×4
4GB/s 4GB/s
■ パケット転送方式:VCT(フリット長:16B)
パケット長:32B~2KiB(ヘッダ長:32B)
16GB/s 16GB/s
■ フロー制御方式:クレジットベース
3次元トーラス網の場合
評価対象インターコネクト(2)
► メモリ・DMA転送バンド幅: 16GB/s
► MPI関数処理オーバヘッド: 200ns
► ルーティング計算時間(RC): 4ns
► 仮想チャネル設定時間(VA): 4ns
► スイッチ設定時間(SA): 4ns
► フリット転送時間(ST): 4ns
► スイッチ遅延時間: 78ns
► ケーブル遅延時間: 10ns
► MPIプロセス数/ノード: 1 ※ 以上は実在しないシステムであるが、一般的なスーパーコンピュータの仕様・構成に近い
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 11
様々なパケット間ギャップによる評価
実験1
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 12
実験1:様々なパケット間ギャップによる評価
► アルゴリズム Pairwise exchange (pwx) Ring (ring) Simple spread - 集約型 (ssprd) Simple spread - 拡散型 (ssprd2) Bruck (bruck)
► トポロジ 2次元トーラス網/3次元トーラス網 (1NIC)
► ノード数 64、128、256、512、1024
► メッセージサイズ 32KiB、64KiB、128KiB、256KiB、512KiB
► パケット間ギャップ 0 (ペーシング無し) ~ 最大ホップ数、ステップ:1
► 評価指標 MGEN実行時間(集団通信の実行時間)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 13
集団通信アルゴリズム(pwx)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 14
0 1 2 3 4 5 6 7
プロセス
ステップ
1
2
3
4
5
:
ステップ: p - 1
集団通信アルゴリズム(ring)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 15
0 1 2 3 4 5 6 7
プロセス
ステップ
1
2
3
4
5
:
ステップ: p - 1
集団通信アルゴリズム(ssprd2 拡散型)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 16
0 1 2 3 4 5 6 7
プロセス
ステップ
1
2
3
4
5
:
ステップ: p
集団通信アルゴリズム(ssprd 集約型)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 17
0 1 2 3 4 5 6 7
プロセス
ステップ
1
2
3
4
5
:
ステップ: p
集団通信アルゴリズム(bruck)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 18
0 1 2 3 4 5 6 7
プロセス
ステップ
1
2
3
ステップ: log(p)
基本的にはringアルゴリズムと同じ通信パターン
ただし、通信ステップ毎にメッセージサイズが増加
各パケット間ギャップ値における実行時間
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 19
2次元トーラス網:512ノード 3次元トーラス網:512ノード
spsprd, spsprd2
bruck
pwx&ring
spsprd, spsprd2
bruck
pwx&ring
各パケット間ギャップ値における実行時間
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 20
2次元トーラス網:1024ノード 3次元トーラス網:1024ノード
spsprd, spsprd2
bruck
pwx&ring
spsprd, spsprd2
bruck
pwx&ring
各パケット間ギャップ値における実行時間
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 21
2次元トーラス網:1024ノード 3次元トーラス網:1024ノード
理想実行時間(32KiB):34.1msec.
理想実行時間(64KiB):68.2msec.
理想実行時間(32KiB):17.0msec.
理想実行時間(64KiB):34.1msec.
pwx
ring
pwx
ring
pwx ring
pwx
ring
ssprd
ssprd
実験1のまとめ
► ssprd、ssprd2に対するペーシングの効果は大きい 場合によっては10倍以上の高速化
短時間で大量のパケットをネットワークに投入するため
ただし、実行時間はpwxやringよりも遅い
パケットペーシングは、集団通信のみならずトラフィックの 多い一般アプリケーションに対しても有効では?
► pwx、ring、bruckに対する効果は小さい pwx (2DT:1.6倍、3DT:1.4倍、スループット:33~38%)
ring (2DT:1.9倍、3DT:1.6倍、スループット:23~24%)
bruck (2DT:1.2倍、3DT:1.1倍、スループット:6~8%)
pwxは速いが、プロセス数は2べき数のみ
メッセージサイズが大きくなると、ペーシングの効果も 増える傾向
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 22
理想的な実行に対して
ホップ数に応じたパケットペーシング
実験2
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 23
実験2:ホップ数に応じたパケットペーシング
► アルゴリズム Pairwise exchange (pwx) Ring (ring) Simple spread - 拡散型 (ssprd) Simple spread - 集約型 (ssprd2) Bruck (bruck)
► トポロジ 2次元トーラス網/3次元トーラス網 (1NIC)
► ノード数 64、128、256、512、1024
► メッセージサイズ 32KiB、64KiB、128KiB、256KiB、512KiB
► パケット間ギャップ(ホップペーシング) ホップ数 ー 1 = ギャップ値の上限
► 評価指標 MGEN実行時間(集団通信の実行時間)
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 24
ホップペーシング
► ある時刻にノードでの送(受)信は一つ(NIC=1)の場合、送受信ノード間のリンクは、Nホップ時に高々N個のメッセージで共有
► パケット間に(N-1)パケット分のギャップを挿入し、リンクの帯域効率を向上 (逆にこれ以上空けても無駄) パケット間ギャップ = ホップ数-1
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 25
src dst
パケットの流れ
2パケット分のパケットペーシング
3ホップ時は、3メッセージで1リンクを共有
ホップペーシングによる実行時間
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 26
512ノード
1024ノード
ホップペーシングによる速度向上率
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 27
64ノード 128ノード 256ノード
512ノード 1024ノード
実験2のまとめ
►ノード数増加
⇒ ペーシングの効果も増加
⇒ pwxは効果なし(衝突が本来少ない) ⇒ 2次元トーラス網よりも3次元トーラス網に効果が現れ出す
►SimpleSpreadに対する効果が大きい
⇒ 短時間で大量のパケットをネットワークに投入するため(ただし、実行時間はpwxやringよりも遅い)
► ring、bruckは実験1よりも1割ほど高速化
⇒ リング系のアルゴリズムとの親和性が高いため
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 28
まとめ
►一般的な集団通信アルゴリズムに対する
パケットペーシングの効果を調査
一般的な集団通信アルゴリズムでもパケットペーシングの効果あり
高トラフィックな通信パターンに特に有効
アルゴリズムや通信ごとに適切なパケット間ギャップの設定が重要
プロセッサには「キャッシュ」を!
インターコネクトには「ペーシング」を!
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 29
On-going Works
►集団通信アルゴリズムの通信ステップ毎に、最適化なパケット間ギャップを求める手法の開発
► ロードインバランス/OSジッターを含めた
シミュレーション評価
2011/7/28 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 30