1 / 33

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

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

krikor
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. お詫びとお断り • 「アーキテクチャ」の話ではありません! • 「集積回路」の話ではありません! • 文部科学省「次世代IT基盤構築のための研究開発:将来のスーパーコンピューティングのための要素技術の研究開発」に関する成果報告です!

  3. 与えられたミッションとは? 「テラフロップスマシン」で「ペタフロップスマシン」の性能を予測せよ! How are you, Mr. Tera? 性能予測対象マシン ターゲットマシン 性能予測実施マシン ホストマシン I am fine! How about you, Mr. Peta?

  4. ペタスケールを「体感」する!? ペタフロップス・スパコン (実効) 1PFlops Xeon@3GHzが160万台 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

  5. 発表内容 • はじめに(「ペタスケール」を体感する!) • 従来のスパコン性能予測における限界 • 大規模システム性能評価環境PSI-SIM • プログラムコードの抽象化(スケルトンコード) • 仮想超並列実行環境(BSIM) • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する! • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する! • まとめと今後の展開

  6. 発表内容 • はじめに(「ペタスケール」を体感する!) • 従来のスパコン性能予測における限界 • 大規模システム性能評価環境PSI-SIM • プログラムコードの抽象化(スケルトンコード) • 仮想超並列実行環境(BSIM) • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する! • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する! • まとめと今後の展開

  7. 「ホスト/ターゲット間の性能差」による3つの限界「ホスト/ターゲット間の性能差」による3つの限界 • プログラム実行限界 • ホスト1ノードでターゲット100~1,000ノード分の実行 • 特にメモリ不足が深刻に! ペタスケール 並列プログラム • ログ採取限界 • HPL実行@4Kノード・ターゲットでも1テラ・バイト • ノード数や問題サイズ増大と共により深刻に! Real Machine 通信 ログ • シミュレーション限界 • 全対全通信@4Kノード・ターゲットでも9時間! • ノード数増加や問題サイズ増大と共により深刻に! Interconnect Simulator 性能 レポート

  8. 発表内容 • はじめに(「ペタスケール」を体感する!) • 従来のスパコン性能予測における限界 • 大規模システム性能評価環境PSI-SIM • プログラムコードの抽象化(スケルトンコード) • 仮想超並列実行環境(BSIM) • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する! • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する! • まとめと今後の展開

  9. PSI-SIMの性能予測フロー~「実行結果」は保証しない!~PSI-SIMの性能予測フロー~「実行結果」は保証しない!~ 超並列化 オリジナルコード 演算実行時間情報の事前採取 の事前採取 通信遅延情報 の事前採取 • プロセッサ • シミュレーション • 実機での測定 • 仕様から見積り • など • インターコネクトシミュレーション • 実機での測定 • 仕様から見積り • など 通信性能 情報 演算性能 情報 スケルトンコード RealMachine (BSIM) 最終システム 性能レポート ターゲット

  10. スケルトン・コードの導入~性能評価専用プログラムコード~スケルトン・コードの導入~性能評価専用プログラムコード~ • ポイント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(…) …….

  11. 仮想超並列実行を高速化する!~プログラム抽象化と疑似実行モードのサポート~仮想超並列実行を高速化する!~プログラム抽象化と疑似実行モードのサポート~ ・・・・・ 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

  12. どの程度,高速かつ高精度なのか? ERI (Electron Repulsion Integral)の場合 ゼロ通信レイテンシを仮定 • FMO-ERI(スケルトンコード) • 対象分子 (Gly)15、基底関数6-31G* (108原子、1009関数) • BSIM_Add_timeに加える時間は実機測定結果に基づきモデル化 • 24GF/sホスト(4ノード)で386GF/s(64ノード)ターゲットの性能予測→×16 スケルトンでの予測 オリジナル オリジナル アプリ実行時間(sec) 実行所要時間(sec) スケルトン

  13. 通信プロファイルは正しいのか? ERI (Electron Repulsion Integral)の場合 64ノードを使用した実際の実行 ゼロ通信レイテンシを仮定 4ノードを使用した擬似実行

  14. PSI-SIMのアプローチ~「実行結果」は保証しない!~PSI-SIMのアプローチ~「実行結果」は保証しない!~ • 性能評価専用コードの導入 • 実行の振舞いを維持しつつ使用メモリ容量を削減 ペタスケール 並列プログラム ペタスケール 並列プログラム 通信遅延時間に関する情報 演算実行時間に関する情報 • プログラム抽象化の導入 • 演算コード部分を「実行時間」で置換え Real Machine RealMachineor Net. Simulator RealMachineor CPU Simulator スケルトン コード 通信 ログ • 仮想超並列実行環境の構築 • スケルトンコードを実機で実行 • 通信ログが不要に! • 大規模ネットワークSim.が不要に! • 高速実行が可能に! RealMachine (BSIM) Interconnect Simulator 性能 レポート 性能 レポート

  15. 発表内容 • はじめに(「ペタスケール」を体感する!) • 従来のスパコン性能予測における限界 • 大規模システム性能評価環境PSI-SIM • プログラムコードの抽象化(スケルトンコード) • 仮想超並列実行環境(BSIM) • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する! • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する! • まとめと今後の展開

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

  17. 性能予測フロー 並列プログラム ・プログラムの超並列化 ・QP1Kにて実行 →実行時間測定 ・スケルトンコード作成 ・通信遅延情報作成 ・BSIMによる実行 →性能予測 • アプリケーション・プログラム • HPL • PHASE(固体第一原理計算) • Open-FMO(タンパク質第一原理計算) • FMO-ERI(二電子積分計算) 通信遅延時間に関する情報 演算実行時間に関する情報 RealMachine RealMachine 比較 スケルトン コード BSIM (on Real Machine) 性能 レポート

  18. 超並列化スケルトン・コードの開発~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); } } 計算カーネルの抽象化 (実行時間での置換え) 使用メモリ/通信の削減 スケルトン化 超並列化 スケルトンコード

  19. プロセス数 通信レイテンシ情報の測定~MPI-Allreduceの場合~ • 実機にてプロセス数とデータサイズを変更した際の遅延時間を測定 • これら以外の場合については実測値より近似 通信遅延時間の実測値

  20. どの程度正しく予測できたのか?(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

  21. どの程度正しく予測できたのか?(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 バンド数

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

  23. 発表内容 • はじめに(「ペタスケール」を体感する!) • 従来のスパコン性能予測における限界 • 大規模システム性能評価環境PSI-SIM • プログラムコードの抽象化(スケルトンコード) • 仮想超並列実行環境(BSIM) • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する! • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する! • まとめと今後の展開

  24. 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) 性能 レポート

  25. 超高性能プロセッサ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] マルチコア構成のイメージ

  26. 超並列化スケルトン・コードの開発~HPLの場合(1/3)~超並列化スケルトン・コードの開発~HPLの場合(1/3)~ HPL オリジナルコード • 高負荷計算カーネル検出 • updateTTルーチン ∝ N3 • 全実行時間の90%以上 • 特に,dgemm/dtrsm関数による行列計算 • 高負荷計算カーネル抽出→dgemm/dtrsm • 実行処理フローを変えずにカーネル部以外を除去 • 演算用配列の削除 • 転送の送受信先・メッセージサイズを再現 • PSI-SIMDコア向けdgemm/dtrsmの開発 • SIMD向け計算アルゴリズム • PSIM/WCVによる性能解析とチューニング 超並列化 計算カーネル抽出 実行時間見積り PSIM スケルトンコード作成 計算カーネルの抽象化 (実行時間での置換え) 使用メモリ/通信の削減 超並列化 スケルトンコード

  27. スカラコア SIMD zgemm dgemm 超並列化スケルトン・コードの開発~HPLの場合(2/3)~ HPL オリジナルコード 超並列化 計算カーネル抽出 実行時間見積り PSIM スケルトンコード作成 計算カーネルの抽象化 (実行時間での置換え) 使用メモリ/通信の削減 超並列化 スケルトンコード • PSIM(プロセッサシミュレータ)による実行サイクル数計測 • 8コアのメモリアクセス競合効果を机上評価して1コア実行サイクル数を補正 • 小規模実行や部分実行により得た詳細データに基づき性能式を導出

  28. 超並列化スケルトン・コードの開発~HPLの場合(1/3)~超並列化スケルトン・コードの開発~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 { 使用メモリ/通信の削減 超並列化 スケルトンコード

  29. 1.6TFlopsマシンで2.1PFlopsマシンの性能を予測する!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

  30. 発表内容 • はじめに(「ペタスケール」を体感する!) • 従来のスパコン性能予測における限界 • 大規模システム性能評価環境PSI-SIM • プログラムコードの抽象化(スケルトンコード) • 仮想超並列実行環境(BSIM) • 「ギガ・フロップス・ホスト」で「テラ・フロップス・ターゲット」の性能を予測する! • 「テラ・フロップス・ホスト」で「ペタ・フロップス・ターゲット」の性能を予測する! • まとめと今後の展開

  31. 今後の展開 • スパコン向けSW開発環境の構築!! • 次世代スパコンの特徴とは? • 世界に1つだけの「コンピュータ・システム」 • 無料では使えない! • ソフトウェア開発者にとっては? • 事前にプログラム実行時間を把握したい • 事前に十分なチューニングを行いたい • 性能評価環境PSI-SIMをベースとしたソフトウェア開発環境の構築 • メニーコア向け性能評価環境への発展!!

  32. 世界No1へのチャレンジ!! • 如何にして,手元で「世界最高性能のスパコンを模擬するか?」 • PSI-SIMを用いた仮想環境の構築 • 如何にして,手元での「ソフトウェア・チューニング」を可能にするか?」 • PSI-SIMを用いた実行状況モニタリング • 俯瞰ビューアを用いたボトルネック/改善効果解析 • 「ペタ」から「エクサ」へ • 井上こうじが666,666,666,666,666,666人くらい(?)

  33. お詫びとお断り • 「アーキテクチャ」の話ではありません! • 「集積回路」の話ではありません! • 本日の発表は,現在進行中の「次世代スーパコンピュータ開発@理研」とは全く関係がありません! • 文部科学省「次世代IT基盤構築のための研究開発:将来のスーパーコンピューティングのための要素技術の研究開発」に関する成果報告です!

More Related