NSIM: 将来の大規模相互結合網を対象とした通信シミュレータの

NSIM: 将来の大規模相互結合網を
対象とした通信シミュレータの開発
○三輪英樹† 薄田竜太郎†† 柴村英智†† 平尾智也††
眞木淳†† 稲富雄一‡ 井上弘士‡
安島雄一郎† 三吉郁夫† 清水俊幸† 安藤壽茂
†富士通株式会社 ††財団法人 九州先端科学技術研究所 ‡国立大学法人 九州大学
2010/6/17
Copyright 2010 FUJITSU LIMITED
1
発表手順
• はじめに
– 将来の大規模相互結合網の性能予測の必要性
• 関連研究との比較
• NSIM
–
–
–
–
NSIMとは?
シミュレーションモデル
NSIMの機能概要、通信パターン記述例、可視化例
設計上・実装上の工夫
• 評価実験
– シミュレーション結果検証
– シミュレーション性能評価
• おわりに
2010/6/17
Copyright 2010 FUJITSU LIMITED
2
発表手順
• はじめに
– 将来の大規模相互結合網の性能予測の必要性
• 関連研究との比較
• NSIM
–
–
–
–
NSIMとは?
シミュレーションモデル
NSIMの機能概要、通信パターン記述例、可視化例
設計上・実装上の工夫
• 評価実験
– シミュレーション結果検証
– シミュレーション性能評価
• おわりに
2010/6/17
Copyright 2010 FUJITSU LIMITED
3
はじめに (1/3)
• 将来の大規模並列計算機
– 約2年でプロセッサコア数は約2倍
– 数10万ノードを相互結合網で接続
システム台数
top500.org における搭載プロセッサ数別シェア
(搭載プロセッサ数によるシステムの分類)
500
400
300
200
100
月/年
06/2010
11/2009
06/2009
11/2008
06/2008
11/2007
06/2007
11/2006
06/2006
11/2005
06/2005
11/2004
06/2004
0
33-64
65-128
129-256
257-512
513-1024
1025-2048
2049-4096
4k-8k
8k-16k
16k-32k
32k-64k
64k-128k
128k-
(http://www.top500.org/ より、2010/06/17現在)
2010/6/17
Copyright 2010 FUJITSU LIMITED
4
はじめに (2/3)
• 並列計算機における通信部分のシミュレー
ションの必要性
– 実機完成前
• 相互結合網のアーキテクチャ、制御方法の開発
シミュレーション
• 通信アルゴリズムの開発
対象システム
– 実機完成後
• アプリケーション(通信部分)
性能チューニング
…
…
シミュレーション
実行環境
2010/6/17
Copyright 2010 FUJITSU LIMITED
5
はじめに (3/3)
• シミュレーション対象システムの大規模化に伴う
シミュレーション上の問題
– ノード数(n)の増加
シミュレーション処理量が増大
シミュレーション時間が増大
• (例) 全対全通信(Alltoall)
– 気象の全球シミュレーション、分子動力学シミュレーション
など、FFT(高速フーリエ変換)利用アプリケーションで利用
– ノード数 n、メッセージ長 m に対し、総通信量は O(mn2) など
• 単位処理量あたりのシミュレーション高速化が
必要
2010/6/17
Copyright 2010 FUJITSU LIMITED
6
関連研究との比較
シミュレータ
BlueGene/L
相互結合網
シミュレータ [3]
NSIM
BookSim [1]
BigNetSim [2]
開発元
Stanford University
University of Ilinois
at Urbana
Champaign
IBM
ISIT
九州大学
富士通
シミュレーション
方式
実行駆動型、サイク
ルアキュレート
トレース駆動型、
保守的並列離散事象
トレース駆動型、
楽観的並列離散事象
実行駆動型、
保守的並列離散事象
通信モデル粒度
フリットレベル
動作環境
逐次実行環境
メモリ共有/非共有
並列計算機
メモリ共有
並列計算機
メモリ共有/非共有
並列計算機
数10ノード
32Kノード、3次元トー
ラス網、ランダムトラ
フィック/Alltoall、32台
dual PowerPC G5、
分散メモリ計算機
32Kノード、3次元トー
ラス、ランダムトラ
フィック、16-way
POWER3+
共有メモリ計算機
64Kノード、3次元トー
ラス網、Alltoall、
2ソケット4コアXeon,
共有メモリ計算機
動作実績
パケットレベル
[1] W. Dally and B. Towles, “Principles and Practices of Interconnection Networks,” Morgan Kaufmann Publishers Inc. 2003. http://cva.stanford.edu/books/ppin/
[2] N. Choudhury, T. Mehta, T. L. Wilmarth, E. J. Bohm, and L. V. Kale, “Scaling an optimistic parallel simulation of large-scale interconnection networks,” Proc. of the
Winter Simulation Conference, pp. 4-7, Dec 2005.
[3] N. R. Adiga, M. A. Blumrich, D. Chen, P. Coteus, A. Gara, M. E. Giampapa, P. Heidelberger, S. Singh, B. D. Steinmacher-Burow, T. Takken, M. Tsao, and P. Vranas,
“Blue Gene/L torus interconnection network,” IBM Journal of Research & Development, Vol. 49, No. 2/3, pp.265–276, 2005.
2010/6/17
Copyright 2010 FUJITSU LIMITED
7
発表手順
• はじめに
– 将来の大規模相互結合網の性能予測の必要性
• 関連研究との比較
• NSIM
–
–
–
–
NSIMとは?
シミュレーションモデル
NSIMの機能概要、通信パターン記述例、可視化例
設計上・実装上の工夫
• 評価実験
– シミュレーション結果検証
– シミュレーション性能評価
• おわりに
2010/6/17
Copyright 2010 FUJITSU LIMITED
8
NSIMとは?
• 将来の大規模並列計算機の相互結合網を対
象とした通信シミュレータ
– 想定規模:~数10万ノード
– 想定実行環境:小規模並列計算機 (マルチコア・
プロセッサ搭載パソコン)
– 精度:数10万ノード規模のシミュレーションを上記
環境にて現実的な時間内で達成可能な精度
2010/6/17
Copyright 2010 FUJITSU LIMITED
9
その他のNSIMの特徴
• MPI互換APIによる通信パターン記述
• 様々な種類/抽象度/範囲の結果出力
– マクロミクロの性能問題解析を支援
• 実行駆動型シミュレーション
– 輻輳などの実行時の振る舞いを反映
• 並列離散事象シミュレーション
– 並列実行環境を利用
2010/6/17
Copyright 2010 FUJITSU LIMITED
10
シミュレーションモデル
1プロセス/ノード
MPI関数処理
オーバヘッドは
パラメータで
設定
受信ノード
並列プログラム
並列プログラム
主記憶
ユーザバッファ
主記憶
ユーザバッファ
MPIバッファ
MPIバッファ
…
NIC0
バッファ
NIC1
バッファ
NIC0
バッファ
NIC1
バッファ
…
NIC0
バッファ
NIC1
バッファ
…
NIC0
バッファ
NIC1
バッファ
…
ネットワーク
の仕様は
パラメータで
設定
送信ノード
ルータモデル
はパイプライン
転送、および
調停を実装
相互結合網
• トポロジ:メッシュ、トーラス、FatTree
• フロー制御:バーチャルカットスルー
• ルーティング:次元オーダルーティングなど
2010/6/17
Copyright 2010 FUJITSU LIMITED
11
メッセージ送信関数
int main() {
if ((me%2) == 0) {
MPI_Send(sbuf,count, MPI_INT,
me+1, tag, MPI_COMM_WORLD);
} else {
MPI_Recv(rbuf,count, MPI_INT,
me-1, tag, MPI_COMM_WORLD,
&status);
}
return 0;
メッセージ受信関数
}
MGENプログラム
(MPI互換APIで記述)
コンフィグレーション
ファイル
シミュレーション設定、
統計情報/ルータ状態出力設定、
ルータ仕様設定、
トポロジ設定 、
(Torus, Mesh, FatTree)
MPIオーバヘッド設定、…
2010/6/17
NSIM
NSIM
ノード
シミュレーション機能
パケット
レベル
イベント
要求
パケット
レベル
イベント
シミュレーション
制御機能
パケット
レベル
イベント
要求
パケット
レベル
イベント
相互結合網
シミュレーション機能
統計情報 (全体/平均)
MGENプログラム実行時間、
平均リンクスループット、
平均リンクビジー率、
待ち/通過/受信パケット数、
平均パケット転送待ち時間、
NSIM実行時間、…
統計情報 (時間空間別)
ネットワークレイテンシ、
平均リンクスループット、
平均リンクビジー率、
平均バッファ利用率、
待ち/通過パケット数、
平均パケット待ち時間、…
ルータ状態出力
滞留パケット数
(混雑発生箇所特定)
ルータ上のパケット情報
(混雑発生原因特定)
可視化ツール
Copyright 2010 FUJITSU LIMITED
12
通信パターン記述例
#include <stdio.h>
#include "mpi.h"
#define TAG0 0
#define COM MPI_COMM_WORLD
#define MSIZE 1
int main( int argc, char ** argv ) {
int myrank, mysize, left_rank,right_rank, dest;
MPI_Status status;
MPI_Init(&argc, &argv);
MPI_Comm_rank(COM, &myrank);
MPI_Comm_size(COM, &mysize);
int sendbuf[MSIZE], recvbuf[MSIZE];
left_rank = (myrank-1+mysize)%mysize;
right_rank = (myrank+1)%mysize;
MPI_Send( &sendbuf, MSIZE, MPI_BYTE, left_rank, TAG0, COM );
MPI_Send( &sendbuf, MSIZE, MPI_BYTE, right_rank, TAG0, COM );
int i;
for (i=0;i<mysize*MSIZE;i++) {
MPI_Recv( &recvbuf, MSIZE, MPI_BYTE, MPI_ANY_SOURCE, TAG0, COM, &status);
if ( status.MPI_SOURCE == left_rank ) dest = right_rank ;
if ( status.MPI_SOURCE == right_rank ) dest = left_rank ;
MPI_Send( &sendbuf, MSIZE, MPI_BYTE, dest, TAG0, COM);
}
MPI_Recv( &recvbuf, MSIZE, MPI_BYTE, MPI_ANY_SOURCE, TAG0, COM, &status);
MPI_Recv( &recvbuf, MSIZE, MPI_BYTE, MPI_ANY_SOURCE, TAG0, COM, &status);
MPI_Finalize(); return 0;
}
#include "mgen-mpi.h" に書き換え
2010/6/17
Copyright 2010 FUJITSU LIMITED
13
可視化例 (1/2)
2次元メッシュ/2次元トーラス
石畑らによるAlltoallアルゴリズム[4]
各ノードが以下の番号順にメッセージ送信
33 17
6
4
8
23 39 50
26 10
2
0
1
9
40 24
7
3
5
18 34 49
25 62
48 15 22 11 20 13 42 53
実効リンク帯域 (方向毎)
実効リ ンク帯域 [GB/sec.]
Y+ 30 43 35 28 37 45 32 58
41 14 19 12 21 16 47 54
X+
4.0
X-
Y+
Y-
AVE.
3.0
2.0
1.0
0.0
0
10
31 46 38 27 36 44 29 57
20
30
40
50
60
Time [msec.]
Y− 60 56 52 63 51 55 59 61
X−
X+
[4] 高上治之, 矢崎俊志, 安島雄一郎, 清水俊幸, 石畑宏明, “2次元Meshネットワーク・Torusネットワーク上での最適全対全通信アルゴリズム,”
ハイパフォーマンスコンピューティングと計算科学シンポジウムHPCS2010,pp.83-90,2010.
2010/6/17
Copyright 2010 FUJITSU LIMITED
14
可視化例 (2/2)
リング、3ホップ先へ送信
バッファ利用率
0.6
0.4
ノード3
55-57
Time [us]
49-51
43-45
36-38
30-32
24-26
0.2
0-2
ノード4
0.8
18-20
ノード5
1
6-8
ノード6
2,0,1
1,0,1
0,0,1
7,0,0
6,0,0
5,0,0
4,0,0
3,0,0
2,0,0
1,0,0
12-14
Node, Port, Channel
ノード7
リンク帯域 (リンク毎)
ノード2
7,0
5
6,0
Node, Link
ノード1
ノード0
4
5,0
4,0
3
3,0
2
2,0
1
2010/6/17
Copyright 2010 FUJITSU LIMITED
55-57
Time [us]
49-51
43-45
36-38
30-32
24-26
18-20
双方向リンク
6-8
ノード
0-2
0,0
12-14
1,0
凡例
0
0
15
NSIMの並列動作イメージ
…
…
評価対象
プロセス
評価対象
プロセス
評価対象
プロセス
評価対象
プロセス
評価対象
プロセス
評価対象
プロセス
評価対象
プロセス
評価対象
プロセス
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
プロセッ
サ・メモリ・
NIC
性能評価対象システム
(仮想環境)
インターコネクト
1つのNSIMプロセス(実MPIプロセス)が複数の
ターゲットプロセスやインターコネクト資源をシミュレート
シミュレーション用
システム
(実環境)
NSIM
プロセス
0
NSIM
プロセス
1
NSIM
プロセス
2
NSIM
プロセス
3
NSIM
プロセス
4
NSIM
プロセス
5
NSIM
プロセス
6
NSIM
プロセス
7
CORE
5
CORE
6
CORE
7
MPI環境
CORE
0
CORE
1
CORE
2
CORE
3
CORE
4
プロセッサ0
プロセッサ1
共有メモリ
2010/6/17
Copyright 2010 FUJITSU LIMITED
16
NSIMの設計上・実装上の工夫
• シミュレーションモデルの見直し
– 対象システムにおけるデータ転送を省略し、
利用メモリ量を削減
• 並列実行オーバヘッドの削減
– 並列離散事象シミュレーションの時刻同期のため
の通信を削減
2010/6/17
Copyright 2010 FUJITSU LIMITED
17
発表手順
• はじめに
– 将来の大規模相互結合網の性能予測の必要性
• 関連研究との比較
• NSIM
–
–
–
–
NSIMとは?
シミュレーションモデル
NSIMの機能概要、通信パターン記述例、可視化例
設計上・実装上の工夫
• 評価実験
– シミュレーション結果検証
– シミュレーション性能評価
• おわりに
2010/6/17
Copyright 2010 FUJITSU LIMITED
18
評価実験
• シミュレーション結果検証
– シミュレーション結果の傾向が妥当であることを検証
– 実機評価結果 (HPC Challengeに提出されたIntel
Endeavor) と比較
• シミュレーションモデルは特定の実機を想定したものではな
く、ノード部分はかなり理想化しているため、傾向を比較
• シミュレーション性能評価
– 現実的な時間内に10万ノード規模のシミュレーション
が可能であることを確認
– BigNetSimと比較して高速に動作し、かつ大規模な
シミュレーションが可能であることを確認
2010/6/17
Copyright 2010 FUJITSU LIMITED
19
シミュレーション結果検証
1.6
実測値 (Intel Endeavor)
1.4
予測値 (NSIM)
スループット [GB/s]
1.2
1
0.8
0.6
0.4
0.2
0
0
256
512
768
1024
1280
1536
1792
2048
ノー ド数
[Intel® Endeavorの構成] スイッチ:Mellanox® MTS3600Q-1UNCスイッチ(36ポート、 Infiniband 8X QDR対応)、
CPU:クアッドコアIntel® Xeon® X5560 (2.8GHz動作)、HCA:Mellanox® MHGH-28XTC (DDR)
[NSIM構成] 通信パターン: HPC Challenge ランダムリングトラフィック、トポロジ:FatTree(36ポート、Fully
bidirectional bandwidth構成)、単方向リンクスループット:4GB/s、HCAスループット:2GB/s
2010/6/17
Copyright 2010 FUJITSU LIMITED
20
シミュレーション性能評価
メモリ消費量、1024バイト(NSIM)
メモリ消費量、1024バイト(BigNetSim)
シミュレーション時間、1024バイト(NSIM)
シミュレーション時間、1024バイト(BigNetSim)
216000
30
20
1/2300
60
15
1
10
65536
32768
16384
8192
4096
2048
1024
512
256
128
0
64
0.0002778
32
5
16
0.0166667
メ モ リ利用量 [GB]
7時間弱
25
1/10
3600
8
シ ミュ レーション実行時間 [秒]
メモリ消費量、4バイト(NSIM)
メモリ消費量、4バイト(BigNetSim)
シミュレーション時間、4バイト(NSIM)
シミュレーション時間、4バイト(BigNetSim)
ノー ド数
[シミュレータ構成] 通信パターン:Alltoall (bruck)、トポロジ:3次元トーラス網、単方向スループット:8GB/s
[NSIM実行環境] マシン:Dell Precision™ T7400 workstation、CPU:クアッドコアIntel® Xeon® CPU E5440
(2.8GHz動作,デュアル6MB L2 cacheを共有) 2ソケット、主記憶:32GB 4チャネルDDR2-SDRAM (667MHz動
作,ECC付き)、OS:Red Hat® Enterprise Linux® 5 Update 4 kernel-2.6.18-164.11.1.el5、MPI:MPICH2
version 1.2
2010/6/17
Copyright 2010 FUJITSU LIMITED
21
発表手順
• はじめに
– 将来の大規模相互結合網の性能予測の必要性
• 関連研究との比較
• NSIM
–
–
–
–
NSIMとは?
シミュレーションモデル
NSIMの機能概要、通信パターン記述例、可視化例
設計上・実装上の工夫
• 評価実験
– シミュレーション結果検証
– シミュレーション性能評価
• おわりに
2010/6/17
Copyright 2010 FUJITSU LIMITED
22
おわりに
• 将来の大規模並列計算機の相互結合網を対象
とした通信シミュレータを提案
– ある条件下では、10万ノード規模のシミュレーション
が現実的な時間内で完了
• 課題
–
–
–
–
可視化手段の充実
精度検証
性能チューニング
BSIM[5]との協調によるアプリケーション全体の
シミュレーション
[5] R. Susukita, H. Ando, M. Aoyagi, H. Honda, Y. Inadomi, K. Inoue, S. Ishizuki, Y. Kimura, H. Komatsu, M. Kurokawa, K. J. Murakami, H.
Shibamura, S. Yamamura, Y. Yu, “Performance Prediction of Large-scale Parallel System and Application using Macro-level Simulation,” Proc.
of Supercomputing (SC2008), Nov. 2008.
2010/6/17
Copyright 2010 FUJITSU LIMITED
23