Psi sim
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

大規模システム評価環境 PSI-SIM 数千個のマルチコア・プロセッサを搭載したペタスケールコンピュータの性能予測 PowerPoint PPT Presentation


  • 85 Views
  • Uploaded on
  • Presentation posted in: General

大規模システム評価環境 PSI-SIM 数千個のマルチコア・プロセッサを搭載したペタスケールコンピュータの性能予測. ○井上こうじ 1) 薄田竜太郎 2) 安藤壽茂 3) 石附茂 3) 小松秀実 3) 稲富雄一 1) 本田宏明 1) 山村周史 3) 柴村英智 4) 于雲青 1) 青柳睦 1) 木村康則 3) 村上和彰 1) 1) 九州大学 2) IST 3) 富士通株式会社 4) ISIT. お詫びとお断り. 「アーキテクチャ」の話ではありません ! 「集積回路」の話ではありません !

Download Presentation

大規模システム評価環境 PSI-SIM 数千個のマルチコア・プロセッサを搭載したペタスケールコンピュータの性能予測

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Psi sim

大規模システム評価環境PSI-SIM数千個のマルチコア・プロセッサを搭載したペタスケールコンピュータの性能予測

○井上こうじ1)薄田竜太郎2)安藤壽茂3)石附茂3)

小松秀実3)稲富雄一1)本田宏明1)山村周史3)

柴村英智4)于雲青1)青柳睦1)木村康則3)村上和彰1)

1) 九州大学 2) IST 3) 富士通株式会社 4) ISIT


Psi sim

お詫びとお断り

  • 「アーキテクチャ」の話ではありません!

  • 「集積回路」の話ではありません!

  • 文部科学省「次世代IT基盤構築のための研究開発:将来のスーパーコンピューティングのための要素技術の研究開発」に関する成果報告です!


Psi sim

与えられたミッションとは?

「テラフロップスマシン」で「ペタフロップスマシン」の性能を予測せよ!

How are you, Mr. Tera?

性能予測対象マシン

ターゲットマシン

性能予測実施マシン

ホストマシン

I am fine!

How about you, Mr. Peta?


Psi sim

ペタスケールを「体感」する!?

ペタフロップス・スパコン

(実効)

1PFlops

[email protected]

10TFlops

九大PCクラスタ(ピーク)

(Xeon 3GHz×32)

100GFlops

九大スパコン(ピーク)

(Itanium2 1.6GHz×1K)

1GFlops

小学4年:0.8ops

(正解率100%)

10MFlops

九大准教授

1.5ops

小学2年:0.4ops

(正解率100%)

井上こうじ×66億

100KFlops

1KFlops

10Flops

0.1Flops


Psi sim

発表内容

  • はじめに(「ペタスケール」を体感する!)

  • 従来のスパコン性能予測における限界

  • 大規模システム性能評価環境PSI-SIM

    • プログラムコードの抽象化(スケルトンコード)

    • 仮想超並列実行環境(BSIM)

  • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する!

  • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する!

  • まとめと今後の展開


Psi sim

発表内容

  • はじめに(「ペタスケール」を体感する!)

  • 従来のスパコン性能予測における限界

  • 大規模システム性能評価環境PSI-SIM

    • プログラムコードの抽象化(スケルトンコード)

    • 仮想超並列実行環境(BSIM)

  • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する!

  • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する!

  • まとめと今後の展開


Psi sim

「ホスト/ターゲット間の性能差」による3つの限界

  • プログラム実行限界

  • ホスト1ノードでターゲット100~1,000ノード分の実行

  • 特にメモリ不足が深刻に!

ペタスケール

並列プログラム

  • ログ採取限界

  • [email protected]

  • ノード数や問題サイズ増大と共により深刻に!

Real

Machine

通信

ログ

  • シミュレーション限界

  • [email protected]!

  • ノード数増加や問題サイズ増大と共により深刻に!

Interconnect

Simulator

性能

レポート


Psi sim

発表内容

  • はじめに(「ペタスケール」を体感する!)

  • 従来のスパコン性能予測における限界

  • 大規模システム性能評価環境PSI-SIM

    • プログラムコードの抽象化(スケルトンコード)

    • 仮想超並列実行環境(BSIM)

  • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する!

  • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する!

  • まとめと今後の展開


Psi sim1

PSI-SIMの性能予測フロー~「実行結果」は保証しない!~

超並列化

オリジナルコード

演算実行時間情報の事前採取

の事前採取

通信遅延情報

の事前採取

  • プロセッサ

  • シミュレーション

  • 実機での測定

  • 仕様から見積り

  • など

  • インターコネクトシミュレーション

  • 実機での測定

  • 仕様から見積り

  • など

通信性能

情報

演算性能

情報

スケルトンコード

RealMachine

(BSIM)

最終システム

性能レポート

ターゲット


Psi sim

スケルトン・コードの導入~性能評価専用プログラムコード~

  • ポイント1:演算部分を実行時間に置換え

  • ポイント2:実行を模擬する通信機能

  • ポイント3:プログラム作成者による使用メモリ容量の削減

オリジナルコード

スケルトンコード

…….

MPI_Send(…);

for (i=0; i<1000; i++)

s += a[i]

MPI_Recv(…)

…….

…….

LMPI_Send(…);

/* コメント

for (i=0; i<1000; i++)

s += a[i]

*/

BSIM_Add_time(203e-9)

LMPI_Recv(…)

…….


Psi sim

仮想超並列実行を高速化する!~プログラム抽象化と疑似実行モードのサポート~

・・・・・

MPI_Send(…);

/* コメント

for (i=0; i<1000; i++)

s += a[i];

*/

BSIM_Add_time(203e-9);

MPI_Recv(…);

・・・・・

スケルトンコード

実行の様子

・・・・・

MPIイベント(Send)

時刻の更新(203e-9)

MPIイベント(Recv)

・・・・・

BSIM

  • プロセス毎に時刻を管理

  • BSIM_Add_Time関数により時刻を更新

  • 演算省略による実行時間削減

  • ペイロードを転送しない仮想通信機能による実通信時間削減

通信プロファイル

・・・

103.264767865 MPI_Send end

103.264768068 MPI_Recv start

11

203e-9


Psi sim

どの程度,高速かつ高精度なのか?

ERI (Electron Repulsion Integral)の場合

ゼロ通信レイテンシを仮定

  • FMO-ERI(スケルトンコード)

    • 対象分子 (Gly)15、基底関数6-31G* (108原子、1009関数)

    • BSIM_Add_timeに加える時間は実機測定結果に基づきモデル化

  • 24GF/sホスト(4ノード)で386GF/s(64ノード)ターゲットの性能予測→×16

スケルトンでの予測

オリジナル

オリジナル

アプリ実行時間(sec)

実行所要時間(sec)

スケルトン


Psi sim

通信プロファイルは正しいのか?

ERI (Electron Repulsion Integral)の場合

64ノードを使用した実際の実行

ゼロ通信レイテンシを仮定

4ノードを使用した擬似実行


Psi sim2

PSI-SIMのアプローチ~「実行結果」は保証しない!~

  • 性能評価専用コードの導入

  • 実行の振舞いを維持しつつ使用メモリ容量を削減

ペタスケール

並列プログラム

ペタスケール

並列プログラム

通信遅延時間に関する情報

演算実行時間に関する情報

  • プログラム抽象化の導入

  • 演算コード部分を「実行時間」で置換え

Real

Machine

RealMachineor

Net. Simulator

RealMachineor

CPU Simulator

スケルトン

コード

通信

ログ

  • 仮想超並列実行環境の構築

  • スケルトンコードを実機で実行

  • 通信ログが不要に!

  • 大規模ネットワークSim.が不要に!

  • 高速実行が可能に!

RealMachine

(BSIM)

Interconnect

Simulator

性能

レポート

性能

レポート


Psi sim

発表内容

  • はじめに(「ペタスケール」を体感する!)

  • 従来のスパコン性能予測における限界

  • 大規模システム性能評価環境PSI-SIM

    • プログラムコードの抽象化(スケルトンコード)

    • 仮想超並列実行環境(BSIM)

  • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する!

  • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する!

  • まとめと今後の展開


50 200gflops 6 5tflops

50~200GFlopsマシンで6.5TFlopsマシンの性能を予測する!


Psi sim

性能予測フロー

並列プログラム

・プログラムの超並列化

・QP1Kにて実行

→実行時間測定

・スケルトンコード作成

・通信遅延情報作成

・BSIMによる実行

→性能予測

  • アプリケーション・プログラム

    • HPL

    • PHASE(固体第一原理計算)

    • Open-FMO(タンパク質第一原理計算)

    • FMO-ERI(二電子積分計算)

通信遅延時間に関する情報

演算実行時間に関する情報

RealMachine

RealMachine

比較

スケルトン

コード

BSIM

(on Real Machine)

性能

レポート


Fmo eri

超並列化スケルトン・コードの開発~FMO-ERIの場合~

FMO-ERI

オリジナルコード

オリジナルコードの計算カーネル

for (ijcs=0; ijcs<NCS pair; ijcs++) {

for (klcs=0; klcs<=ijcs; klcs++) {

for (ijps=0; ijps<Nsurvive, ijcs; ijps++) {

for (klps=0; klps<Nsurvive, klcs; klps++) {

calculate_primitive_ERI(ijps, klps);

calculate_contracted_ERI(ijcs, klcs);

}

}

add_to_Fock_matrix(ijcs, klcs);

}

}

実行時間

見積り

超並列化

計算カーネル抽出

原始積分1組あたりの計算時間(T0)

実行時間見積り

スケルトンコード

スケルトンコード作成

for (ijcs=0; ijcs<NCS pair; ijcs++) {

for (klcs=0; klcs<=ijcs; klcs++) {

/*for (ijps=0; ijps<Nsurvive, ij; ijps++) {

for (klps=0; klps<Nsurvive, kl; klps++) {

calculate_primitive_ERI(ijps, klps);

calculate_contracted_ERI(ijcs, klcs);

}

}

add_to_Fock_matrix(ijcs, klcs);

*/

BSIM_Add_time(T0×Nsurvive, ijcs×Nsurvive, klcs);

}

}

計算カーネルの抽象化

(実行時間での置換え)

使用メモリ/通信の削減

スケルトン化

超並列化

スケルトンコード


Mpi allreduce

プロセス数

通信レイテンシ情報の測定~MPI-Allreduceの場合~

  • 実機にてプロセス数とデータサイズを変更した際の遅延時間を測定

  • これら以外の場合については実測値より近似

通信遅延時間の実測値


Open fmo fmo eri

どの程度正しく予測できたのか?(Open-FMO / FMO-ERI)

実測

(通信)

予測

(通信)

FMO-ERI

  • 6.5TF/sを50GF/sホストで予測

  • 実行時間予測誤差(絶対値)

    • 全実行時間:4%

    • 演算部分:2%

実測

(演算)

予測

(演算)

Exe. Time (sec)

  • 対象分子:Lysozyme(リゾチーム)

  • 基底関数 STO-3G (1961原子、6005関数)

予測

(通信)

Open-FMO

実測(演算+通信)

  • 6.5TF/sを200GF/sホストで予測

  • 実行時間予測誤差(絶対値)

    • 実機全実行時間と予測演算時間を比較:35~140%

予測

(演算)

Exe. Time (sec)

対象分子:Aquaporin(アクアポリン)

基底関数 STO-3G

492 984

#of Fragments


Hpl phase

どの程度正しく予測できたのか?(HPL / PHASE)

予測

(通信)

HPL

5.02TFlops

  • 6.5TF/sを200GF/sホストで予測

  • 実行時間予測誤差(問題サイズ320K)

    • 全体:<10%

    • 演算部分:<1%

Exe. Time (sec)

実測(通信)

予測

(演算)

実測(演算)

160,000

240,000

320,000

Problem Size

PHASE

2.51TFlops

  • 6.5TF/sを200GF/sホストで予測

  • 実行時間予測誤差(バンド数16K)

    • 全体:約10%

    • 演算部分:約1%

予測

(通信)

Exe. Time (sec)

実測(通信)

予測

(演算)

実測(演算)

4K

8K

16K

バンド数


Psi sim

性能予測にどの程度の時間が必要なのか?


Psi sim

発表内容

  • はじめに(「ペタスケール」を体感する!)

  • 従来のスパコン性能予測における限界

  • 大規模システム性能評価環境PSI-SIM

    • プログラムコードの抽象化(スケルトンコード)

    • 仮想超並列実行環境(BSIM)

  • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する!

  • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する!

  • まとめと今後の展開


1 6tflops 2 1pflops

1.6TFlopsマシンで2.1PFlopsマシンの性能を予測する!

並列プログラム

  • 2.1PFlopsターゲット

    • コア:スカラコア+16PE SIMD演算機構 (2GHz,64GFlops)

    • 8コア/計算ノード (512GFlops/計算ノード)

    • 4,096ノードを3Dトーラスネットワークで接続

      • 合計 32,768スカラコア

      • ピーク浮動小数点演算性能 2.1PFlops

  • 1.6TFlopsホスト

    • インテルXeon3.06GHz

    • 128ノード(2プロセッサ/ノード)

通信遅延時間に関する情報

演算実行時間に関する情報

Estimation

(From Spec.)

CPU Simulation

スケルトン

コード

BSIM

(on Real Machine)

性能

レポート


Psi simd

超高性能プロセッサPSI-SIMD

  • 高Flops,低消費電力アーキテクチャの追求

  • スカラSPARCコア+最大32SIMD演算ユニット

    • SPARCにSIMD命令を追加

    • メモリ階層:SIMD FP演算器-レジスタ-バッファメモリ(SBM)-メインメモリ

10mm

PE

PE

Scalar

Core

PE

PE

PE

PE

PE

PE

9mm

4MB

L2$

PE

PE

PE

PE

PE

PE

PE

PE

45nmプロセスによる

1コアのイメージ

[山村SWoPP’07]

マルチコア構成のイメージ


Hpl 1 3

超並列化スケルトン・コードの開発~HPLの場合(1/3)~

HPL

オリジナルコード

  • 高負荷計算カーネル検出

    • updateTTルーチン ∝ N3

    • 全実行時間の90%以上

    • 特に,dgemm/dtrsm関数による行列計算

  • 高負荷計算カーネル抽出→dgemm/dtrsm

    • 実行処理フローを変えずにカーネル部以外を除去

    • 演算用配列の削除

    • 転送の送受信先・メッセージサイズを再現

  • PSI-SIMDコア向けdgemm/dtrsmの開発

    • SIMD向け計算アルゴリズム

    • PSIM/WCVによる性能解析とチューニング

超並列化

計算カーネル抽出

実行時間見積り

PSIM

スケルトンコード作成

計算カーネルの抽象化

(実行時間での置換え)

使用メモリ/通信の削減

超並列化

スケルトンコード


Hpl 2 3

スカラコア

SIMD

zgemm

dgemm

超並列化スケルトン・コードの開発~HPLの場合(2/3)~

HPL

オリジナルコード

超並列化

計算カーネル抽出

実行時間見積り

PSIM

スケルトンコード作成

計算カーネルの抽象化

(実行時間での置換え)

使用メモリ/通信の削減

超並列化

スケルトンコード

  • PSIM(プロセッサシミュレータ)による実行サイクル数計測

  • 8コアのメモリアクセス競合効果を机上評価して1コア実行サイクル数を補正

  • 小規模実行や部分実行により得た詳細データに基づき性能式を導出


Hpl 1 31

超並列化スケルトン・コードの開発~HPLの場合(1/3)~

HPL

オリジナルコード

オリジナルコードの計算カーネル

if( curr != 0 ) {

HPL_dgemm( HplColumnMajor, HplNoTrans, HplTrans,

mp, nn, jb, -HPL _rone, HPL_rone, L2ptr, ldl2, Uptr, LDU,

HPL_rone,Mptr( Aptr, jb, 0, lda ), lda );

HPL_dlatcpy( jb, nn, Uptr, LDU, Aptr, lda );

} else {

超並列化

計算カーネル抽出

実行時間見積り式

mx=((mp-1)/32+1)*4

nx=((nn-1)/4+1)*4

jx=((jb-1)/2+1)*2

estimate=3.14e-07+mx*(2.0e-09*jb

+4.951e-09*nn+nx*(0.977e-12

*((jb-1)/32+1)*32+4.1760e-11*jx)

  • 使用配列サイズの縮小/削除

  • 仮想的な通信の実現

実行時間見積り

PSIM

スケルトンコード作成

スケルトンコード

計算カーネルの抽象化

(実行時間での置換え)

if( curr != 0 ) {

mx=((mp-1)/32+1)*4;

nx=((nn-1)/4+1)*4;

jx=((jb-1)/2+1)*2;

estimate=3.14e-07+mx*(2.0e-09*jb +4.951e-09*nn+nx*(0.977e-12

*((jb-1)/32+1)*32+4.1760e-11*jx);

BSIM_Add_time( estimate );

HPL_dlatcpy( jb, nn, Uptr, LDU, Aptr, lda );

} else {

使用メモリ/通信の削減

超並列化

スケルトンコード


1 6tflops 2 1pflops1

1.6TFlopsマシンで2.1PFlopsマシンの性能を予測する!

  • 3桁小規模なホスト(1.6TF)でペタスケール・ターゲット性能(2.1PF)を予測

  • HPL

    • 3D-Torus: 1.02PFlops

    • Clos: 1.04PFlops

  • HPL

    • プロセス数:4,096(P=Q=64)

    • 問題サイズ:131万元

    • ブロックサイズ:512

  • PHASE

    • プロセス数:4,096

    • 問題サイズ:65,536 (バンド数)

    • ブロックサイズ:512


Psi sim

発表内容

  • はじめに(「ペタスケール」を体感する!)

  • 従来のスパコン性能予測における限界

  • 大規模システム性能評価環境PSI-SIM

    • プログラムコードの抽象化(スケルトンコード)

    • 仮想超並列実行環境(BSIM)

  • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する!

  • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する!

  • まとめと今後の展開


Psi sim

今後の展開

  • スパコン向けSW開発環境の構築!!

    • 次世代スパコンの特徴とは?

      • 世界に1つだけの「コンピュータ・システム」

      • 無料では使えない!

    • ソフトウェア開発者にとっては?

      • 事前にプログラム実行時間を把握したい

      • 事前に十分なチューニングを行いたい

    • 性能評価環境PSI-SIMをベースとしたソフトウェア開発環境の構築

  • メニーコア向け性能評価環境への発展!!


Psi sim

世界No1へのチャレンジ!!

  • 如何にして,手元で「世界最高性能のスパコンを模擬するか?」

    • PSI-SIMを用いた仮想環境の構築

  • 如何にして,手元での「ソフトウェア・チューニング」を可能にするか?」

    • PSI-SIMを用いた実行状況モニタリング

    • 俯瞰ビューアを用いたボトルネック/改善効果解析

  • 「ペタ」から「エクサ」へ

    • 井上こうじが666,666,666,666,666,666人くらい(?)


Psi sim

お詫びとお断り

  • 「アーキテクチャ」の話ではありません!

  • 「集積回路」の話ではありません!

  • 本日の発表は,現在進行中の「次世代スーパコンピュータ開発@理研」とは全く関係がありません!

  • 文部科学省「次世代IT基盤構築のための研究開発:将来のスーパーコンピューティングのための要素技術の研究開発」に関する成果報告です!


  • Login