「電⼦情報学特論I」 スーパーコンピュータ⼊⾨ 2016年6⽉6⽇ ⽇本電気株式会社 撫佐 昭裕 1 © NEC Corporation 2015 ⽬次 ▌スーパーコンピュータとは ▌何に利⽤されているか ▌スーパーコンピュータの構成 ▌ベクトル処理(SIMD) ▌メモリシステムと性能 ▌まとめ 2 © NEC Corporation 2015 スーパーコンピュータとは ▌科学技術計算を⾼速に⾏うコンピュータ その時代でもっとも⾼速な処理能⼒を持つコンピュータ群の総称 ▌政府の定義 50 TFLOPS以上の性能を持つコンピュータ (随時変更される) ▌性能の表し⽅ 記 号 大きさ K 103 M 106 G 109 T 1012 • C⾔語: float,double型のデータ P 1015 • Fortarn: E 1018 FLOPS (フロップス) • Floating-point Operations per Second • 1秒間に⾏う浮動⼩数点演算の回数 浮動⼩数点データ 3 real,double precisionのデータ © NEC Corporation 2015 理論性能世界⼀・⽇本⼀ ▌理論性能世界⼀位 天河⼆号 54.9 PFLOPS (パソコンの253,000倍) 電⼒17.8MW National University of Defense Technology 中国 ▌理論性能⽇本⼀位(世界四位) 「京 (K computer)」 11.28 PFLOPS (パソコンの52,000倍) 電⼒12.7MW 理化学研究所 注意 理論性能と実効性能は異なる ランキングはTOP500(http://top500.org/)による 4 © NEC Corporation 2015 (参考)パソコンの理論性能 NEC LAVIE Desk Tower Intel Corei7 (3.4GHz) 4コア 217 GFLOPS(理論性能) コンピュータの速さ ▌⼀回の浮動⼩数点の計算をあなたは何秒でできるか? 1.234567890123*10-12 + 1.098765432109*10-10 = 1.11111111101023*10-10 ▌ある⼈が1秒で1回計算できるとすると60年間計算し続けると 1,893,456,000 (1.8G) 回の計算ができる ▌では,コンピュータでは上記回数を何秒でできるか? パソコンは0.0087 (8.7m) 秒で計算できる 天河2号は0.000000035 (35n) 秒で計算できる ただし,これは理想的な話 ▌コンピュータは⼈より圧倒的に速い 5 © NEC Corporation 2015 ▌スーパーコンピュータとは ▌何に利⽤されているか ▌スーパーコンピューの構成 ▌ベクトル処理(SIMD) ▌メモリシステムと性能 ▌まとめ 6 © NEC Corporation 2015 シミュレーションの発展 ▌科学技術研究の4つの柱 理 論 実 験 シミュレー ション データ解析 ▌コンピュータシミュレーションの役割拡⼤ 理論と実験の限界 • ⾃然現象は複雑で理論や実験だけ究明できない問題が多い • 実験よりコストが安く,危険性がない 物理法則に従って数値計算を⾏い,理論と実験で究明できない現象を研究 社会インフラに活⽤ 7 © NEC Corporation 2015 シミュレーションの例:地球温暖化 ▌ 1900年を基準とした気温変化 東大気候センター,海洋研究開発機構,国立環境研究所 提供 8 © NEC Corporation 2015 どんな⽅程式を解いているのか ▌連続の式 ( v ) t ▌運動⽅程式 v 1 ( v ) v P F t ▌状態⽅程式 p RT ▌熱エネルギーの式 dH dU dW ▌その他 放射の式,化学反応の式 9 © NEC Corporation 2015 スーパーコンピュータの必要性 ▌地球温暖化シミュレーション 200年間(1900年から2100年)のシミュレーションを実施 解像度: ⼤気 100Km格⼦ ,海洋 全演算数: 8.5×1018 20Km格⼦ (8.5 EFLOPS) ▌1PFLOPSのスーパーコンピュータを利⽤ 実⾏効率 20% (理論性能に対する実際の演算性能) 約12時間で計算できる ▌パソコンの場合(200GFLOPS) 実⾏効率 約70年 2% (実験結果が出る前に地球が温暖化している) • 本当は動作しない.メモリ容量が⾜りない(1.1TB必要) 10 © NEC Corporation 2015 シミュレーションの解像度 ▌シミュレーションは空間,時間の差分計算 温暖化シミュレーションでは⽔平格⼦100Kmを使⽤ 気象庁の台⾵進路予測では⽔平格⼦20Kmを使⽤ ▌⾃然現象は複雑でミクロからマクロな現象までスケールに幅 ミクロとマクロを同時に計算させるには解像度を上げる必要あり ⽔平格⼦300Kmと10Km 11 © NEC Corporation 2015 スパコンによるシミュレーション例 ▌全球⼤気⼤循環モデル ⽔平格⼦10Km 地球シミュレータセンター 提供 12 © NEC Corporation 2015 さらなる⾼速なスーパーコンピュータが必要 ▌気象のシミュレーション ⽔平解像度を100Kmから10Kmにすると10×10=100倍の演算量 • 垂直⽅向はほとんど⼤きくできない(対流圏が20km程度のため) 時間解像度を1/10にする必要がある • 演算量が10倍になる • CFL条件(シミュレーションの安定化条件) 合計10×10×10=1,000倍の演算量になる より⾼速なスーパーコンピュータが求められている 13 © NEC Corporation 2015 ▌スーパーコンピュータとは ▌何に利⽤されているか ▌スーパーコンピュータの構成 ▌ベクトル処理(SIMD) ▌メモリシステムと性能 ▌まとめ 14 © NEC Corporation 2015 スーパーコンピュータの原理 並列処理: 処理速度 = 同時に複数の処理を⾏う 処理量(浮動⼩数点データの演算量) 処理時間 クロック周波数を上げる 消費電⼒,発熱の問題 (Power Wall問題) 15 © NEC Corporation 2015 並列処理のイメージ ▌⽕災の消⽕作業 ⼀⼈でがんばる (逐次処理) 複数⼈でバケツリレー (パイプライン⽅式 並列処理のひとつ) 複数⼈で同時に消化 (並列処理) 16 © NEC Corporation 2015 温暖化の計算を例に ▌地球をいくつかの領域に分割 ▌それぞれの領域を同時に別々に処理する 領域0 演算コア0 領域1 演算コア1 領域2 演算コア2 多数の演算器を ・・ ・ 同時に動かして ターンアランド を短縮させる 17 領域n-1 演算コアn-1 領域n 演算コアn © NEC Corporation 2015 スーパーコンピュータの基本構成 ▌多数のコンピュータからなる ▌⾼速ネットワークで接続 並列処理にはデータ交換が多数発⽣する. コンピュータ0 コンピュータ1 ・・・・・・・・・ 高速ネットワーク スイッチ (高速インターコネクト) 18 © NEC Corporation 2015 コンピュータn コンピュータ内の構成 ▌複数のCPUを持つ場合が多い マルチCPU ▌演算加速機構を持つ場合もある GPU(Graphics Processing Unit)を⾼速演算に利⽤ インテルXeon Phiを搭載 コンピュータ コンピュータ メモリ CPU Phi メモリ CPU GPU メモリ メモリ メモリ CPU CPU メモリ CPU メモリ メモリ 19 CPU © NEC Corporation 2015 CPU内の構成 ▌最近のCPUはマルチコア(チップマルチプロセッサ) LSI1チップにたくさんマイクロプロセッサをのせることができる • そのマイクロプロセッサをコアと呼んでいる • 機能は コア = 以前のCPU ▌GPUやPhiも同様(GPUはストリーミングマルチプロセッサと⾔う) Phi メモリ © NEC Corporation 2015 CPU メモリ メモリ CPU CPU GPU メモリ CPU メモリ メモリ 20 コンピュータ コア スーパーコンピュータの構成 ▌スーパーコンピュータ 高速ネットワーク スイッチ (高速インターコネクト) 多数のコンピュータからなる ⾼速インターコネクト ▌コンピュータの構成 コンピュータ 複数の演算機構からなる ベクトル命令(SIMD命令) 21 CPU CPU CPU CPU Phi Phi Phi Phi メモリ ▌コアの構成 メモリ メモリ メモリ メモリ メモリ メモリ メモリ メモリ 複数のコアからなる メモリ メモリ メモリ メモリ メモリ メモリ メモリ メモリ ▌CPUの構成 コンピュータ CPU GPU コンピュータ コンピュータ コンピュータ CPU GPU Phi CPU CPUGPU GPU CPU GPU CPU メモリ • 演算加速機構を持つ場合もある メモリ メモリ 複数のCPUからなる © NEC Corporation 2015 プログラムの実⾏イメージ ▌⾏列ベクトル積(Fortranプログラム) A(i, j ) b( j ) j 外側のdoループを並列化する • 異なるコア,CPU,ノードに処理を割り当てる !$omp parallel do do i=1,n x(i)=0 do j=1,n x(i)=x(i)+a(i,j)*b(j) enddo enddo !$omp end parallel do 22 © NEC Corporation 2015 コアで実行 並列化 (コア間,CPU間,ノード間) ▌スーパーコンピュータとは ▌何に利⽤されているか ▌スーパーコンピュータの構成 ▌ベクトル処理(SIMD) ▌メモリシステムと性能 ▌まとめ 23 © NEC Corporation 2015 コア内での並列化 ▌コア内部も多くの回路を持ち並列化が⾏われている スーパースカラー マルチスレッド ベクトル処理(SIMD) ▌スーパーコンピュータではベクトル処理が主流になっている 1つの命令で複数のデータを処理する SIMD(Single Instruction stream Multiple Data stream)とも呼ばれる 命令 演算器 ・・・・ 命令 演算器 ベクトルパイプライン データ ・・・・ データ 24 © NEC Corporation 2015 ベクトルパイプラインの例 加算 (A) 結果格納 (R) ・ ・ ベクトルパイプライン Xn Yn Y1 Y2 指数比較 Zi Z1 Z2 ・ ・ = X1 X2 Yi Zn 1 2 3 4 5 6 7 8 9 10 11 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +1 +2 +3 +4 +5 +6 +7 +8 +1 +2 +3 +4 +5 +6 +7 時間 桁合わせ 加算 正規化 結果格納 25 正規化 (N) 結果 データ + 桁合 (S) ・ ・ Xi 指数比較 (C) © NEC Corporation 2015 ベクトル処理 ▌科学技術計算の特⻑ do i =1 , n DOループ(forループ)の塊 z(i) = a + x(i) 配列データに同⼀演算を繰り返す ▌上記を⾼速に処理するのがベクトル処理 end do ベクトル:配列データのこと 1命令で複数の処理を⾏う ▌1命令でいくつ処理できるか(世代で異なるので注意) Intel Xeon(AVX命令) 4組の倍精度計算を⾏う Intel Xeon Phi 8組 GPGPU(Pascal) 64組 京コンピュータ 2組 NEC SXシリーズ 256組 26 © NEC Corporation 2015 ベクトルの動作 ▌Xeonでは1つの命令で4組計算する a * x(1), a * x(2), a * x(3), a * x(4)を同時に計算する a * x(5), a * x(6), a * x(7), a * x(8)を同時に計算する ・・・・・・・・・ do i =1 , n z(i) = a + x(i) ▌SXでは1つの命令で256組 end do a * x(1) , ・・・・・・・・・, a * x(256)を同時に計算する a * x(256) , ・・・・・・・・・, a * x(512)を同時に計算する ・・・・・・・・・ ▌命令数を減らすことができる ▌演算器(パイプライン)を有効に利⽤する 27 © NEC Corporation 2015 ベクトル処理を使うには ▌ベクトル処理はコンパイラが⾃動的に使⽤(オプションや指⽰⾏が 必要な場合もある) GPGPUはCUDAを利⽤するのが⼀般的,最近OpenACCの利⽤も⾏われて いる ▌ベクトル処理を利⽤するためには,いくつか制約がある doループにする 配列を利⽤する データの依存関係がない ○ 28 © NEC Corporation 2015 do i = 1,100 a(i) = 1.0 b(i) = a(i) end do × do i = 1,100 a(i) = 1.0 b(i) = a(i+1) end do データの依存関係がない例 ▌ベクトル命令の演算順序に注意 do i = 1,100 a(i) = 1.0 b(i) = a(i) end do 逐次処理 29 ベクトル(Xeon) a(1) = 1.0 a(1) = 1.0 b(1) = a(1) = 1.0 a(2) = 1.0 b(2) = a(2) = 1.0 a(3) = 1.0 a(2) = 1.0 b(1) = a(1) = 1.0 b(2) = a(2) = 1.0 a(3) = 1.0 © NEC Corporation 2015 データの依存関係がある例 ▌演算結果がことなる do i = 1,100 a(i) = 1.0 b(i) = a(i+1) end do 逐次処理 30 ベクトル(Xeon) a(1) = 1.0 a(1) = 1.0 b(1) = a(2) a(2) = 1.0 b(2) = a(3) a(3) = 1.0 b(3) = a(4) a(4) = 1.0 b(4) = a(5) a(2) = 1.0 b(1) = a(2) = 1.0 b(2) = a(3) a(3) = 1.0 a(4) = 1.0 b(3) = a(4) = 1.0 b(4) = a(5) © NEC Corporation 2015 Xeon(SSE命令)での性能 ▌1命令1組 VS 1命令2組 do i =1 , n nの⼤きさを変えて測定 z(i) = x(i) + s * y(i) end do 性能(GFLOPS) 3 1組 2組 2.5 2 1.5 1 0.5 31 © NEC Corporation 2015 ▌スーパーコンピュータとは ▌何に利⽤されているか ▌スーパーコンピュータの構成 ▌ベクトル処理(SIMD) ▌メモリシステムと性能 ▌まとめ 32 © NEC Corporation 2015 1M 512K 256K 64K 128K ループ長(n) 32K 16K 8K 4K 2K 1K 256 128 32 16 4 1 0 コンピュータの性能はメモリデータ転送能⼒が重要 ▌Memory Wall問題 CPUとメモリの性能差は拡⼤ 100,000 ▌スーパーコンピュータの性能は メモリシステムの性能で決まる Performanc e 10,000 Me mory 1,000 100 メモリバンド幅 10 1 メモリレーテンシー メモリ Proce ssor 1 98 0 19 85 19 90 199 5 2 00 0 2 00 5 ①読み込み CPU ②処理 ③書き戻し 33 © NEC Corporation 2015 データはメモリから転送される ▌計算に必要なデータはメモリから転送される データA,Bを転送 C = A + B メモリ データCを転送 CPU 1演算でメモリから2個×8B,メモリへ1個×8Bを転送が必要 • 1演算あたり24Bのデータが転送される ▌計算の種類によって転送量がかわる データBを転送 C = 3.0 + B メモリ データCを転送 CPU 3.0 1演算でメモリから1個×8B,メモリへ1個×8Bを転送が必要 • 1演算あたり16Bのデータが転送される 34 © NEC Corporation 2015 20 10 メモリバンド幅が演算性能を決める ▌パソコン(NEC LAVIE Desk Tower)のメモリバンド幅 単位時間でのデータ転送能⼒:34GB/s ▌C=A+B:1秒間に何回演算ができるか 演算性能 217G回 34GB/24B = 217GFLOPS メモリバンド幅 34GB/s 1.4G回 ▐ C=3.0+A:1秒間に何回演算ができるか 演算性能 217 GFLOPS メモリバンド幅 34GB/s 217G回 34GB/16B = 2.1G回 ▌CPUは理論性能通りに動作しない CPUはデータが揃うまで空回りしている 35 © NEC Corporation 2015 キャッシュメモリの導⼊ ▌プログラムの局所性 1度使ったデータは再度使われる可能性が⾼い CPU内に⾼速メモリ(キャッシュ)を設ける メモリとのデータ転送を削減できる ▌C=A+BでBがキャッシュにあり,Cをキャッシュに格納する場合 メモリバンド幅 34GB/s 性能が改善される 34GB / 8B = 4.25G回 データAを転送 メモリ キャッシュ B,C CPU ▌メモリからデータを転送する限り,メモリバンド幅が⾼い⽅が良い 36 © NEC Corporation 2015 実機による実験 ▌NEC SX-7 のメモリバンド幅を変えて性能を測定 演算性能 8.8GFLOPS メモリバンド幅 35.3GB/s,17.7GB/s,8.83GB/s 実⾏効率を測定 • 理論演算性能の何割がでているか? 37 © NEC Corporation 2015 B/F値 ▌コンピュータの性能はCPU性能とメモリ性能のバランスで決まる ▌メモリバンド幅と演算性能の⽐を取ってみる (B/F値) B / F 値 メモリバンド幅 B/s 演算性能 FLOPS ▌前記実験では 演算性能 8.8GFLOP メモリバンド幅 35.3GB/s 4 B/F 17.7GB/s 2 8.83GB/s 1 ▌B/Fは演算性能に対するメモリからのデータ供給能⼒をあらわす指 標になっている 38 © NEC Corporation 2015 実機による実験 ▌B/Fが異なるコンピュータで性能を調査 プロセッサ メモリバンド幅 理論性能 名称 (GB/s) (Gflops) Xeon X5460 10.67 50.56 0.2 Xeon X5550 25.6 42.56 0.6 64 16 4 NEC SX-8 実⾏性能の⽐較 39 B/F 実⾏効率の⽐較 © NEC Corporation 2015 最近のCPUのB/F プロセッサ メモリバンド幅 理論性能 名称 (GB/s) (Gflops) 68 240 0.28 Xeon Phi 352 1065 0.33 GPGPU(Pascal) 720 4800 0.15 64 128 0.50 256 256 1.00 Xeon E5-2680v3 京(SPARC64TM VIIIfx) SX-ACE ▌演算性能が⾼くなるとB/Fが低くなる傾向がある ▌効率良く演算機が動作しなくなってくる ▌キャッシュやオンチップメモリを活⽤する 40 © NEC Corporation 2015 B/F ▌スーパーコンピュータとは ▌何に利⽤されているか ▌スーパーコンピュータの構成 ▌ベクトル処理(SIMD) ▌メモリシステムと性能 ▌まとめ 41 © NEC Corporation 2015 まとめ ▌スーパーコンピュータは その時代の⾼速な科学技術計算⽤コンピュータ 科学技術シミュレーションを⽀えている • より⾼速なスーパーコンピュータが求められている 多くの演算器と⾼速ネットワークから構成されている • 並列処理で速くなっている コアを⾼速に利⽤するためにはベクトル処理が必要 メモリからのデータ供給能⼒(B/F値)で性能がきまる • CPUだけが速くてもだめ • Memory Wall問題を超えるコンピュータが必要 42 © NEC Corporation 2015
© Copyright 2024 ExpyDoc