Transcript PSI-NSIM

PSI-NSIM:大規模並列システムの
性能解析に向けた
相互結合網シミュレータ
柴村英智
(財)九州システム情報技術研究所(ISIT)
薄田竜太郎
(財)福岡県産業・科学技術振興財団
本田宏明、稲富雄一、于雲青
九州大学情報基盤研究開発センター
井上弘士
九州大学大学院システム情報科学研究院
青柳睦
九州大学情報基盤研究開発センター
PSI とは?
Petascale System Interconnect Project
– 文部科学省 「次世代IT基盤構築のための研究開発」、
研究開発領域「将来のスーパー コンピューティングのための
要素技術の研究開発」(H17-H19)
➠ 研究開発課題「ペタスケール・システム
インターコネクト技術の開発」
 http://www.psi-project.jp/
スーパーコンピュータの計算ノードを相互結合する
システムインターコネクトの技術開発プロジェクト
システムインターコネクト
計算ノード0 計算ノード1
…
プロセッサ
2007/10/26
…
計算ノード2
…
…
計算ノード10,000
…
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
2
PSIプロジェクトにおけるミッション
実効性能 1P FLOPSの実現を目標とする3つの技術開発
– 超高速光パケットスイッチの実現を目指した物理層技術
– MPIから物理層までを通したインターコネクト全体の高機能化、
高性能化技術
– ペタフロップス級マシンの振舞いをシミュレーション可能とする
統合型システム性能評価技術
本研究では!
「メモリ・通信性能」 対 「計算性能」 比に優れた
ペタスケールアーキテクチャの確立
テラスケールシステムでペタスケールシステムの性能予測を
可能にする大規模シミュレーション技術の確立
システムインターコネクト
システムインターコネクト
計算ノード0 計算ノード1
…
プロセッサ
…
計算ノード2
…
計算ノード10,000
…
を使って、
2007/10/26
…
計算ノード0 計算ノード1
…
プロセッサ
…
計算ノード2
…
…
計算ノード10,000
…
の性能予測
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
3
本研究の目的
次世代スーパーコンピュータの設計開発に向けた
システム性能予測技術の開発
性能評価環境(PSI-SIM)を構築
– コンピュータシミュレーションによる性能見積ツールキット
– 高機能な検索機能を備えた可視化・解析ツールキット
PSI-SIMが目指すところ
– 数千から数万プロセッサを持つ大規模システムでも
実用時間内でシミュレーションを完了 ⇒ 速い!
– 様々なシステムアーキテクチャに容易に対応できるよう、
スケーラブルかつ高い柔軟性を持つ ⇒ 易い!
– スケルトン・コード実行と呼ぶプログラムコード抽象化技術を用い
て、様々な評価項目を精度良く見積もる ⇒ 巧い!
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
4
PSI-SIMのワークフロー
評価アプリ
ケーション
(実機実行:可能)
評価アプリ
ケーション
(実機実行:不可能)
プログラムコード抽象化
(BSIM-Parser)
1. BSIM-Parser
プロセッサ情報
データベース
スケルトン
コード
通信プロファイル生成
(BSIM-Logger)
予測実行時間
ネットワーク性能
2. BSIM-Logger
評価イン
ターコネク
ト構成
通信プロファイル
(ゼロ通信遅延)
モデル化
インターコネクト
シミュレーション
(NSIM)
インターコネクト
コンフィグレーション
(NDLファイル)
通信プロファイル
(通信遅延有)
可視化/解析
(ANA)
評価アプリケーションのプログラ
ムコード抽象化(通信プロファイル
の高速生成を目的)
通信プロファイルの生成(中規模
システムによる大規模システムの
通信プロファイル生成を目的)
3. NSIM
ネットワークシミュレーション(ゼロ
通信遅延プロファイルへの実遅延
時間付加が目的)
4. ANA
アプリケーションの可視化/解析
(アプリケーションの評価や開発
支援が目的)
通信トラフィックの可視化
プログラム最適化の指針提供
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
5
BSIM-Parser/Logger
プログラムコード抽象化技術に基づく
通信プロファイルの高速生成環境
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
6
BSIM-Parser/Logger
評価アプリ
ケーション
(実機実行:可能)
評価用アプリケーションの制御フロー
を維持したスケルトンコードの生成
(BSIM-Parser)
評価アプリ
ケーション
(実機実行:不可能)
プログラムコード抽象化
(BSIM-Parser)
プロセッサ情報
データベース
– 命令ブロックから演算ブロックを抽出
スケルトン
コード
通信プロファイル生成
(BSIM-Logger)
予測実行時間
ネットワーク性能
評価インター
コネクト構成
モデル化
インターコネクト
シミュレーション
(NSIM)
インターコネクト
コンフィグレーション
(NDLファイル)
可視化/解析
(ANA)
通信トラフィックの可視化
プログラム最適化の指針提供
2007/10/26
– 出力コードへの見積り実行時間の埋
め込み
通信プロファイル
(ゼロ通信遅延)
通信プロファイル
(通信遅延有)
– 演算と制御・通信の分離
通信・計算処理の履歴を含む通信プ
ロファイルの生成(BSIM-Logger)
– 実機(クラスタ計算機)によるスケルト
ンコード化されたアプリケーションの
擬似実行
– 通信遅延時間0(理想的なネットワー
ク環境)の通信プロファイルを生成
– 通信イベントの依存関係を保持
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
7
通信プロファイルの高速生成に向けた
プログラムコード抽象化
スケルトンコード
オリジナルコード
foo( ) {
Inst. Block A
for (i=0;i<n;i++) {
Inst. Block B
if (hoge) {
Inst. Block C
} else {
Inst. Block D
}
Inst. Block E
}
MPI_Comm.
Inst. Block F
for (j=0; j<n; j++)
for (k=0; k<n; k++)
Func( );
}
2007/10/26
foo( ) {
BSIM_ADD_TIME(10ms)
MPI_Comm.
BSIM_ADD_TIME(1ms)
BSIM_ADD_TIME(15s)
}
●演算ブロックを見積り実行時間に置換
→大規模アプリケーションの評価に有効
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
8
NSIM
通信プロファイルを入力とする
大規模インターコネクトシミュレータ
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
9
NSIM
評価アプリ
ケーション
(実機実行:可能)
通信プロファイルに基づいたインター
コネクトシミュレータ
評価アプリ
ケーション
(実機実行:不可能)
– 超大規模インターコネクトへの対応
プログラムコード抽象化
(BSIM-Parser)
プロセッサ情報
データベース
スケルトン
コード
通信プロファイル生成
(BSIM-Logger)
予測実行時間
ネットワーク性能
評価インター
コネクト構成
通信プロファイル
(ゼロ通信遅延)
モデル化
インターコネクト
シミュレーション
(NSIM)
インターコネクト
コンフィグレーション
(NDLファイル)
通信プロファイル
(通信遅延有)
可視化/解析
(ANA)
– 実用時間内におけるシミュレーション
の完了を目的
– 設計開発現場での実用性
(シミュレーション解像度: 1ナノ秒~)
– 評価インターコネクトをコンフィグレー
ションファイルによってモデル化
– ゼロ通信遅延時間の通信プロファイ
ルを入力
– 通信遅延時間を付加した通信プロファ
イルを出力 → PSI-ANAへ
– 並列離散事象シミュレーション
通信トラフィックの可視化
プログラム最適化の指針提供
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
10
インターコネクト コンフィグレーション
; Reference Network Description for PSI-NSIM
; by [email protected]
(topology
(name "psihexa-infiniband-cluster")
;
; Node-Switch interconnection part
;
(connect (pcc:0:0 ibsw0:0:0) (pcc:1:0 ibsw0:0:1)
(pcc:2:0 ibsw0:0:2) (pcc:3:0 ibsw0:0:3))
(connect (pcc:4:0 ibsw0:0:4) (pcc:5:0 ibsw0:0:5)
(pcc:6:0 ibsw0:0:6) (pcc:7:0 ibsw0:0:7))
(connect (pcc:8:0 ibsw0:0:8) (pcc:9:0 ibsw0:0:9)
(pcc:10:0 ibsw0:0:10) (pcc:11:0 ibsw0:0:11))
; Node configuration (Intel Xeon 3.0GHz, Single Core)
(connect (pcc:12:0 ibsw0:0:12) (pcc:13:0 ibsw0:0:13)
(network "psihexa-linux"
(node
(pcc:14:0 ibsw0:0:14) (pcc:15:0 ibsw0:0:15))
(name "pcc")
) ; end topology
(number node 16)
) ; end network
(number port 1)
(simulation "sim-psihexa" ; Simulation name
; (clog_filename "xhpl.n2000.4x4.16nodes.0.clog2")
(clog_filename "xhpl.n5000.4x4.16nodes.0.clog2")
(nlog_filename “log/psi-nsim")
(olog_filename “log/nsim")
(stdoutput true)
(debug false)
) ; end simulation
;
(powerconsumption 0.001mW)
) ; end node
; InfiniBand switch configuration
(switch
(name "ibsw0")
(number switch 1)
(number port 16)
(bandwidth 4Gbps)
(packet 2048B:size)
(packet 1024B:payload)
(latency 17usec:startup)
(latency 200nsec:pre)
(latency 10nsec:post)
; (powerconsumption 0.002mW)
) ; end switch
2007/10/26
インターコネクトの仕様を容易に変更できるため、
スケーラブルかつ柔軟な評価が可能
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
11
通信遅延付プロファイル
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
12
イベントキューを用いた離散事象シミュレーション
例)メッセージの送信
・ノード・リンク情報
リンクAの開放予定時刻:170、通信遅延時間:2
0
リンク A
Rank0
1
Rank1
❹ 時刻:100→150 時刻の更新
イベントキュー
(現在・将来に起こる事象を
時刻順に格納)
SendMsg: メッセージ転送イベント
SendPkt:パケット転送イベント
LockLink:リンクのロックイベント
UnlockLink:リンクのアンロックイベント
250
……
200
……
178 UnlockLink Rank0→Rank1
176 SendPkt Rank0→Rank1
174 SendPkt Rank0→Rank1
172 SendPkt Rank0→Rank1
時刻
250
……
250
……
170 SendPkt Rank0→Rank1
200
……
200
……
170 LockLink Rank0→Rank1
150
……
150
……
150
……
178 UnlockLink Rank0→Rank1
100 SendMsg Rank0→Rank1
❶ 時刻:100 イベントの取得
176 SendPkt Rank0→Rank1
174 SendPkt Rank0→Rank1
172 SendPkt Rank0→Rank1
❸ キュー内の適切な
時刻位置へ登録
170 SendPkt Rank0→Rank1
170 LockLink Rank0→Rank1
❷ パケット転送イベントへの分解、ノード・リンク情報を
もとにロックイベントと通信遅延時間を付加
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
13
NSIMの処理フロー(メイン)
通信プロファイルの
読込/解析
イベントキュー
ランク外からの
イベント受信
ノード
シミュレーション
分散時刻の
更新チェック
イベント処理
: イベント操作
実MPIの1ランクで、評価アプリ
ケーションの複数ノード(ランク)
と評価対象システムのインター
コネクトをシミュレート
さらに、複数ランク(並列処理)
で評価時間の短縮を図る
通信プロファイルの
読込/解析
通信プロファイルの
読込/解析
通信プロファイルの
通信プロファイルの
読込/解析
読込/解析
イベントキュー
イベントキュー
通信プロファイルの
通信プロファイルの
読込/解析ランク外からの
読込/解析ランク外からの
イベントキュー
イベントキュー
イベント受信
イベント受信
通信プロファイルの
通信プロファイルの
読込/解析ランク外からの
読込/解析ランク外からの
イベントキュー
イベントキュー
イベント受信
イベント受信
ノード
ノード
ランク外からの
ランク外からの
シミュレーション
シミュレーション
イベントキュー
イベントキュー
イベント受信
イベント受信
ノード
ノード
ランク外からの
ランク外からの
シミュレーション
シミュレーション
分散時刻の
分散時刻の
イベント受信
イベント受信
ノード
ノード
更新チェック
更新チェック
シミュレーション
シミュレーション
分散時刻の
分散時刻の
ノード
更新チェック
シミュレーション
分散時刻の イベント処理
更新チェック
分散時刻の イベント処理
ノード
更新チェック
シミュレーション
分散時刻の イベント処理
更新チェック
分散時刻の イベント処理
更新チェック
イベント処理
更新チェック
イベント処理
イベント処理
イベント処理
 プロセッサの模擬
 受信メッセージの遅延時間計算
 送信メッセージイベントの生成
 時刻更新の可能性をチェック
 時刻更新請求イベントの生成
 メッセージ/パケットイベントの転送処理
 ネットワーク/スイッチにおける遅延時間計算
 時刻更新イベントの処理
 リンク情報の問合せ・回答処理
 スイッチ情報の問合せ・回答処理 など
: イベント送信
: イベント受信
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
14
PSI-NSIMの拡張可能な機能
対故障性の評価
– 動的なリンクの切断指示を設定可能
➭リンク故障などによる性能低下の見積り
➭適応ルーティング手法の評価
消費電力の評価
– リンク、スイッチ、ノードに関する電力パラメータを設定可能
➭ネットワークやシステム全体における電力消費量の見積り
開発時に基本構造を実装済み➭必要に応じて利用可能
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
15
ここまでのまとめ
PSI-SIMとは?
– 大規模並列システムの性能評価環境
どのように使うの?
1. BSIM-Parser: プログラム中の演算ブロックを見積り実行時間に
置換(プログラムコード抽象化)
2. BSIM-Logger: 小規模並列システムでプログラムを実行。大規
模システムでの実行に相当する、通信遅延時間0の通信プロファ
イル(演算処理時間や通信履歴)を生成
3. NSIM: 相互結合網シミュレータによって正確な通信遅延時間を
算出し、通信プロファイルに印加
何がわかるの?
– アプリケーションの実行時間を予測
– 相互結合網の諸性能を出力
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
16
要点
精度の良い「どんぶり勘定」
アプリケーション開発者の観点から
開発したプログラムの実行時間を適切なオーダで
知りたい
ネットワークアーキテクトの観点から
設計した相互結合網の長所/短所が知りたい
双方の観点から
相互結合網とプログラムの親和性を知りたい
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
17
PSI-NSIMの性能評価
BSIM-LoggerとNSIMを用いて
「シミュレーション時間」と「実行時間の予測性能」
について調査
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
18
評価実験(BSIM-Logger + NSIM)
調査項目
– 実験(1): NSIMが要するシミュレーション時間
• 実用時間内での性能評価が遂行可能か?
• 理想ネットワーク環境下(ゼロ通信遅延時間)で実行し、シミュレー
ション時間の下限(最低必要時間)を測定
– 実験(2): 評価アプリケーションの実行時間の予測性能
• 実用的な予測精度を有するか?
• 評価アプリケーションの実機実行時間と、シミュレーションによる予測
実行時間を比較する
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
19
実験(1)
NSIMが要するシミュレーション時間の調査
1. 問題サイズやプロセス数を変化させた通信プロファイルを生成
– ゼロ通信遅延時間
2. 各通信プロファイルをNSIMで実行
•
理想ネットワーク環境下を想定してシミュレート
•
NSIMの利用CPU数を1、2、4、8、16、32CPU と変化
•
各NSIMのシミュレーション時間を測定
(プロファイルの読み込み時間は含まない)
最低限のシミュレーション時間、並列化効率が得られる
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
20
通信プロファイルの生成
評価アプリケーション: HPL
– 問題サイズ(N): 500、1000、2000、5000
– プロセス数(PxQ): 4x4、16x16、32x32
– ブロックサイズ: 128
BSIM-Loggerによる通信プロファイル生成
– 上記パラメータの組合せから数種を選択
– ゼロ通信遅延時間の通信プロファイルを生成
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
21
実験環境
1CPU(デスクトップPC)
– CPU: Intel Xeon 3.8GHz (EM64T)
– Memory: 2GB
– OS: Linux 2.6.20-1.2320.fc5
– Compiler: GNU C Compiler ver.4.1.1
– MPI: Mpich2-1.0.5p4
2CPU~(クラスタシステム)
– CPU: Intel Xeon 3.0GHz (EM64T)
– Memory: 7GB MEM
– OS: RedHat Enterprise Linux AS rel.3 (Linux Kernel 2.4.21)
– Compiler: Fujitsu Fortran&C compiler ver.5.0
– MPI: Fujitsu MPI over Score
– Network: InfiniBand (1xLink DDR)
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
22
シミュレーション時間(プロセス数固定:16)
30
1CPU
25
2CPU
実行時間(秒)
4CPU
20
15
8CPU
16CPU
10
5
0
HPL.N500.4x4.16R
HPL.N1000.4x4.16R
HPL.N2000.4x4.16R
HPL.N5000.4x4.16R
実行アプリケーション
問題サイズ:小 ⇒ 通信/時刻同期処理:大 ⇒ 並列処理効率:低
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
23
シミュレーション時間(問題サイズ固定:2000)
実行時間(秒)
500
450
1CPU
400
2CPU
350
4CPU
300
8CPU
16CPU
250
32CPU
200
150
100
50
0
HPL.N2000.4x4.16R
HPL.N2000.16x16.4R
HPL.N2000.32x32.16R
実行アプリケーション
評価アプリケーションのプロセス数増加 ⇒ 並列処理効率が向上
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
24
実験(2)
評価アプリケーションの実行時間の予測性能
1. 評価アプリケーション(HPL)を既存のクラスタシステムで実行
•
実際の実行時間を測定
2. BSIM-Loggerを利用して、評価アプリケーションを理想ネットワーク環境
下(ゼロ通信遅延時間)で実行した場合の通信プロファイルを生成
3. NSIMを利用して、1.のクラスタシステムと同等のネットワーク(InfiBand
スイッチによる単一段接続)をシミュレート
•
CPU: Intel Xeon 3.0GHz、ノード構成:16ノード(1CPU/ノード)
•
InfiniBandスイッチ:1xLink DDR (4Gbps)、スタートアップ遅延:11.6μsec.
(実測、ポート間遅延を含む)、パケットペイロード: 1,024B、パケットルーティ
ング遅延:100nsec.、 3m銅線ケーブルで接続
•
予測実行時間を算出
実行時間の予測精度が得られる
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
25
実行時間の予測性能(1)
10
100%
実機
実機/予測 実行時間(秒)
8
90%
予測(BSIM-Logger + NSIM)
71.4%
7
80%
予測内訳(BSIM-Logger分)
70%
誤差(実機:予測)
6
60%
47.6%
5
50%
4
40%
28.9%
3
30%
2
20%
5.3%
1
0
予測誤差(%)
9
10%
0%
HPL.M500.4x4.16N
HPL.M1000.4x4.16N
HPL.M2000.4x4.16N
HPL.M5000.4x4.16N
実行アプリケーション
評価アプリケーションの規模増加 ⇒ 予測精度が向上
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
26
実行時間の予測性能(2)
300
140%
実機
125.9%
予測(BSIM-Logger + NSIM)
120%
相対誤差
100%
200
80%
150
45.5%
60%
相対誤差(%)
実機/予測 実行時間(秒)
250
100
40%
50
20%
14.0%
3.9%
0.8%
0.7%
R
4.
16
R
N1
6
PL
.
H
H
PL
.
N8
0
00
00
.4
x
0.
4x
4.
16
R
4.
16
H
PL
.
N4
0
00
.4
x
4.
16
N2
0
PL
.
H
H
PL
.
N1
0
00
.4
x
00
.4
x
4.
16
R
4.
16
0.
4x
N5
0
PL
.
H
R
0%
R
0
実行アプリケーション
評価アプリケーションの規模増加 ⇒ 予測精度が向上
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
27
現在の問題点と解決方法
大規模通信プロファイルの生成が困難(BSIM-Logger)
– 16ノードシステム ⇒ 4,096ノードシステム規模の通信プロファイルまで生
成可能
⇒ 通信プロファイルを人工的に生成するツールを開発(中)
巨大な通信プロファイルの読込/解析処理の肥大化(NSIM)
– ペタスケール級のアプリケーションでは、テラ~ペタバイトサイズ
⇒ 通信プロファイルのコンパクト化、および読込/解析処理とネットワークシ
ミュレーションのオーバラップ化
時刻同期処理のオーバヘッド(NSIM)
⇒ 時刻同期ルーチンを最適化中(約1.5倍の高速化が実現可能)
相互結合網のシミュレーション速度の改善(NSIM)
⇒ 評価目的に応じたシミュレーションの解像度を設定
1n秒→1μ秒に変更した場合でも、予測精度の変化は1%以内
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
28
解像度とNSIM実行時間
実験環境
• HPL(問題サイズ2000, NB=50, P=Q=4)
• 16ノードクラスタシステム(16並列)
解像度1ns
スタートアップ時間(秒)
シミュレーション時間(秒)
NSIM実行時間(秒)
有効時刻同期(率)
理想/予測実行時間(秒)
メッセージ処理性能(msg/秒)
解像度1us
スタートアップ時間(秒)
スイッチ遅延ゼロ
スイッチ遅延有り
12.447
20.756
4.042
5070.138
16.489
5090.894
86,740 of 91,524 (94.77%)
140,157,062 of 140,281,477 (99.91%)
0.657461
0.706836
9,038.2
7.2
スイッチ遅延ゼロ
スイッチ遅延有り
11.916
8.662
2.652
8.414
14.568
17.076
61,456 of 65,881 (93.28%)
169,992 of 227,442 (74.74%)
理想/予測実行時間(秒)
0.657461
0.704750
メッセージ処理性能(msg/秒)
13,776.4
4,341.9
シミュレーション時間(秒)
NSIM実行時間(秒)
有効時刻同期(率)
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
29
All-to-all通信(4Kノード)のシミュレーション時間
※Bruckアルゴリズムを利用
1,000.00
遅延無-解像度ナノ秒
遅延有-解像度ナノ秒
138.383
116.309
100.00
遅延有-解像度マイクロ秒
シミュレーション時間(秒)
76.112
56.132
44.089
38.462
27.184
20.927
19.898
17.614
14.079
10.900
10.00
8.462
8.111
5.134
5.972
6.343
4.475
3.265
2.790
1.397
1.00
1
2
4
8
16
32
64
128
0.455
0.276
0.215
0.10
CPU数
2007/10/26
九州大学スーパーコンピュータPRIMERGY利用による
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
30
まとめ
次世代スーパーコンピュータの設計開発に向けた
システム性能予測技術の開発
– システム性能評価環境(PSI-SIM)の開発
– コンピュータシミュレーションによる性能見積ツールキット
– 高機能な検索機能を備えた可視化・解析ツールキット
速い、易い、巧い を提供
– 高速な並列シミュレーション技術による実用時間内での評価
– 評価ツールが兼備するスケーラブルかつ高い柔軟性
– プログラムコード抽象化技術による高精度な性能予測
次世代スーパーコンピュータの設計開発のみならず、
アプリケーション開発時の支援ツールとしても活用可能
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
31
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
32
補足スライド
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
33
PSI-NSIMのシミュレーションフロー
(今後の拡張予定を含む)
トポロジ
PSI-BSIM
MPE
CPF
gen.
通信遅延無
イベントログ
ネットワーク
仕様ファイル
PSI-NSIM
ライブラリ
etc.
PSI-NSIM
ルーティング
アルゴリズム
パケット長
フロー制御方式
チャネル幅
スイッチ遅延
バッファサイズ
動作周波数
etc.
ネットワーク遅延
通信遅延
PSI-ANA
Jumpshot
etc.
通信遅延付
イベントログ
性能特性
ファイル
衝突頻度
スループット
ホットスポット情報
etc.
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
34
PSI-NSIMの入出力ファイル(1)
ネットワーク仕様ファイル
– ネットワークに関する各種パラメータを設定
– 設定項目
• トポロジ、ルーティングアルゴリズム、パケット長、フロー制御方式、
チャネル幅、ネットワーク遅延、バッファサイズ、動作周波数など
– 可読性の高い言語による記述
PSI-NSIMライブラリ
通信遅延無
イベントログ
– シミュレーションで多用される設定内容や
ネットワーク仕様ファイルでサポートが
難しい機能をモジュール化
• トポロジ
• ルーティングアルゴリズム
ネットワーク
仕様ファイル
PSI-NSIM
ライブラリ
PSI-NSIM
通信遅延付
イベントログ
性能特性
ファイル
• 高機能スイッチの振舞い など
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
35
PSI-NSIMの入出力ファイル(2)
イベントログファイル
– 通信遅延無イベントログ(入力)
• ネットワーク遅延ゼロとした、通信メッセージの送受信内容を含む
イベントログファイル(PSI-BSIMから出力ログ)
– 通信遅延有イベントログ(出力)
• ネットワーク遅延を反映した通信ログ
• 可視化・解析ツールに入力可能な形式
通信遅延無
イベントログ
ネットワーク
仕様ファイル
PSI-NSIM
ライブラリ
性能特性ファイル
– 各通信メッセージの送受信時刻、
送受信ノード、通信遅延、ホップ数、
衝突回数などを出力
– ネットワーク全体における遅延、通信処理
能力、ホットスポットなどの解析に利用
2007/10/26
PSI-NSIM
通信遅延付
イベントログ
性能特性
ファイル
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
36
PSI-NSIMの内部動作(1)
1. 各種パラメータの分散配置処理
① ネットワーク仕様ファイルの解析
Nn
a. トポロジ情報から、相互接続情報を含むノード構造体を生成
b. ハードウェア仕様を抽出し、ノード構造体に登録
② 遅延時間無イベントログの解析
Ex
a. イベントの(通信)依存解析を行い、イベント構造体を生成
b. イベント構造体を対応ノードのイベントキューに登録
ネットワーク ①-a.①-b
仕様ファイル
通信遅延無
イベントログ
②-a. ②-b
N0
N1
N2
N3
E10
E10
E12
E15
E20
E12
E14
E20
E30
E20
E30
E25
E40
E21
E32
E30
E50
E30
E34
E35
m-1
0
2007/10/26
1
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
2
3
rank
37
PSI-NSIMの内部動作(2)
2. メインシミュレーション
① イベントキュー処理
a.
b.
c.
d.
e.
Nn
Ex
イベントキューの先頭イベントを処理し、ノード構造体を更新
処理内容によっては、PSI-NSIMライブラリを呼出す
必要に応じて他のノード構造体の情報を要求
必要に応じてイベントキューに再登録
終了した通信遅延付イベントをログファイルに出力 イベントログ
通信遅延付
PSI-NSIM
ライブラリ
並列動作
② ノード情報処理
a. 要求されたノード構造体の情報更新、情報要求への応答
③ 時刻更新処理
a. 各ランクのイベントキュー処理が終了後、全ランクの時刻を更新
①-d.
N0
N1
:
N31
2007/10/26
①-a.①-c.②-a.
E10 E20 E30 E35 E40
①-b.
PSI-NSIM
ライブラリ
①-e.
通信遅延付
イベントログ
 LocalTime m-1
③-a.
 LocalTime
 LocalTime 3
 LocalTime 2
 LocalTime 1 rank
0
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
38
PSI-NSIMの内部動作(3)
3. シミュレーション結果の集約処理
① 性能特性ファイル出力
a. 各ランクのノード構造体から、性能特性を収集
b. 静的特性の計算
c. ファイル出力
性能特性
ファイル
N0
null
N0
null
N0 N1null null
N0N1 nullnull
N0N1
nullnull null
N2
N1N2 nullnull
N1N2
nullnull null
N3
N2N3 nullnull
N2N3
nullnull
N3
null
N3
null
m-1
0
2007/10/26
1
2
3
rank
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
39
ANA
次世代の超大規模アプリケーションに向けた
可視化/解析ツール
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
40
ANA
評価アプリ
ケーション
(実機実行:可能)
グループワークと呼ぶ新しいプロ
グラミング単位に基づいた解析・
可視化機能を提供
評価アプリ
ケーション
(実機実行:不可能)
プログラムコード抽象化
(BSIM-Parser)
プロセッサ情報
データベース
スケルトン
コード
通信プロファイル生成
(BSIM-Logger)
予測実行時間
ネットワーク性能
評価インター
コネクト構成
通信プロファイル
(ゼロ通信遅延)
モデル化
インターコネクト
シミュレーション
(NSIM)
インターコネクト
コンフィグレーション
(NDLファイル)
通信プロファイル
(通信遅延有)
可視化/解析
(ANA)
ペタスケールシステムでの実行を
前提としたアプリケーションの
チューニング支援機能を提供
高機能エンジン
– 可視化エンジン(ANA-Viewer)
• プログラマのための
チューニング支援
– 検索エンジン(ANA-Search)
• 可視化ツールと連携した
類似性検索
通信トラフィックの可視化
プログラム最適化の指針提供
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
41
新しいプログラミング単位の提案
超並列時代には、個々のMPIランクのロードバランスと
大きな演算単位を基にした全体のフローの把握が必要
ラ
ン
ク
グループワーク
複数のMPIランクによって構成される、
同様の処理群
グループワークに属したすべてのMPIラ
ンクにおいて、個別処理(ワーカー)の実
行結果をまとめ、一つの実行結果とする
時間
グループワーク
同期
アプリケーション開発者は、ソースコード
中にグループワークを明示的に記述する
ランクの個別処理
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
42
グループワークを用いた解析
グループワーク内の処理効率の把握
効率の良いグループワーク
すべてのワーカーが、同時に開始、同時に終了
待ち時間がない
効率の悪いグループワーク
ワーカーの開始、終了にばらつきがあり
いくつかのワーカーに待ち時間が発生
グループワーク単位の処理効率の把握
並列アプリケーションをグループワークの連鎖とみなす
グループワーク単位のロードバランス解析が容易
優先して改良すべきグループワークを把握できる
クリティカルパスの早期発見に役立つ
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
43
ANA GroupWork Viewer
ロードバランス調整後の簡易シミュレーション
•ロードバランス調整後の実行時間見積り
グループワークの依存関係
グループワーク
•ロードバランスの可視化
•グループワークの依存関係を可視化
効
率
の
悪
さ
経過時間
各ランクの通信パス重複数
通信量
•単位時間当たりの通信量を可視化
•通信混雑が発生する時間滞を検索エンジンにて高速サーチ
2007/10/26
•ランク間の通信パス重複数を可視
化し、ホットスポット発生の可能性
を示唆
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
44
性能予測技術の必要性
次世代スーパーコンピュータの設計開発支援
– 未知なるシステムアーキテクチャの設計空間を探索
– 利用可能な要素技術に則した評価
システムソフトウェアやアプリケーションの設計開発支援
– アプリケーションの実行完了時間の予測
– 高速化・最適化に向けた最新機構の有効性検証
性能をスポイルするボトルネックポイントの発見
– ハードウェアとソフトウェアの両側面からアプローチ
– 様々なアプリケーションの性能をバランス良く引き出す
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
45
ペタ級のマシンを作る・使うためには?
設計開発時にシミュレーションによる事前評価が重要
– 遅いシミュレーションはいや!⇒ 実用時間内で!
– 色々と仕様を変えてみたい! ⇒ 柔軟に!
– で、正しい結果じゃないとね!⇒ 精度良く!
評価結果/実行結果をどうやって解析するの?
– 数千ノードにおける処理をどうやって把握するか?
– 実用的な、アプリケーション実行の可視化/解析技術が必要
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
46
命令ブロックと演算ブロックの定義
命令ブロック
– プログラムコード上に
連続して出現する命令
列
演算ブロック
– MPI通信を含まない命
令ブロック
– 既存のプロセッサ情報
や実測値を活用した実
行時間の見積が可能
2007/10/26
細粒度
演算ブロック
中粒度
演算ブロック
粗粒度
演算ブロック
MPI通信
×
×
×
分岐命令
(後方向)
×
×
○
分岐命令
(前方向)
×
○
○
○:含む ×:含まない
細粒度演算ブロック
中粒度演算ブロック
粗粒度演算ブロック
foo(){
Calc. Block A
for ( ; ; ) {
Calc. Block B
if (hoge) {
Calc. Block C
} else {
Calc. Block D
}
Calc. Block E
}
MPI
Calc. Block F
}
foo(){
Calc. Block A
for ( ; ; ) {
Calc. Block B
if (hoge) {
Calc. Block C
} else {
Calc. Block D
}
Calc. Block E
}
MPI
Calc. Block F
}
foo(){
Calc. Block A
for ( ; ; ) {
Calc. Block B
if (hoge) {
Calc. Block C
} else {
Calc. Block D
}
Calc. Block E
}
MPI
Calc. Block F
}
+if/switch
+Loop
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
47
スケルトン・コード化可能部分の抽出
1. 細粒度演算ブロックの抽出
2. 分割統治法(divide & conquer)による粗粒度化
例) FFTのスケルトン化
subroutine fft(dir, x1, x2)
:
else if (layout_type .eq. layout_2d) then
call cffts1(-1, dims(1,3), x1, x1, scratch)
call transpose_x_z(3, 2, x1, x2)
call cffts1(-1, dims(1,2), x2, x2, scratch)
call transpose_x_y(2, 1, x2, x1)
call cffts1(-1, dims(1,1), x1, x2, scratch)
endif
:
subroutine transpose_x_y_local(d, xin, xout)
do k = 1, d(3)
do i = 1, d(1)
do j = 1, d(2)
!!!CALC
xout(j,k,i)=xin(i,j,k)
end do
end do 細粒度演算ブロック
end do
(粗粒度化可能)
return
subroutine transpose_x_y_global(d, ..xout)
:
call mpi_alltoall(xin, … commslice2, ierr)
subroutine transpose_x_y(l1, l2, xin, xout)
:
call transpose_x_y_local(dims(1,l1),xin, xout)
call transpose_x_y_global(dims(1,l1), xout, xin)
call transpose_x_y_finish(dims(1,l1), xin, xout)
粗粒度化不可能
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
48
スケルトン・コードの生成
各演算ブロックの実行時間に相当する見積実行時間を取得・計算
– 実行命令数に基づく見積り(命令数×CPI×クロックサイクル時間)
• プロセッサ情報データベースの利用
– 実機による実時間測定(ハードウェアカウンタやRTCの利用)
– サイクルレベル・シミュレーション
対応する各演算ブロックのコードを見積実行時間に置換
fo o ( ) {
C a lc. B lo ck A
fo r ( ; ; ) {
C a lc. B lo ck B
if (h o g e ) {
C a lc. B lo ck C
} e lse {
C a lc. B lo ck D
}
C a lc. B lo ck E
}
M PI
C a lc. B lo ck F
}
S ke lto n
fo o ( ) {
/* 1 0 n s */
fo r ( ; ; ) {
/* 8 0 n s */
if (h o g e ) {
/* 2 0 0 n s */
} e lse {
/* 1 0 n s */
}
/* 6 2 0 n s */
}
M PI
/* 8 0 n s */
}
2007/10/26
クッ ク
演ブ算ロブッロ
度算
粒計
粗度
疎粒
中 粒 度 演 算 ブロック
細 粒 度 演 算 ブロック
fo o ( ) {
C a lc. B lo ck A
fo r ( ; ; ) {
C a lc. B lo ck B
if (h o g e ) {
C a lc. B lo ck C
} e lse {
C a lc. B lo ck D
}
C a lc. B lo ck E
}
M PI
C a lc. B lo ck F
}
S ke lto n
fo o ( ) {
/* 1 0 n s */
fo r ( ; ; ) {
/* 9 0 0 n s */
/*
o r */
/* 7 1 0 n s */
}
M PI
/* 8 0 n s */
}
fo o ( ) {
C a lc. B lo ck A
fo r ( ; ; ) {
C a lc. B lo ck B
if (h o g e ) {
C a lc. B lo ck C
} e lse {
C a lc. B lo ck D
}
C a lc. B lo ck E
}
M PI
C a lc. B lo ck F
}
S ke lto n
fo o ( ) {
/* 9 1 0 n s */
o r */
/*
/* 7 2 0 n s */
M PI
/* 8 0 n s */
}
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
49
性能評価方法とイベントログの採取
性能評価方法
– 設計空間探索(パラメータ・サーベイ) ⇒ 相対性能
– 一点詳細評価 ⇒ 絶対性能
イベントログの採取
– 採取範囲:全実行 vs. 部分実行 vs. 未(非)実行
– 実行方式:実実行 vs. 擬似実行(スケルトン・コード実行)
ログ採取法
実行方式
未実行
プログラム全実行
プログラム部分実行
実実行
擬似実行
実実行
擬似実行
人工的なイベントログ
生成
設計空間探索
×
○
○
-
○
一点詳細評価
×
○
-
-
-
評価目的
○:サポート ×:サポート困難 -:未サポート
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
50
イベントキューを用いた離散事象シミュレーション
例)メッセージの送信
・ノード・リンク情報
リンクAの開放予定時刻:170、通信遅延時間:2
0
リンク A
Rank0
1
Rank1
❹ 時刻:100→150 時刻の更新
イベントキュー
(現在・将来に起こる事象を
時刻順に格納)
SendMsg: メッセージ転送イベント
SendPkt:パケット転送イベント
LockLink:リンクのロックイベント
UnlockLink:リンクのアンロックイベント
250
……
200
……
178 UnlockLink Rank0→Rank1
176 SendPkt Rank0→Rank1
174 SendPkt Rank0→Rank1
172 SendPkt Rank0→Rank1
時刻
250
……
250
……
170 SendPkt Rank0→Rank1
200
……
200
……
170 LockLink Rank0→Rank1
150
……
150
……
150
……
178 UnlockLink Rank0→Rank1
100 SendMsg Rank0→Rank1
❶ 時刻:100 イベントの取得
176 SendPkt Rank0→Rank1
174 SendPkt Rank0→Rank1
172 SendPkt Rank0→Rank1
❸ キュー内の適切な
時刻位置へ登録
170 SendPkt Rank0→Rank1
170 LockLink Rank0→Rank1
❷ パケット転送イベントへの分解、ノード・リンク情報を
もとにロックイベントと通信遅延時間を付加
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
51
NSIMの処理フロー(メイン)
通信プロファイルの
読込/解析
イベントキュー
ランク外からの
イベント受信
ノード
シミュレーション
分散時刻の
更新チェック
イベント処理
: イベント操作
実MPIの1ランクで、評価アプリ
ケーションの複数ノード(ランク)
と評価対象システムのインター
コネクトをシミュレート
さらに、複数ランク(並列処理)
で評価時間の短縮を図る
通信プロファイルの
読込/解析
通信プロファイルの
読込/解析
通信プロファイルの
通信プロファイルの
読込/解析
読込/解析
イベントキュー
イベントキュー
通信プロファイルの
通信プロファイルの
読込/解析ランク外からの
読込/解析ランク外からの
イベントキュー
イベントキュー
イベント受信
イベント受信
通信プロファイルの
通信プロファイルの
読込/解析ランク外からの
読込/解析ランク外からの
イベントキュー
イベントキュー
イベント受信
イベント受信
ノード
ノード
ランク外からの
ランク外からの
シミュレーション
シミュレーション
イベントキュー
イベントキュー
イベント受信
イベント受信
ノード
ノード
ランク外からの
ランク外からの
シミュレーション
シミュレーション
分散時刻の
分散時刻の
イベント受信
イベント受信
ノード
ノード
更新チェック
更新チェック
シミュレーション
シミュレーション
分散時刻の
分散時刻の
ノード
更新チェック
シミュレーション
分散時刻の イベント処理
更新チェック
分散時刻の イベント処理
ノード
更新チェック
シミュレーション
分散時刻の イベント処理
更新チェック
分散時刻の イベント処理
更新チェック
イベント処理
更新チェック
イベント処理
イベント処理
イベント処理
 プロセッサの模擬
 受信メッセージの遅延時間計算
 送信メッセージイベントの生成
 時刻更新の可能性をチェック
 時刻更新請求イベントの生成
 メッセージ/パケットイベントの転送処理
 ネットワーク/スイッチにおける遅延時間計算
 時刻更新イベントの処理
 リンク情報の問合せ・回答処理
 スイッチ情報の問合せ・回答処理 など
: イベント送信
: イベント受信
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
52
ペタスケール級スパコンの評価に向けて
1,024ランク上で、約100万回のMPI通信を行うアプリケー
ション(HPL.M2000.32x32.16N)のシミュレーション時間
⇒ 約3分半@ 8CPUシステム
超大規模アプリケーションを想定した見積り
– HPL
• 問題サイズ: 600K、MPI通信回数: 約4x1011回、
通信プロファイル: 約80Tバイト ぐらい
– 現在のNSIMの性能を基にシミュレーションした場合
※ ただし、通信プロファイルの読込時間を除く
• 2CPUのマシンでシミュレーション
(NSIMの性能:55,260 MPI通信/秒) ⇒ 約83日で終了
• NSIMの処理効率が8倍になると ⇒ 約10.4日 (十分実用的!)
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
53
通信プロファイルの内容
通信プロファイル
プロセス数
理想実行時間(秒)
通信メッセージ数
HPL.M500.4x4.16N
16
0.120
4,767
HPL.M1000.4x4.16N
16
0.207
9,267
HPL.M2000.4x4.16N
16
0.786
18,267
HPL.M5000.4x4.16N
16
8.042
45,267
HPL.M1000.16x16.16N
256
0.327
85,528
HPL.M2000.16x16.4N
256
0.651
175,169
1,024
1.019
484,823
HPL.M2000.32x32.16N
※ HPL.M2000.16x16.4N:
問題サイズ2000、プロセス数16x16(256プロセス)の通信プロファイルを
4CPU利用のBSIM-Loggerにて生成
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
54
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
55
PSI-NSIM:インターコネクトシミュレータ
開発目的
– ペタスケール級スパコンのインターコネクトに対する要件を様々な
評価観点から探る
• アーキテクチャ、スケーラビリティ、ハードウェア実装、
アプリケーションとの親和性
– 中規模シミュレーションを基にした、大規模システムの性能予測
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
56
PSI-NSIM:インターコネクトシミュレータ
PSI-NSIMへの要件
– 数万ノードを結合するインターコネクトをシミュレートできること
– シミュレーションパラメータを柔軟かつ詳細に設定できること
– 専用通信機構などの高付加価値な専用機能に対応できること
– 実践的な通信ログファイルを様々な形式で入力できること
– 通信遅延、転送処理能力、高負荷時のスループットなどの多彩な
評価指標を出力できること
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
57
PSI-SIMのワークフロー
評価アプリ
ケーション
(実機実行:可能)
評価アプリ
ケーション
(実機実行:不可能)
プログラムコード抽象化
(BSIM-Parser)
1. BSIM-Parser
プロセッサ情報
データベース
2. BSIM-Logger
スケルトン
コード
通信プロファイル生成
(BSIM-Logger)
予測実行時間
ネットワーク性能
通信プロファイルの生成(中規模
システムによる大規模システムの
通信プロファイル生成を目的)
評価イン
ターコネク
ト構成
通信プロファイル
(ゼロ通信遅延)
モデル化
インターコネクト
シミュレーション
(NSIM)
インターコネクト
コンフィグレーション
(NDLファイル)
通信プロファイル
(通信遅延有)
可視化/解析
(ANA)
評価アプリケーションのプログラ
ムコード抽象化(通信プロファイル
の高速生成を目的)
3. NSIM
ネットワークシミュレーション(ゼロ
通信遅延プロファイルへの実遅延
時間付加が目的)
4. ANA
アプリケーションの可視化/解析
(アプリケーションの評価や開発
支援が目的)
5. Open-FMO
次世代ペタスケールソフトウェア
の開発と評価
通信トラフィックの可視化
プログラム最適化の指針提供
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
58
PSI-NSIMの諸特性
入力項目
– 評価インターコネクトの仕様(コンフィグレーション・ファイル)
– ゼロ通信遅延時間の通信プロファイル
出力項目
– 通信遅延時間を付加した通信プロファイル → PSI-ANAへ
– 評価インターコネクトの諸特性
– 評価アプリケーションの予測実行時間
並列離散事象シミュレーション
– 実用時間内におけるシミュレーションの完了(を目的)
– シミュレーション解像度: 1ナノ秒~(変更可能)
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
59
PSI-NSIMの開発状況
MPI環境における並列実装
– 約16,600行のコード量(デバグ・検証用コードを除く)
– 約20万イベント※/秒の処理効率(九州大学のクラスタシステム)
※ NSIM内イベントの単位時間あたりの処理量
進捗状況
– 第4回研究者全体会議時には、シミュレーションの途中でフリーズ
していた → 解決
– 小規模の通信プロファイルを用いた検証をほぼ終了
– インターコネクト・コンフィグレーションの記述仕様を拡張中
– 小規模な性能予測実験によって、NSIMの性能を検証中
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
60
NSIM Simple Demo
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
61
NSIMの評価実験
調査項目
– 実験1: NSIMが要するシミュレーション時間
• 実用時間内での性能評価が遂行可能か?
• 理想ネットワーク環境下(ゼロ通信遅延時間)で実行し、シミュレー
ション時間の下限(最低必要時間)を測定
– 実験2: 評価アプリケーションの実行時間の予測性能
• 実用的な予測精度を有するか?
• 評価アプリケーションの実機実行時間と、シミュレーションによる予測
実行時間を比較する
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
62
実験環境
1CPU(デスクトップPC:DELL Presion670)
– CPU: Intel Xeon 3.8GHz (EM64T)
– Memory: 2GB
– OS: Linux 2.6.20-1.2320.fc5
– Compiler: GNU C Compiler ver.4.1.1
– MPI: Mpich2-1.0.5p4
2CPU~(クラスタシステム:九大PSIHEXA)
– CPU: Intel Xeon 3.0GHz (EM64T)
– Memory: 7GB MEM
– OS: RedHat Enterprise Linux AS rel.3 (Linux Kernel 2.4.21)
– Compiler: Fujitsu Fortran&C compiler ver.5.0
– MPI: Fujitsu MPI over Score
– Network: InfiniBand (1xLink DDR)
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
63
通信プロファイルの生成
評価アプリケーション: HPL
– 問題サイズ(N): 500、1000、2000、5000
– プロセス数(PxQ): 4x4、16x16、32x32
– ブロックサイズ: 128
BSIM-Loggerによる通信プロファイル生成
– 上記パラメータの組合せから数種を選択
– ゼロ通信遅延時間の通信プロファイルを生成
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
64
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
65
大規模な性能評価に向けた検討
NSIMの現在の処理性能を維持したまま、 ペタスケール
級の通信プロファイルを処理した場合の傾向を調査
– 評価アプリケーションに含まれる通信メッセージ数と、
NSIMが要したシミュレーション時間を測定
– デスクトップPCやクラスタシステムで実行した場合の
最速ラップを利用
– 単に性能を指標として算出しているため、大規模アプリケーション
を実行した計算機システムの仕様は出せない
• 現状では評価アプリケーションが小さく、並列化効率や
シミュレーション時間のばらつきが大きいため
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
66
シミュレーション時間と通信メッセージ数の関係
(HPLについての実測値)
7
シミュレーション時間(分)
6
5
4
3
2
1
0
0
100,000
200,000
300,000
400,000
500,000
600,000
通信メッセージ数
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
67
大規模アプリケーションの
予測シミュレーション時間(1)
シミュレーション時間(時間)
2.0
1.5
1.0
0.5
0.0
0
2,000,000
4,000,000
6,000,000
8,000,000
10,000,000
通信メッセージ数
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
68
超大規模アプリケーションの
予測シミュレーション時間(2)
9
シミュレーション時間(日)
8
7
6
5
4
3
2
1
0
0.0E+00
2.0E+08
4.0E+08
6.0E+08
8.0E+08
1.0E+09
通信メッセージ数
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
69
超超大規模アプリケーションの
予測シミュレーション時間(3)
45
シミュレーション時間(年)
40
35
30
25
20
15
10
5
0
0.0E+00
5.0E+11
1.0E+12
1.5E+12
2.0E+12
通信メッセージ数
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
70
大規模な性能評価に向けた考察
時間
(時間)
ファイル
サイズ(GB)
メッセージ数
(万回)
1
2.0
498
2
4.0
998
6
11.9
2,998
– スイッチにおける衝突
12
23.8
5,998
– 通信プロファイルの読込時間
24
47.6
11,998
48
95.2
23,998
72
142.8
35,998
100
198.4
49,998
168
333.3
83,998
336
666.5
167,998
720
1,428.3
359,998
1,000
1,983.7
499,998
2ヶ月: 1,464
2,904.2
731,998
1年: 8,760
17,377.6
4,379,998
1日:
1週間:
1ヶ月:
2007/10/26
実用時には、さらにシミュレー
ション時間が必要
– ネットワークのトポロジ
• HDD I/O: ~0.15GB/sec
– 通信プロファイルの解析時間
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
71
PSI-NSIMの位置付けと入出力
評価用並列
アプリケーション
プロセッサ情報
データベース
PSI-BSIM
入力
– イベントログ(通信パターン)ファイル
BSIM-Parser
• PSI-BSIMが生成
スケルトン・コード化
アプリケーション
– ネットワーク仕様ファイル
BSIM-Logger
通信遅延無
イベントログ
• 通信遅延無(理想的なネットワーク)
ネットワーク
仕様
PSI-NSIM
性能特性
NSIM
• ネットワークの各種仕様を明記
出力
– 性能特性ファイル
• ネットワークの静的特性
– イベントログ(通信パターン)ファイル
通信遅延付
イベントログ
PSI-ANA
可視化情報
ANA-Viewer
• 通信遅延有(ネットワークの諸特性を
反映)
• ネットワークの動的特性を含む
ANA-Search
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
72
イベントキューを用いた離散事象シミュレーション
例)メッセージの送信
・ノード・リンク情報
リンクAの開放予定時刻:170、通信遅延時間:2
0
リンク A
Rank0
1
Rank1
❹ 時刻:100→150 時刻の更新
イベントキュー
(現在・将来に起こる事象を
時刻順に格納)
SendMsg: メッセージ転送イベント
SendPkt:パケット転送イベント
LockLink:リンクのロックイベント
UnlockLink:リンクのアンロックイベント
250
……
200
……
178 UnlockLink Rank0→Rank1
176 SendPkt Rank0→Rank1
174 SendPkt Rank0→Rank1
172 SendPkt Rank0→Rank1
時刻
250
……
250
……
170 SendPkt Rank0→Rank1
200
……
200
……
170 LockLink Rank0→Rank1
150
……
150
……
150
……
178 UnlockLink Rank0→Rank1
100 SendMsg Rank0→Rank1
❶ 時刻:100 イベントの取得
176 SendPkt Rank0→Rank1
174 SendPkt Rank0→Rank1
172 SendPkt Rank0→Rank1
❸ キュー内の適切な
時刻位置へ登録
170 SendPkt Rank0→Rank1
170 LockLink Rank0→Rank1
❷ パケット転送イベントへの分解、ノード・リンク情報を
もとにロックイベントと通信遅延時間を付加
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
73
PSI-NSIMの開発状況
MPI環境における並列実装
– 1ナノ秒のシミュレーション精度(変更可能)
– 約16,000行のコード量(デバグ・検証用コードを除く)
– 約20万イベント/秒の処理効率(九州大学のクラスタシステム)
進捗状況
– ネットワーク仕様ファイルの解析ルーチン
• 完成 → 高度な仕様記述に向けて拡張中
– 遅延時間無イベントログの解析ルーチン
• 完成 → 様々なイベント(コレクティブ通信など)に対応できるよう
拡張中
– 並列シミュレーションルーチン
• ほぼ完成 → 上記の2つの解析ルーチンとの結合試験・デバグ中
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
74
Linux Cluster1 InfiniBandネットワーク接続図
InfiniBand(8Gbps)×512本
32ポートInfiniBandスイッチ
IBスイッチ:上位16台、下位32台
(合計48台)
下位スイッチに、16台のPRIMERGY
RX200A を接続。
(合計512台)
IBケーブルはスイッチ間、計算ノード
間あわせて 1024本。
計算ノードPRIMERGY RX200
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
75
ネットワーク仕様ファイル(開発段階)
; Reference Network Description for PSI-NSIM
; by [email protected]
(simulation "sim-riken-rscc" ; Simulation name
(sim_ranks 256)
(clog_filename "xhpl.clog2") ; CLOG-2.43
;
(clog_filename “test.clog2") ; CLOG-2.44
(nlog_filename "log/psi-nsim")
(olog_filename "log/nsim")
(stdoutput true)
(debug true)
)
(network "riken-linux"
(node
(name "rx200")
(number port 1)
;
(powerconsumption 0.001uW)
)
(switch
; Lower layer infiniband switch
(name "ibsw0")
(number port 32)
;
(powerconsumption switch 0.001uW)
;
(powerconsumption link 0.002uW)
; Upper layer infiniband switch
(name "ibsw1")
(number port 32)
;
(powerconsumption switch 0.001uW)
;
(powerconsumption link 0.002uW)
2007/10/26
;
;
(bandwidth 8Gbps)
(packet 1024bit:size)
(packet 512bit:payload)
(latency 10nsec:pre)
(latency 5nsec:post)
(powerconsumption 0.002uW)
)
(topology
(name "riken-fat-tree")
(number node 512)
(number switch 48)
;
; Node-Switch interconnection part
;
(connect (rx200:0:0 ibsw0:0:0))
(connect (rx200:1:0 ibsw0:0:1))
(connect (rx200:2:0 ibsw0:0:2)
(rx200:3:0 ibsw0:0:3))
:
:
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
76
通信遅延付ログファイル(開発段階)
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
77
まとめと今後の予定
次世代スーパーコンピュータの設計開発に向けた
インターコネクトシミュレータ PSI-NSIMの開発
2007年3月~: 他ツールと連携して評価実験開始
– 既存システムの評価 ➠ 評価精度の概算
– 機能検証、精度向上に向けた各種チューニング
高付加機能の実装
– HW専用機能、動的最適化機能などの評価を目的
次世代インターコネクトに向けた設計
– 利用可能な要素技術の情報収集とモデル化
2007/10/26
All Rights Reserved, Copyright (C) PETASCALE SYSTEM INTERCONNECT PROJECT 2005,2006,2007
78