先駆的科学計算に関するフォーラム2015(Forum on Advanced Scientific Computing 2015)～平成26年度 先端的計算科学研究プロジェクト成果報告～

FX10におけるパケットペーシング
ならびにその活用技術の有効性調査

2015年4月24日(金)（公財）九州先端科学技術研究所
次世代スーパーコンピュータ開発支援室
柴村英智<shibamura@isit.or.jp>

研究概略► 研究対象

HPCアプリにおけるメッセージ通信► 動機

インターコネクトでの通信混雑（パケットによる渋滞）を解消・抑制し、メッセージ通信（⇒アプリの実行）を速くしたい► 提案手法

混雑が発生しないように、パケットペーシングして（パケットの送信間隔を空けて）送る► これまでの成果

シミュレーションによってパケットペーシングの有効性を確認
 実機（FX10）におけるパケットペーシングの有効性を確認
► 本研究での成果

実戦的なアプリケーションに対するパケットペーシングの有効性を調査
 パケットペーシングを阻害するパケットが存在することを確認

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 20152

発表の流れ► パケットペーシングとは？
► これまでにわかったこと► 実行結果が異なる場合がある► 仮説／検証実験／考察► まとめ／今後の課題

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 20153

パケットペーシングとは？
► 指定する間隔（パケット間ギャップ）を空けて、パケットをネットワークに送出

パケットの停止・再送遅延を抑制

Packet flow A
PacketGap

Gap

PacketGap

Gap

PacketGap

Gap

PacketGap

Gap

PacketGap

Gap

PacketGap

Gap = 2

Packet flow B
Gap

PacketPacketPacketPacketPacket flow C
Gap

Gap

通信効率を最適化（通信時間を最小化）するためには、適切なパケット間ギャップの導出がポイント
2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 20154

具体的にはどう操作するのか？
►ジョブ実行時のオプション指定# mpiexec -mca common_tofu_packet_gap $gap_size※ 0 ≦ $gap_size ≦ 255
０： パケットペーシングなし
８： 1パケット分のギャップ挿入 （本研究におけるGAP=1）
２５５： 32パケット弱分のギャップ挿入△ ジョブ単位でしか指定できない ⇒ きめ細かな制御はできない◎ 利用は簡単►

Tofuライブラリを用いて通信毎に制御
union tlib_toq TOQ;/* Transmit Order Queue */：TOQ.put.gap = gap;/* Inter-packet gap */：ret = tlib_exec_toq(src_tni, CQ, 1, &TOQ);/* Issue command (put)*/○ 通信単位で指定可能△ MPI通信ではなく、RDMA通信 ⇒ MPI相等のメッセージ通信関数を作成

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 20155

これまでにわかったこと► 「シミュレーション」でわかったこと

パケットペーシングの有効性
通信アルゴリズムに応じたペーシング効果
メッセージ長やノード数によるペーシング効果の増加


通信アルゴリズムによっては通信帯域をほぼ最大に利用
ポストペタ時代の通信基盤技術となりうる

パケットペーシングの弱点


通信開始時刻のインバランス
通信アルゴリズム、トポロジ、ノード数によって異なる
 場合によってはペーシングの効果が損なわれることも► 「実機実行」でわかったこと

パケットペーシングの有効性

2015/4/24

メッセージ長やノード数によるペーシング効果の増加
All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2015

6

実験例：ランダムリング通信► ランダムリング通信

全プロセスでリング接続を形成
 左右のプロセスはランダムに選択
 左右のプロセスと送受信
 HPC Challengeの1ベンチマーク

オーダードリング通信

ランダムリング通信► ノード数：12，24，48，96，192，384，768► プロセス数： ノード数×16コア► パケット間ギャップ：0（ペーシング無）～16.0


ジョブオプションで指定► メッセージサイズ： 16KiB～4MiB
2015/4/24

パケットヘッダサイズ含む
All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 20157

ランダムリング通信（12～96ノード）
FX10 12nodes (192cores)

FX10 24nodes (384cores)
1.15
16 KiB

1.10

32 KiB

1.05

64 KiB128 KiB

1.00

256 KiB

512 KiB

0.95

1 MiB

Effect of Packet Pacing
Fast <=+=> Slow

Effect of Packet PacingFast <=+=> Slow

1.15

2 MiB

0.90
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
Inter-Packet GAP

32 KiB

1.05

128 KiB
256 KiB

512 KiB

0.95

1 MiB
2 MiB

0.90

4 MiB

0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
Inter-Packet GAP

4 MiB

FX10 96nodes (1,536cores)

1.15

1.15

メッセージ長が大きくなるに
16 KiB
1.10
つれてペーシング効果も向上
32 KiB

1.10
1.05

64 KiB128 KiB

1.00

256 KiB

512 KiB

0.95

1 MiB
2 MiB

0.90
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0Inter-Packet GAP

4 MiB

Effect of Packet Pacing
Fast <=+=> Slow

Effect of Packet Pacing
Fast <=+=> Slow

64 KiB

1.00

FX10 48nodes (768cores)

2015/4/24

16 KiB

1.10

1.05

16 KiB
32 KiB
64 KiB128 KiB

1.00

256 KiB

512 KiB

0.95

1 MiB
2 MiB

0.90
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
Inter-Packet GAP

4 MiB

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 20158ランダムリング通信（192～768ノード）
FX-10 384nodes (6,144cores)

1.20

1.20

1.15

1.15

1.101.05

16 KiB

1.00

32 KiB
64 KiB

0.95

128 KiB

Packet PAcing Effect
Fast <=+=> Slow

Packet PAcing Effect
Fast <=+=> Slow

FX-10 192nodes (3,072cores)

1.10
1.05

16 KiB

1.00

32 KiB

0.90

0.90

0.85

0.85
0.0

4.0
8.0
12.0
Inter-Packet GAP

16.0

64 KiB

0.95

128 KiB

0.0

4.0
8.0
12.0
Inter-Packet GAP

16.0

FX-10 768nodes (12,288cores)
1.20

Packet PAcing Effect
Fast <=+=> Slow

1.15
1.10
1.05

16 KiB

1.00

32 KiB

64 KiB

0.95

128 KiB

ノード数が大きくなるにつれてペーシング効果も向上
12ノード ⇒ 0.94程度

0.90
0.85
0.0

2015/4/24

4.0
8.0
12.0
Inter-Packet GAP

16.0

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2015

9

実行結果（実行時間）が異なる場合がある► 経緯


前年度に取得できなかったデータを取得


前年度の最終実行日に障害発生 ⇒ 未実行► 一部、昨年度のデータと比較

同一実行で実行結果が異なる


ランダムリングに用いる乱数のシードは同一► 実行結果が異なる点

パケットペーシングの効果
 グラフにノイズのようなスパイク 同じ結果の様に見える場合も

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201510

96ノード、192ノード

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201511

384ノード、768ノード

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201512

仮説
► パケットペーシングを阻害するパケットが存在するのではないか？
インターコネクトを流れる可能性がある通信

ハートビート・パケット

I/OパケットTofuインターコネクトのZ軸を通過

その他のシステムパケット

2015/4/24

ノード／リンクの障害確認

ノード情報など

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2015

13

検証実験
► 目的


自プログラム以外によるインターコネクトを流れるパケットの存在を確認する► 観測方法無通信のMPIプログラムを一定期間実行し、その間のインターコネクトを観測 「Tofu PA情報取得機能」の利用（FX10）


Tofuインタコネクトに実装されているPA (Performance Analysis)機能を利用して、Tofu PA情報 (Tofuインタコネクト上の通信に関する統計情報) を取得
 実行時の環境変数設定とプログラム中に観測の開始／停止関数を記述するだけ

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201514

Tofu PA情報取得プログラム#include <stdio.h>#include <mpi.h>#include "fj_tool/fjtofupa.h“
int main(int argc, char* argv[]){
int i;
MPI_Init(&argc, &argv);
MPI_Barrier(MPI_COMM_WORLD);
sleep(3); /* バリアパケットの影響を排除 */for(i=1;i<=3600;i++) {/* 3600秒間計測 */fj_tofupa_start(“”, i, 0); /* 計測開始 */sleep(1);fj_tofupa_stop(“”, i, 0); /* 計測停止 */}MPI_Finalize();
return (0);}2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201515

ランク0（12ノード実行、一般実行）2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201516

ランク0（768ノード実行、占有実行）

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201517

ランク1（12ノード実行、一般実行）2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201518

ランク1（768ノード実行、占有実行）

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201519

考察
► ほぼ毎秒、なんらかの通信が発生► 5分、10分毎に定期的な通信が発生► ノード毎に通信方向が異なる► ランク0では大量の通信が発生► パケットペーシングへの影響有り► 自プログラム以外での通信を考慮したペーシング手法が必要

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2015

20

まとめ
► 「FX10におけるパケットペーシングならびにその活用技術の有効性調査」► 実験結果からFX10では、パケットペーシングを阻害する通信が存在することを確認
 最適なパケット間ギャップを入れても効果は低い
 自プログラム以外での通信を考慮したペーシング手法が必要

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201521

今後の課題► 他の通信の影響を受けにくい動的なパケットペーシ

ング手法の検討
リアルタイムのネットワーク混雑情報収集技術
 ネットワーク混雑情報の管理・報知技術
► 実戦的なアプリケーションへのパケットペーシングの適用

2015/4/24

All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 201522