インターコネクトシミュレータ「nsim ·...
TRANSCRIPT
インターコネクトシミュレータ「NSIM」のご紹介
(財)九州先端科学技術研究所
次世代スーパーコンピュータ開発支援室
柴村英智
SS研マルチコアクラスタ性能WG第2回会合 - Apr. 21, 2011
ご紹介の流れ
► はじめに
► 基本仕様/制約条件
► インターコネクトのモデリング
► 入力ファイル
► 出力ファイル
► クラウド環境によるシミュレーション実行サービス
► 評価事例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 2
はじめに
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 3
インターコネクト・シミュレーションの重要性
► HPCシステム/アプリケーションの大規模・複雑化
「通信レイテンシの壁」
► インターコネクト設計
物理的な通信性能だけでなく、様々なプログラムに内在する通信パターンとの親和性が課題
► ペタ/エクサスケールコンピューティング時代
「インターコネクトの通信性能」と「アプリケーションの通信パターン」を併せた定量的な性能評価が重要
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 4
NSIMの概要
► 目的 現実的な時間内での大規模インターコネクトの性能評価
► 機能 インターコネクトの仕様記述や評価アプリケーションを入力とし、パケットレベルでの通信シミュレーションによって、アプリケーションの実行時間の推定や各種ネットワーク資源の利用統計情報を出力
► 入力ファイル インターコネクト・コンフィグレーションファイル ランク・ノード変換テーブルファイル MGENプログラム(MPI相当のプログラム)
► 出力ファイル 性能情報ファイル 統計情報ファイル 通信履歴ファイル
► 実装 離散事象シミュレーション(PDES)に基づいた、並列実装(MPI実装)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 5
NSIMの特長
► 大規模インターコネクトの性能評価や通信内容の解析を支援 数千から数万のノードを持つスーパーコンピュータの大規模インターコネクトを対象に並列離散事象シミュレーションを行い、様々な側面からの性能評価を支援
詳細シミュレーションによって、通信ボトルネックの解析にも利用可能
► 仕様記述の変更による様々なインターコネクトのシミュレーションが可能 インターコネクトやシミュレーション時のパラメータを記述した設定ファイルを利用者が変更することで、詳細なインターコネクトのシミュレーションが可能
► MPI標準に相当するプログラムを入力としたシミュレーション HPC分野で広く普及しているMPI標準に相当したプログラムを入力とし、予想実行時間、ネットワークのレイテンシやスループット、バッファの利用率、輻輳解析を支援する情報といった多彩なシミュレーション結果を出力
シミュレーション結果は、視覚的に閲覧可能
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 6
基本仕様/制約条件
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 7
基本的な仕様
► ノード数 ~128Kノード(実績)
► トポロジ 直接網
2次元メッシュ網/3次元メッシュ網 2次元トーラス網/3次元トーラス網
間接網 FatTree(2層か3層のFBB接続)
► ルータ設定 リンクバンド幅: ユーザ設定 パケット長:ユーザ設定 パケットバッファ長:ユーザ設定 フリット長:ユーザ設定 パケット転送方式: Virtual cut-
through(固定)
► ルーティングアルゴリズム 直接網
次元順ルーティング+日付変更線
間接網 Vertical-Up, Diagonal-Down
垂直上方向に送信し、スライドさせながら下方向に送信
Diagonal-Up, Vertical-Down スライドさせながら上方向に送信し、垂直下方向に送信
► シミュレーション出力(一部) 入力プログラムの予想実行時間 ネットワークレイテンシ 通信レイテンシ リンクスループット バッファ利用率 通信履歴
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 8
シミュレーションの制約条件
► 評価アプリケーションの通信データ(メッセージ内容)は転送されない(破棄される)
受信データに応じて挙動が変わるアプリケーションは、正しくシミュレーションできない
► 1CPU/ノード、1プロセス/CPUに固定
マルチスレッド等への対応は今後の課題
► プロセスにおける動的メモリ確保は注意が必要
MGENプログラムで独自に管理する必要がある
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 9
インターコネクトのモデリング
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 10
ノードとルータの接続モデル(直接網)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 11
クロスバ
: :
MPI
空間
ユーザ空間
主記憶
入力バッファ
出力バッファ
ノード
ルータ
クロスバ
: :
MPI
空間
ユーザ空間
主記憶
入力バッファ
出力バッファ
ノード
ルータ
クロスバ
: :
MPI
空間
ユーザ空間
主記憶
入力バッファ
出力バッファ
ノード
ルータ
ノードとルータの接続モデル(間接網)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 12
クロスバ
: :
MPI
空間
ユーザ空間
主記憶
送信バッファ
受信バッファ
入力バッファ
出力バッファ
ノード
ルータ
クロスバ
: :
入力バッファ
出力バッファ
ルータ
クロスバ
: :
MPI
空間
ユーザ空間
主記憶
送信バッファ
受信バッファ
入力バッファ
出力バッファ
ノード
ルータ
※接続ノードなし
レイテンシの積算項目(概要)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 13
クロスバ
: :
MPI
空間
ユーザ空間
主記憶
送信バッファ
受信バッファ
入力バッファ
出力バッファ
ノード
ルータ
① MPIオーバヘッド(スタートアップレイテンシ)② ユーザメモリ空間からMPIメモリ空間へのコピー【間接網の場合】
③ MPIメモリ空間からNIC送信バッファにDMA転送④ NIC送信バッファからルータの入力バッファに転送
【直接網の場合】③+④ MPIメモリ空間からルータの入力バッファにDMA転送
⑤ ルーティング計算(RC)⑥ 仮想チャネル割当(VA)⑦ クロスバスイッチ設定(SA)⑧ フリット転送(ST)⑨ スイッチ遅延⑩ ケーブル遅延⑪ ルーティング計算(RC)⑫ 仮想チャネル割当(VA)⑬ クロスバスイッチ設定(SA)⑭ フリット転送(ST)⑮ スイッチ遅延【間接網の場合】
⑯ ルータの出力バッファからNIC受信バッファに転送⑰ NIC受信バッファからMPIメモリ空間にDMA転送
【直接網の場合】⑯+⑰ルータの出力バッファからMPIメモリ空間にDMA転送
⑱ MPIメモリ空間からユーザメモリ空間へのコピー⑲ MPIオーバヘッド(ポスト処理レイテンシ)
①
②
③
④
⑤~⑨、⑪~⑮ ⑩
⑯
⑰
⑱
⑲
Tlws(m)
Tpps
CPU 主記憶 CPU
送信側ランク 受信側ランク
MPI_Send
Tcopy·Sm(m)Tpsend
Ti(m)
Tdma·Sp(n)+Tnic
Twr(m)
Tcopy·Sm(m)
Tepr
Tppr MPI_Recv
Tprecv
Teps
NIC 主記憶NIC
Tepr
Tppr
MPI_Recv
TprecvTcopy·Sm(m)
Recv発行が早い Recv発行が遅い
Tdma·(Sp(1)+…+Sp(n-1))+Tnic·(n-1)
Tdma·Sp(n)+Tnic
MPI通信におけるレイテンシの積算
MPI関数のスタートアップ遅延を積算
MPI関数の後処理時間を積算
ネットワーク遅延を積算
2011/4/21 14All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011
•関数プロローグ、エピローグ•メモリコピー(ユーザ⇒MPI)•DMA転送(主記憶⇒NIC)
•ルータ遅延•ケーブル遅延•衝突による遅延 など
•DMA転送(NIC⇒主記憶)•メモリコピー(MPI⇒ユーザ)•関数プロローグ、エピローグ
インターコネクト・コンフィグレーションファイル
入力ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 15
インターコネクトの仕様設定
► インターコネクトに関する仕様パラメータを、インターコネクト・コンフィグレーションファイルに記述
パラメータを変更することで様々なインターコネクトのシミュレーションが可能
► 設定項目(主要なもの)
ノード数、トポロジ、フリットサイズ、パケットサイズ、パケットヘッダサイズ、MTU、仮想チャネル数、仮想チャネルバッファサイズ、ルータ転送時間(RC、VA、SA、ST)、スイッチ遅延時間、ケーブル遅延時間、トーラス網におけるエンドアラウンドリンクの有無、MPIオーバヘッド、メモリ間コピー速度、メモリ-ルータ間DMA転送速度、ランデブー通信閾値、ゼロコピー通信閾値、など
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 16
インターコネクト・コンフィグレーションファイルの例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 17
(network
name=“3dt-16x16x16"
rank-node-filename=“3dt-16x16x16.rnc"
number-of-NIC=4
number-of-virtual-channels=2
packetsize=2048 ; byte
flitsize=16 ; byte
mtusize=2048 ; byte
packetheadersize=32 ; byte
virtual-channel-buffersize=8192 ; byte
routing-computation-time=4000 ; ps
virtual-channel-allocation-time=4000;ps
switch-allocation-time=4000 ; ps
flit-traversal-time=4000 ; ps
switch-latency=78000 ; ps
cable-latency=10000 ; ps
Tnrb=250 ; ps
enable-pipelining=true
connect-nodes-directly=true
(topology
name="3D Torus"
X=16 Y=16 Z=16
torus-X=true
torus-Y=true
torus-Z=true
)
(mpi
number-of-target-ranks=4096
rendezvous-size-threshold=32768
zerocopy-size-threshold=32768 ; byte
Tdma=250 ; ps
Tnic=200000 ; ps
Tcopy=250 ; ps
Tpps=200000 ; ps
Teps=200000 ; ps
Tppr=200000 ; ps
Tepr=200000 ; ps
Tpw =200000 ; ps
Tew =200000 ; ps
Tcp =200000 ; ps
Tce =200000 ; ps
Tci =200000 ; ps
)
)
ランク・ノード変換テーブルファイル
入力ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 18
物理ノードに対するランク配置
► 物理ノードに対するプロセス(ランク)の配置情報を、ランク・ノード変換テーブルファイルに記述
ランク配置を変更した場合の性能評価が可能
生成スクリプトを利用可能
► 記述フォーマット
3次元メッシュ/トーラス網
[ランク] [物理ノードアドレスX] [物理ノードアドレスY] [物理ノードアドレスZ]
2次元メッシュ/トーラス網
[ランク] [物理ノードアドレスX] [物理ノードアドレスY] 0
ファットツリー
[ランク] [物理ノードアドレス]
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 19
ランク・ノード変換テーブルの例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 20
0 0 0 0
1 1 0 0
2 2 0 0
3 3 0 0
4 4 0 0
5 5 0 0
6 6 0 0
7 7 0 0
8 0 1 0
9 1 1 0
10 2 1 0
11 3 1 0
12 4 1 0
13 5 1 0
14 6 1 0
15 7 1 0
2dt-8x8.rnc
0 0 0 0
1 1 0 0
2 2 0 0
3 3 0 0
4 0 1 0
5 1 1 0
6 2 1 0
7 3 1 0
8 0 0 1
9 1 0 1
10 2 0 1
11 3 0 1
12 0 1 1
13 1 1 1
14 2 1 1
15 3 1 1
3dt-4x2x2.rnc ft-64.rnc
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
MGENプログラム
入力ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 21
MGENプログラム
► 適切な通信事象を生成する、MGENプログラムを利用 プログラムの振る舞いに即したシミュレーションが可能
従来のシミュレーションでは、通信ログ(実機から取得、人工的に生成)から通信事象を抽出し利用
MPI相当の通信関数(MGEN関数)で記述されたCプログラム MPIプログラムを流用
#include <mpi.h> を #include <mgen.h> に変更
MPI関数の接頭語“MPI_”を“MGEN_”に変更
MPIプログラムを直接入力可能なヘッダファイルも提供 #include <mpi.h> を #include <nsim_mpi.h> に変更
NSIM実行オブジェクト生成時にコンパイル・リンク
► MGENプログラム中の通信データは送受信しない 受信データによってプログラムの挙動が変化するものは、正しくシミュレーションできない
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 22
サポート対象の通信
► 1対1通信
標準モードのみ メッセージがバッファリングされる実装を仮定
プロトコル Short、Eager、Rendezvous
ブロッキング通信のみ、送信元を指定しない(MPI_ANY_
SOURCE)受信と受信時のステータス参照に対応
コミュニケータはMPI_COMM_WORLDのみ
► 集団通信
1対1通信を利用した参照パッケージを別途利用可能 Alltoall、Allreduce、Bcast、Barrier、Gather、Scatter
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 23
MGEN関数(1)
► 同期通信
MGEN_Send()、MGEN_Recv()
► 非同期通信
MGEN_Isend()、MGEN_Irecv()、MGEN_Wait()
► その他
MGEN_Comm_size()
MGEN_Comm_rank()
MGEN_Stat()
MGEN_Type_size()
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 24
MGEN関数(2)
► NSIM拡張関数
MGEN_Comp() 指定された時間だけ、シミュレーション時間を進める
⇒既知の計算ブロックの処理時間を与えることで、アプリケーション実行時間の推定精度を高めることができる
⇒ ロードインバランスやOSジッタを踏まえたシミュレーションが可能
LMGEN_Send()、~Isend()、_Recv()、~Irecv() 高機能MGEN関数
⇒複数NIC利用やパケットペーシングなど、NSIMで拡張された通信をシミュレーションする際に利用
MGEN_Key_create()、~_restore ()、~_store () MGENプログラム高速実行のための関数
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 25
MGENプログラムの例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 26
#include <stdio.h>
#include "mgen.h"
int MGEN_Main( int argc, char *argv[] )
{
int myrank, mysize, i, src, dst, msg_size=1024;
MGEN_Request req[2];
MGEN_Status stat[2];
MGEN_Comm_rank(MGEN_COMM_WORLD, &myrank);
MGEN_Comm_size(MGEN_COMM_WORLD, &mysize); // mysize must be a power of 2
// Pairwise exchange
for ( i=1; i<mysize; i++ ) {
dst = src = myrank ^ i;
MGEN_Irecv(NULL, msg_size, MGEN_BYTE, src, 0, MGEN_COMM_WORLD, &req[0]);
MGEN_Isend(NULL, msg_size, MGEN_BYTE, dst, 0, MGEN_COMM_WORLD, &req[1]);
MGEN_Wait(&req[1], &stat[1]);
MGEN_Wait(&req[0], &stat[0]);
}
return (0);
}
性能情報ファイル
出力ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 27
性能情報ファイル
► MGENプログラムの実行(シミュレーション)における、インターコネクトの総合的な統計値を出力
単一ファイル: perf.log
► 出力項目(一部)
評価アプリケーションの推定実行時間
総転送データ量
総転送パケット数
有効バンド幅
有効リンクバンド幅
理想リンクバンド幅
リンクビジー率、など
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 28
性能情報ファイルの例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 29
MaxSimTime 166712548000 [Ticks]
SumArrivedPackets 71268352
SumArrivedPacketSize 139652431872 [Bytes]
SumSizeTransfer 1397206548480 [Bytes]
SumNumLinks 12288
EffectiveBandwidth 8380.932121 [GBytes/10^12Ticks] (SumSizeTransfer/M
EffectiveLinkBandwidth 0.682042 [GBytes/10^12Ticks/Links] (SumSizeTransfer/
IdealLinkBandwidth 4.000000 [GBytes/10^12Ticks/Links]
LinkBandwidthEfficiency 17.051050 [%] (EffectiveLinkBandwidth/IdealLinkBand
MinSimStartTime 1290126348.243068
MaxSimEndTime 1290127795.179783
SimDuration 1446.936715
SumLinkBusyTime 382164407752000 [Ticks]
LinkBusyRate 18.655236 [%] (CumulLinkBusyTime/SumNumLinks/MaxSim
SumNumWaitPacketsInRt 372972599
SumNumThruPacketsInRt 340059081
CumulPacketWaitTimeInRt 328675643082000 [Ticks]
SumNumWaitPacketsInNi 25432757
SumNumThruPacketsInNi 45835595
CumulPacketWaitTimeInNi 83268741998000 [Ticks]
CumulNetworkLatency 370885137344000 [Ticks]
AveragePacketWaitTime 881232.680265 [Ticks] (CumlPacketWaitTimeInRt/SumNum
AverageAllPacketWaitTime 460955.175346 [Ticks] (CumlPacketWaitTimeInRt/(SumNu
:
●評価アプリケーションの推定実行時間
●総転送データ量
●有効リンクバンド幅
●理想リンクバンド幅
●実シミュレーション時間(秒)
●リンクビジー率
統計情報ファイル
出力ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 30
統計情報ファイル
► MGENプログラムの実行(シミュレーション)における、インターコネクトの資源利用に関する詳細な情報を出力 出力項目毎にファイル出力
► 出力項目(時系列表示) 通信レイテンシ ネットワークレイテンシ リンクスループット バッファ利用率 リンクスループットの割合の変動 輻輳の発生割合
► 出力項目(その他) 輻輳箇所をノード・ポート毎に上位順で表示
► 各ファイル(Rawデータ)の可視化ツールを提供
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 31
通信履歴ファイル
出力ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 32
通信履歴ファイル
► MGENプログラムの動作に基づく通信履歴を出力
► 専用のコンバートツールによって、slog2ファイル形式に変換後、MPICH2付属のjumpshotツールで閲覧可能
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 33
通信履歴ファイルの可視化例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 34
クラウド環境によるシミュレーション実行サービス
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 35
NSIM(OpenNSIM)の実行サービスを公開中
► TaaS(Tools as a Service)と呼ぶクラウド環境から利用
https://ngarch.isit.or.jp/taas/opennsim/
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 36
TaaSによるOpenNSIMの利用の流れ
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 37
①ブラウザからインターコネクトに関するシミュレーションパラメータを入力
②実行開始ボタンを押す
⑤シミュレーション
TaaS実行環境
OpenNSIM
CAESAR
Redefis
③処理(タスク)の受付・管理④他サーバへの処理委託
⑥実行結果の返却
⑦シミュレーション結果(Zipファイル内)の閲覧
3次元トーラス網2048ノードのシミュレーション結果
OpenNSIMを用いた評価事例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 38
評価対象インターコネクト(1)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 39
● トポロジ:16×16×8 3次元トーラス網
■ルーティング:次元順+日付変更線
+X
-X
+Y
-Y
+Z
-Z
+X
-X
+Y
-Y
+Z
-Z
■ NIC数:1
リンクバンド幅:4GB/s(単方向)
仮想チャネル数:2
仮想チャネルバッファ:2KiB(MTU)×4
4GB/s4GB/s
■パケット転送方式:VCT(フリット長:16B)
パケット長:32B~2KiB(ヘッダ長:32B)
16GB/s 16GB/s
■ フロー制御方式:クレジットベース
評価対象インターコネクト(2)
► メモリ・DMA転送バンド幅: 16GB/s
► MPI関数処理オーバヘッド: 200ns
► ルーティング計算時間(RC): 4ns
► 仮想チャネル設定時間(VA): 4ns
► スイッチ設定時間(SA): 4ns
► フリット転送時間(ST): 4ns
► スイッチ遅延時間: 78ns
► ケーブル遅延時間: 10ns
► MPIプロセス数/ノード: 1
※ 以上は実在しないシステムだが、一般的なスーパーコンピュータの仕様・構成に近い
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 40
評価対象アプリケーション
► Pairwise Exchange
Alltoall
► データサイズ: 32KiB
► 次ページ以降は、OpenNSIMによる出力結果
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 41
for ( i=1; i<mysize; i++ ) {
dst = src = myrank ^ i;
MGEN_Irecv(,,, src,,, &req[0]);
MGEN_Isend(,,, dst,,, &req[1]);
MGEN_Wait(&req[1], &stat[1]);
MGEN_Wait(&req[0], &stat[0]);
}
Pairwise Exchangeの通信パターン (8ノードの例)
性能情報ファイル
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 42
MaxSimTime 166712548000 [Ticks]
SumArrivedPackets 71268352
SumArrivedPacketSize 139652431872 [Bytes]
SumSizeTransfer 1397206548480 [Bytes]
SumNumLinks 12288
EffectiveBandwidth 8380.932121 [GBytes/10^12Ticks] (SumSizeTransfer/M
EffectiveLinkBandwidth 0.682042 [GBytes/10^12Ticks/Links] (SumSizeTransfer/
IdealLinkBandwidth 4.000000 [GBytes/10^12Ticks/Links]
LinkBandwidthEfficiency 17.051050 [%] (EffectiveLinkBandwidth/IdealLinkBand
MinSimStartTime 1290126348.243068
MaxSimEndTime 1290127795.179783
SimDuration 1446.936715
SumLinkBusyTime 382164407752000 [Ticks]
LinkBusyRate 18.655236 [%] (CumulLinkBusyTime/SumNumLinks/MaxSim
SumNumWaitPacketsInRt 372972599
SumNumThruPacketsInRt 340059081
CumulPacketWaitTimeInRt 328675643082000 [Ticks]
SumNumWaitPacketsInNi 25432757
SumNumThruPacketsInNi 45835595
CumulPacketWaitTimeInNi 83268741998000 [Ticks]
CumulNetworkLatency 370885137344000 [Ticks]
AveragePacketWaitTime 881232.680265 [Ticks] (CumlPacketWaitTimeInRt/SumNum
AverageAllPacketWaitTime 460955.175346 [Ticks] (CumlPacketWaitTimeInRt/(SumNu
※OpenNSIMの実行結果より
リンクスループット(各次元方向毎)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 43
3次元トーラス網 2,048ノード
※OpenNSIMの実行結果より
定期的な脈動が発生
ネットワークレイテンシ
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 44
※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より
通信混雑の発生割合
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 45
※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より
同一方向への通信が一時的に発生
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 46
0 1 2 3 4 5 6 7
メッシュ網
トーラス網
+X
-X
+X
-X
+X
-X
+X
-X
+X
+X
Step 1
Step 2
Step 3
Step 4
リンクスループット(各次元方向毎)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 47
3次元メッシュ網 2,048ノード
※OpenNSIMの実行結果より
リンクスループットの分散割合
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 48
※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より
仮想チャネルバッファ利用率
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 49
※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より
ノード・ポート毎の輻輳回数(上位順)
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 50
※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より
Jumpshotによる通信状況の表示
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 51
※OpenNSIMの実行結果より ※ 3次元トーラス網 64ノード
パケットペーシングの有効性調査
NSIMを用いた評価事例
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 52
パケットペーシング
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 53
通信の単位であるパケットを、一定の間隔を空けて送ること
パケットペーシング無し パケットペーシング有り(間隔:1)
12345678
通信データ
パケット
■通信時のパケットの流れ
1234 1234
※車にたとえると、車間距離を空けること
■通信時のデータはパケットに分割
56
パケットの転送に間隔を空けてネットワークの混雑を削減
評価実験内容
► 評価実験1
目的:パケットペーシングの有効性を調査 パケット間隔を変えただけでペーシングの効果がでるか?
方法:全対全通信プログラムに対してパケット間隔を変化
► 評価実験2
目的:パケットペーシングによる全対全通信の最適化 どこまで全対全通信を速くすることができるか?
方法:全対全通信プログラムに適したパケット間隔を探索
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 54
※パケットペーシングを行うために、LMGEN関数を使用
評価実験1
► 全対全通信プログラムに対してパケット間隔を変化
全対全通信アルゴリズム Pairwise Exchange
ring
トポロジ 2次元トーラス網
3次元トーラス網
ファットツリー網
ノード数 512、1024、2048
※ MPIプロセス数/ノード: 1
パケット間隔 0(ペーシング無し)~4まで、0.25刻みで変化させる
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 55
Pairwise exchange: 512~2048ノード
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 56
2次元トーラス網 3次元トーラス網 ファットツリー網
88.0%
74.9%91.3%
78.4%
76.0%
77.0%
98.8%
98.2%
98.6%
適切にパケット間隔を空けることで、プログラムの高速化が見込める
Ring: 512~2048ノード
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 57
2次元トーラス網 3次元トーラス網 ファットツリー網
82.6%
81.9% 72.9%
83.9%
82.6%
98.5%
97.5%
85.9%
100.0%
適切にパケット間隔を空けることで、プログラムの高速化が見込める
評価実験2
► 全対全通信プログラムに適したパケット間隔を探索
全対全通信プログラム A2AT(メッシュ/トーラス向け全対全通信、東京工科大で開発)
ネットワーク形態 2次元トーラス網
ノード数 81ノード(9x9)
NIC数 4NIC(同時送受信可能)
パケット間隔
実行時間が最小になるよう、アルゴリズムに適したパケット間隔を探索
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 58
A2ATにおけるパケットペーシング
► N個隣と通信する時に、N個の通信データでネットワークを取り合う
► パケット間に(N-1)パケット分の間隔を入れる 通信相手によってパケット間隔が異なる
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 59
src dst
パケットの流れ
2パケット分の間隔によるペーシング
3個隣の時は、3つの通信データでネットワークを共有
パケットペーシングによるA2ATの最適化
► プログラム実行時間が約1/3に減少► 理想実行時間の107.5%まで肉薄
2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 60
パケットペーシング有り(実行時間:25.8msec.)
パケットペーシング無し(実行時間:84msec.)
↓ 理想実行時間(24msec.)
プログラムに最適化したパケット間隔を用いることで、大幅な高速化が可能
※2次元トーラス網 9x9ノード
↓ 理想実行時間(24msec.)