60
インターコネクトシミュレータ「NSIMのご紹介 ()九州先端科学技術研究所 次世代スーパーコンピュータ開発支援室 柴村 英智 [email protected] SS研マルチコアクラスタ性能WG2回会合 - Apr. 21, 2011

インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

インターコネクトシミュレータ「NSIM」のご紹介

(財)九州先端科学技術研究所

次世代スーパーコンピュータ開発支援室

柴村英智

[email protected]

SS研マルチコアクラスタ性能WG第2回会合 - Apr. 21, 2011

Page 2: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ご紹介の流れ

► はじめに

► 基本仕様/制約条件

► インターコネクトのモデリング

► 入力ファイル

► 出力ファイル

► クラウド環境によるシミュレーション実行サービス

► 評価事例

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 2

Page 3: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

はじめに

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 3

Page 4: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

インターコネクト・シミュレーションの重要性

► HPCシステム/アプリケーションの大規模・複雑化

「通信レイテンシの壁」

► インターコネクト設計

物理的な通信性能だけでなく、様々なプログラムに内在する通信パターンとの親和性が課題

► ペタ/エクサスケールコンピューティング時代

「インターコネクトの通信性能」と「アプリケーションの通信パターン」を併せた定量的な性能評価が重要

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 4

Page 5: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

NSIMの概要

► 目的 現実的な時間内での大規模インターコネクトの性能評価

► 機能 インターコネクトの仕様記述や評価アプリケーションを入力とし、パケットレベルでの通信シミュレーションによって、アプリケーションの実行時間の推定や各種ネットワーク資源の利用統計情報を出力

► 入力ファイル インターコネクト・コンフィグレーションファイル ランク・ノード変換テーブルファイル MGENプログラム(MPI相当のプログラム)

► 出力ファイル 性能情報ファイル 統計情報ファイル 通信履歴ファイル

► 実装 離散事象シミュレーション(PDES)に基づいた、並列実装(MPI実装)

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 5

Page 6: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

NSIMの特長

► 大規模インターコネクトの性能評価や通信内容の解析を支援 数千から数万のノードを持つスーパーコンピュータの大規模インターコネクトを対象に並列離散事象シミュレーションを行い、様々な側面からの性能評価を支援

詳細シミュレーションによって、通信ボトルネックの解析にも利用可能

► 仕様記述の変更による様々なインターコネクトのシミュレーションが可能 インターコネクトやシミュレーション時のパラメータを記述した設定ファイルを利用者が変更することで、詳細なインターコネクトのシミュレーションが可能

► MPI標準に相当するプログラムを入力としたシミュレーション HPC分野で広く普及しているMPI標準に相当したプログラムを入力とし、予想実行時間、ネットワークのレイテンシやスループット、バッファの利用率、輻輳解析を支援する情報といった多彩なシミュレーション結果を出力

シミュレーション結果は、視覚的に閲覧可能

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 6

Page 7: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

基本仕様/制約条件

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 7

Page 8: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

基本的な仕様

► ノード数 ~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

Page 9: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

シミュレーションの制約条件

► 評価アプリケーションの通信データ(メッセージ内容)は転送されない(破棄される)

受信データに応じて挙動が変わるアプリケーションは、正しくシミュレーションできない

► 1CPU/ノード、1プロセス/CPUに固定

マルチスレッド等への対応は今後の課題

► プロセスにおける動的メモリ確保は注意が必要

MGENプログラムで独自に管理する必要がある

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 9

Page 10: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

インターコネクトのモデリング

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 10

Page 11: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ノードとルータの接続モデル(直接網)

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 11

クロスバ

: :

MPI

空間

ユーザ空間

主記憶

入力バッファ

出力バッファ

ノード

ルータ

クロスバ

: :

MPI

空間

ユーザ空間

主記憶

入力バッファ

出力バッファ

ノード

ルータ

クロスバ

: :

MPI

空間

ユーザ空間

主記憶

入力バッファ

出力バッファ

ノード

ルータ

Page 12: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ノードとルータの接続モデル(間接網)

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 12

クロスバ

: :

MPI

空間

ユーザ空間

主記憶

送信バッファ

受信バッファ

入力バッファ

出力バッファ

ノード

ルータ

クロスバ

: :

入力バッファ

出力バッファ

ルータ

クロスバ

: :

MPI

空間

ユーザ空間

主記憶

送信バッファ

受信バッファ

入力バッファ

出力バッファ

ノード

ルータ

※接続ノードなし

Page 13: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

レイテンシの積算項目(概要)

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オーバヘッド(ポスト処理レイテンシ)

⑤~⑨、⑪~⑮ ⑩

Page 14: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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⇒ユーザ)•関数プロローグ、エピローグ

Page 15: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

インターコネクト・コンフィグレーションファイル

入力ファイル

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 15

Page 16: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

インターコネクトの仕様設定

► インターコネクトに関する仕様パラメータを、インターコネクト・コンフィグレーションファイルに記述

パラメータを変更することで様々なインターコネクトのシミュレーションが可能

► 設定項目(主要なもの)

ノード数、トポロジ、フリットサイズ、パケットサイズ、パケットヘッダサイズ、MTU、仮想チャネル数、仮想チャネルバッファサイズ、ルータ転送時間(RC、VA、SA、ST)、スイッチ遅延時間、ケーブル遅延時間、トーラス網におけるエンドアラウンドリンクの有無、MPIオーバヘッド、メモリ間コピー速度、メモリ-ルータ間DMA転送速度、ランデブー通信閾値、ゼロコピー通信閾値、など

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 16

Page 17: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

インターコネクト・コンフィグレーションファイルの例

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

)

)

Page 18: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ランク・ノード変換テーブルファイル

入力ファイル

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 18

Page 19: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

物理ノードに対するランク配置

► 物理ノードに対するプロセス(ランク)の配置情報を、ランク・ノード変換テーブルファイルに記述

ランク配置を変更した場合の性能評価が可能

生成スクリプトを利用可能

► 記述フォーマット

3次元メッシュ/トーラス網

[ランク] [物理ノードアドレスX] [物理ノードアドレスY] [物理ノードアドレスZ]

2次元メッシュ/トーラス網

[ランク] [物理ノードアドレスX] [物理ノードアドレスY] 0

ファットツリー

[ランク] [物理ノードアドレス]

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 19

Page 20: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ランク・ノード変換テーブルの例

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

Page 21: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

MGENプログラム

入力ファイル

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 21

Page 22: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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

Page 23: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

サポート対象の通信

► 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

Page 24: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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

Page 25: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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

Page 26: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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);

}

Page 27: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

性能情報ファイル

出力ファイル

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 27

Page 28: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

性能情報ファイル

► MGENプログラムの実行(シミュレーション)における、インターコネクトの総合的な統計値を出力

単一ファイル: perf.log

► 出力項目(一部)

評価アプリケーションの推定実行時間

総転送データ量

総転送パケット数

有効バンド幅

有効リンクバンド幅

理想リンクバンド幅

リンクビジー率、など

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 28

Page 29: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

性能情報ファイルの例

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

●評価アプリケーションの推定実行時間

●総転送データ量

●有効リンクバンド幅

●理想リンクバンド幅

●実シミュレーション時間(秒)

●リンクビジー率

Page 30: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

統計情報ファイル

出力ファイル

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 30

Page 31: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

統計情報ファイル

► MGENプログラムの実行(シミュレーション)における、インターコネクトの資源利用に関する詳細な情報を出力 出力項目毎にファイル出力

► 出力項目(時系列表示) 通信レイテンシ ネットワークレイテンシ リンクスループット バッファ利用率 リンクスループットの割合の変動 輻輳の発生割合

► 出力項目(その他) 輻輳箇所をノード・ポート毎に上位順で表示

► 各ファイル(Rawデータ)の可視化ツールを提供

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 31

Page 32: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

通信履歴ファイル

出力ファイル

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 32

Page 33: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

通信履歴ファイル

► MGENプログラムの動作に基づく通信履歴を出力

► 専用のコンバートツールによって、slog2ファイル形式に変換後、MPICH2付属のjumpshotツールで閲覧可能

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 33

Page 34: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

通信履歴ファイルの可視化例

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 34

Page 35: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

クラウド環境によるシミュレーション実行サービス

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 35

Page 36: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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

Page 37: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

TaaSによるOpenNSIMの利用の流れ

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 37

①ブラウザからインターコネクトに関するシミュレーションパラメータを入力

②実行開始ボタンを押す

⑤シミュレーション

TaaS実行環境

OpenNSIM

CAESAR

Redefis

③処理(タスク)の受付・管理④他サーバへの処理委託

⑥実行結果の返却

⑦シミュレーション結果(Zipファイル内)の閲覧

Page 38: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

3次元トーラス網2048ノードのシミュレーション結果

OpenNSIMを用いた評価事例

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 38

Page 39: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

評価対象インターコネクト(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

■ フロー制御方式:クレジットベース

Page 40: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

評価対象インターコネクト(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

Page 41: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

評価対象アプリケーション

► 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ノードの例)

Page 42: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

性能情報ファイル

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の実行結果より

Page 43: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

リンクスループット(各次元方向毎)

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 43

3次元トーラス網 2,048ノード

※OpenNSIMの実行結果より

定期的な脈動が発生

Page 44: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ネットワークレイテンシ

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 44

※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より

Page 45: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

通信混雑の発生割合

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 45

※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より

Page 46: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

同一方向への通信が一時的に発生

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

Page 47: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

リンクスループット(各次元方向毎)

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 47

3次元メッシュ網 2,048ノード

※OpenNSIMの実行結果より

Page 48: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

リンクスループットの分散割合

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 48

※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より

Page 49: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

仮想チャネルバッファ利用率

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 49

※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より

Page 50: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

ノード・ポート毎の輻輳回数(上位順)

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 50

※ 3次元トーラス網 2,048ノード※OpenNSIMの実行結果より

Page 51: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

Jumpshotによる通信状況の表示

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 51

※OpenNSIMの実行結果より ※ 3次元トーラス網 64ノード

Page 52: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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

NSIMを用いた評価事例

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 52

Page 53: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

パケットペーシング

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 53

通信の単位であるパケットを、一定の間隔を空けて送ること

パケットペーシング無し パケットペーシング有り(間隔:1)

12345678

通信データ

パケット

■通信時のパケットの流れ

1234 1234

※車にたとえると、車間距離を空けること

■通信時のデータはパケットに分割

56

パケットの転送に間隔を空けてネットワークの混雑を削減

Page 54: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

評価実験内容

► 評価実験1

目的:パケットペーシングの有効性を調査 パケット間隔を変えただけでペーシングの効果がでるか?

方法:全対全通信プログラムに対してパケット間隔を変化

► 評価実験2

目的:パケットペーシングによる全対全通信の最適化 どこまで全対全通信を速くすることができるか?

方法:全対全通信プログラムに適したパケット間隔を探索

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 54

※パケットペーシングを行うために、LMGEN関数を使用

Page 55: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

評価実験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

Page 56: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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%

適切にパケット間隔を空けることで、プログラムの高速化が見込める

Page 57: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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%

適切にパケット間隔を空けることで、プログラムの高速化が見込める

Page 58: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

評価実験2

► 全対全通信プログラムに適したパケット間隔を探索

全対全通信プログラム A2AT(メッシュ/トーラス向け全対全通信、東京工科大で開発)

ネットワーク形態 2次元トーラス網

ノード数 81ノード(9x9)

NIC数 4NIC(同時送受信可能)

パケット間隔

実行時間が最小になるよう、アルゴリズムに適したパケット間隔を探索

2011/4/21 All Rights Reserved, Copyright © Institute of Systems, Information Technologies and Nanotechnologies 2011 58

Page 59: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

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つの通信データでネットワークを共有

Page 60: インターコネクトシミュレータ「NSIM · トヘッダサイズ、mtu、仮想チャネル数、仮想チャネル バッファサイズ、ルータ転送時間(rc、va、sa、st)、ス

パケットペーシングによる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.)