540 likes | 602 Views
スーパーコンピュータ の ネットワーク. 情報ネットワーク特論. 今日の講義内容. スーパーコンピュータ開発の歴史 スーパーコンピュータのネットワーク 今後 のスーパーコンピュータ開発. スーパーコンピュータとは?. " スーパー " な計算機 = その時点で、一般的な計算機の性能をはるかに 超える性能を持つ計算機 スーパーコンピュータの用途 = 主に科学技術計算 例えば 分子構造のシミュレーションによる創薬 構造シミュレーション等による車の設計 熱力学 シミュレーション等による気候予測. スーパーコンピュータの開発競争. 「計算機の性能」とは?.
E N D
スーパーコンピュータのネットワーク 情報ネットワーク特論
今日の講義内容 スーパーコンピュータ開発の歴史 スーパーコンピュータのネットワーク 今後のスーパーコンピュータ開発
スーパーコンピュータとは? • "スーパー"な計算機 = その時点で、一般的な計算機の性能をはるかに 超える性能を持つ計算機 • スーパーコンピュータの用途 = 主に科学技術計算 • 例えば • 分子構造のシミュレーションによる創薬 • 構造シミュレーション等による車の設計 • 熱力学シミュレーション等による気候予測 ...
スーパーコンピュータの開発競争 「計算機の性能」とは? • より高い性能のスーパーコンピュータを持つ • 計算技術の向上 • 汎用の計算機への応用 • ソフトウェア効率化の推進 • 経済的な競争力の向上: • 創薬 • 新素材の開発 • 気候予測 • 製品設計 etc.
計算機の理論的な演算性能と実際の性能 • FLOPS=プロセッサの周波数 x 同時実行可能演算数 x プロセッサ数 • 例) 4演算同時実行可能な 1GHzのプロセッサ 1,000個によるシステム ⇒ 1GHz x 4 x 1,000 = 4,000GFLOPS = 4TFLOPS • G: Giga • T: Tera(=1,000G), • P: Peta(=1,000T), • E: Exa(=1,000P) • 理論的な演算性能: 1秒間に実行できる演算の数 = OPS (Operations Per Second) 特に実数計算(Floating Operation)の性能の場合FLOPS (FLoating Operations Per Second) • 実際の性能: プログラムを実行する際の性能
理論演算性能と実際の性能の違い 理論演算性能による比較は、ほとんど意味が無い • 理論演算性能: 全ての演算器が休むことなく働き続けることが前提 • 実際のプログラムの性能:様々な要因で演算器が休止 • メモリからのデータ到着待ち • 他のプロセスの計算完了待ち • プロセス間の負荷の不均衡 • 通信の完了待ち • ファイル入出力待ち
実際のプログラムの性能? どのプログラムを使って比較するか? • プログラムによって傾向が変わる。 例えば。。。 • 仕事を複数のプロセッサに分担させるのが難しい計算: とても高速なプロセッサ 1個による計算機が有利 • たくさんのプロセッサに分担させることができる計算:低速なプロセッサを多数搭載した計算機が有利
Top500 List スーパーコンピュータ開発競争に利用 • 最も有名な、スーパーコンピュータ性能比較リスト http://www.top500.org • 稼働中のスーパーコンピュータの上位500台を掲載。 • LINPACKベンチマークプログラムの性能で順位付け • 連立一次方程式の解を求める計算 • 比較的、理論性能に近い性能が出る • キャッシュヒット率が高い、通信が少ない、負荷が均等 • 他の計算機との比較や傾向の分析などが容易 • 1993年からほとんど同じ条件で更新を継続。 • 世界中のほぼ全てのスーパーコンピュータが登録。
スーパーコンピュータの例) 地球シミュレータスーパーコンピュータの例) 地球シミュレータ • 稼動開始時点(2002年3月)時点で,世界最高速のスーパーコンピュータ • 日本の計算機メーカ(主に NEC)が開発 • 開発目標: 10km四方(赤道近辺)の精度で地球全体の大気循環をシミュレート • それまでは 100km四方 • 例えば台風の発生過程:100km四方だと台風が台風に見えない
地球シミュレータの成果 • 台風進路予測 • 5.5km四方で地球全体をシミュレート(日本近辺は 2.78km四方) • 海底探査船「ちきゅう」に, 台風進路の予測結果を到達予定の3日前に提供 • 台風発生予測 • 過去10年間についてシミュレーションによる台風発生回数が実際の値とほぼ一致 • CO2の増加に伴う温暖化の予測 • 2040年には年間の真夏日日数が約20日増加,平均気温が約2度上昇.
Top500における地球シミュレータの性能 USAの開発意欲に火を付けた • 35 TFLOPS (Tera Floating Operations Per Second) = 1秒あたりの 35兆回の実数計算 • 断トツの 1位 • 2位から10位までの計算機の演算性能の合計を上回る性能(2002年6月時点) • “Computenik”= 「計算機分野でのスプートニクだ!」 (in New York Times) • by JackDongarra教授 テネシー大学教授、Top500サイトの創始者
USAの逆襲(2004年) • IBM Blue Gene/L (2004年11月~)http://www.research.ibm.com/bluegene/ • 70TFLOPS • ちなみに地球シミュレータ(35TFLOPS)は3位に後退 • 「まだ完成形ではない」:2005年前半に、さらに4倍高速化する計画 日本のすべてのスーパーコンピュータを かき集めても追いつかない規模になる
USAの逆襲(2005年) • IBM Blue Gene/L (2005年11月) • 理論最高性能 280TFLOPS • 世界で初めて 100TFLOPSを越えた計算機 • 地球シミュレータは7位に後退 • 本当に日本のすべてのスーパーコンピュータをかき集めても追いつかない規模に • 世界500位に入った計算機の性能の国別合計:1位 USA 68.3% 2位 Japan 5.68 % 3位 UK 5.41% 4位 Germany3.10% 5位 China 2.59%以下、 Australia, Switzerland, Netherland, Korea, ...
2010年までの経緯 • ~2010年6月 USAの時代 • 2004~2007 IBM BlueGene/L 478 TFLOPS • 2008 IBM RoadRunner 1.1 PFLOPS • 2009~2010.6 Cray Jaguar 1.8 PFLOPS • 2010年11月 中国の台頭 • 2010.11 中国 Tianhe-1A 2.6 PFLOPS • 日本勢は東京工業大学のTSUBAME2.0が1.2 PFLOPSで4位
2011年6月 スーパーコンピュータ ”京”の登場 • 1位 K computer(Japan) 8.2 PFLOPS2位 Tianhe-1A (China) 2.6 PFLOPS3位 Jaguar(USA) 1.8 PFLOPS • 国別合計: 1位 USA 42.87%(25.3 PFLOPS) 2位 Japan 18.98% (11.2 PFLOPS) 3位 China 12.11% ( 7.1 PFLOPS) 4位 Germany 5.50% ( 3.2 PFLOPS) 5位 France 5.40% ( 3.2 PFLOPS) • 以下,UK, Russia, Korea, Canada, ...
最新情報: 2013年6月 来週、更新予定 • 1位 Tianhe-2(China) 33.9 PFLOPS2位 Titan (USA) 17.6 PFLOPS3位 Sequoia (USA) 16.3 PFLOPS4位 K Computer(Japan) 10.5 PFLOPS • 国別合計: 1位 USA 47.8%(106.8 PFLOPS) 2位 China 21.2% ( 47.5 PFLOPS) 3位 Japan 9.1% ( 20.3 PFLOPS) 4位 Germany 5.1% ( 11.4PFLOPS) 5位 France 4.0% ( 8.9 PFLOPS) • 以下,UK, India, Italy, Australia, Russia, Canada, ...
Tianhe-2 (天河2) 出典: http://eng.mod.gov.cn/Database/Academies/2013-06/18/content_4455818_2.htm • 構成:(24プロセッサコア + アクセラレータ) x 約1万6千ノード • CPU: Intel Xeon E5-2692 2.2GHz x 12cores x 2chips • アクセラレータ: Intel Xeon Phi 31S1P • 理論演算性能に対する実性能比: 0.617(= 33.9PF / 54.9PF) • 電力あたり性能:1.90GF / W • ネットワーク: Fat Tree • 名称: TH Express-2 出典: http://www.china.org.cn/top10/2013-06/21/content_29187340_10.htm
Titan 出典: http://www.olcf.ornl.gov/titan/ • 製品名: Cray XK7 • 構成:(16プロセッサコア + GPU) x 約1万8千ノード • CPU: AMD Opteron 6274 2.2GHz • GPU: NVIDIA Tesla K20X • 理論演算性能に対する実性能比: 0.65(= 17.6PF / 27.1PF) • 電力あたり性能:2.14GF / W • ネットワーク:3次元トーラス構造 • 名称: GEMINI
Sequoia 出典: https://www.llnl.gov/news/aroundthelab/2012/Jun/ATL-061812_sequoia.html • 製品名: IBM BlueGene/Q • Top500 List の 2位,4位,5位,9位 • 構成: 16プロセッサコア x 約10万ノード • CPU: IBM PowerBQC 1.6GHz • 理論演算性能に対する実性能比:0.81(= 16.3 PF / 20.1 PF ) • 電力あたり性能: 2.1GFLOPS / W • ネットワーク:5次元トーラス構造
K Computer (京) • 理化学研究所と富士通が開発http://www.aics.riken.jp • 互換機: Fujitsu PRIMEHPC FX10 • 九大情報基盤研究開発センターで利用可能 • 構成:8プロセッサコア x 約8万ノード • CPU: Fujitsu SPARC64 VIIIfx 2.0GHz • 理論演算性能に対する実性能比:0.93 (=10.5PF / 11.3PF) • 消費電力: 0.83GFLOPS / W • ネットワーク: 6次元トーラス/メッシュ構造 • 名称: Tofuインターコネクト 出典: http://www.nsc.riken.jp/K/diary.html SPARC64TMVIIIfxチップ Tofu インターコネクトネットワーク 出典: http://www.ssken.gr.jp/MAINSITE/download/newsletter/2011/20110825-sci-1/lecture-5/ppt.pdf
計算機の高速化手段 電力、熱の限界 命令レベル並列性の限界 • クロック周波数の向上 • 命令レベル並列処理の向上 • アクセラレータの利用 • プロセッサコア数の増加 • スレッド並列 • プロセス並列
アクセラレータ • 基本的な考え方: 低性能、低機能だが、電力効率の高いコアを 多数並べて並列計算する • Top500 に登場する主なアクセラレータ: • NVIDIA Tesla • Intel Xeon Phi
NVIDIA Tesla • GPGPU (General Purpose Graphic Processing Unit) • グラフィック用の GPUを汎用計算にも使用する • 高い電力効率 • メモリ量を制限して高速メモリアクセスを実現 • 1〜6GB程度 • 演算の種類を制限して回路を単純化 • 主に加算,乗算の性能重視 • 複雑な処理は制限
GPGPUの問題 性能を活かすためには高度なチューニングが必要 • メモリからアクセラレータのメモリへのデータ転送が遅い • Tesla C2015で 515GFLOPSに対して 8GB/sec • アクセラレータ上のメモリへのアクセスは 144GB/sec • NECのベクトルプロセッサは 100GFLOPSに対して 256GB/sec • 京のスカラープロセッサは 128GFLOPSに対して 64GB/sec • 性能に対するメモリ量が少ない • Tesla C2015で 515GFLOPS に対して 6GB • NECのベクトルプロセッサは 100GFLOPS に対して 64GB • 京のスカラープロセッサは 128GFLOPSに対して 16GB • プログラムが複雑 • ホストPC側とアクセラレータ側双方のプログラム • データの移動も全てプログラムに明記
Intel Xeon Phi 高密度実装が可能 (Intel Xeon Phi 5110Pで 60コア) 既存のプログラムが動く データのコピーが不要 それでも、性能を活かすためには高度なチューニングが必要 • 古い Pentiumのアーキテクチャ+ベクトル演算器を最新の回路技術で実装 • ベクトル演算器: 1度に8個の実数計算を実行可能 • 高い電力効率 • 小さい実装面積 • 最新CPUとアーキテクチャ互換 • 将来は CPUとメモリを共有
もう一つの高速化: プロセッサを増やす CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア アクセラレータ メインメモリ メインメモリ メインメモリ メインメモリ アクセラレー タ用メモリ ネットワーク ネットワーク • 現在のスーパーコンピュータ = 多数(数千~数万)の"計算ノード"をネットワークで接続した「並列計算機」 • アクセラレータは計算ノード内に搭載される
並列計算機 並列処理 普通の処理 仕事1 仕事1 仕事2 仕事3 仕事2 仕事3 うまく分担できればプロセッサの数に応じて性能向上 • 仕事を複数のプロセッサに分担させて高速化 = 並列処理 • 並列処理をするには?⇒ 並列プログラムが必要
並列プログラム 普通のプログラム(=並列じゃないプログラム)とどう違う? • 並列処理に必要な事項を含むプログラム • 各CPUコアへの仕事の分担のさせ方、 • 相互の情報交換、 • CPUコアの間の同期 等
普通のプログラムの例: 2つのベクトルの和を計算普通のプログラムの例: 2つのベクトルの和を計算 ... 0 99 A = = = = = = = = = = = = = = = = = = = = B + + + + + + + + + + + + + + + + + + + + C プログラム double A[100], B[100], C[100]; ... for (i = 0; i < 100; i++) A[i] = B[i] + C[i]; 0番目から99番目までの要素を順に計算
並列プログラムの例: 複数の「スレッド」で並列処理並列プログラムの例: 複数の「スレッド」で並列処理 スレッド0 スレッド1 スレッド2 スレッド3 ... ... ... ... 全スレッドが同じ配列を共有 25 49 50 74 75 99 0 24 A = = = = = = = = = = = = = = = = = = = = B + + + + + + + + + + + + + + + + + + + + C double A[100],B[100],C[100]; ... for (i=0; i<25; i++) A[i] = B[i] + C[i]; double A[100],B[100],C[100]; ... for (i=25; i<50; i++) A[i] = B[i] + C[i]; double A[100],B[100],C[100]; ... for (i=50; i<75; i++) A[i] = B[i] + C[i]; double A[100],B[100],C[100]; ... for (i=75; i<100; i++) A[i] = B[i] + C[i]; スレッド0 スレッド1 スレッド2 スレッド: 同じ記憶空間を共有しながら進行する流れ スレッド3
スレッドによる並列化の利点と欠点 • 利点: 簡単に並列化 • コンパイラにお任せ、もしくは若干の変更だけ • 欠点: 基本的に「共有メモリ型並列計算機」向け ⇒ 「分散メモリ型並列計算機」では使えない = 大規模な計算機で利用できない
共有メモリ型並列計算機 CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア メインメモリ CPUコアからメインメモリへの経路が共有 ⇒ 規模(=CPUコア数)に限界 • 1つのメインメモリを複数のCPUコアで共有 • マルチCPUコアのPC等
分散メモリ型並列計算機 CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア CPUコア メインメモリ メインメモリ メインメモリ メインメモリ ネットワーク 規模に応じて経路の数も増加⇒ 大規模化が比較的容易 複数の独立したメインメモリで構成
プロセス並列プログラム 分散メモリ型並列計算機における並列処理に必要 プロセス並列 独立した記憶空間をもつ「プロセス」を 単位とした並列処理
「プロセス並列」プログラムの特徴 (1) 各プロセスが別の配列を利用 プロセス0 プロセス1 プロセス2 プロセス3 ... ... ... ... 0 24 0 24 0 24 0 24 A A A A = = = = = = = = = = = = = = = = = = = = B B B B + + + + + + + + + + + + + + + + + + + + C C C C double A[25],B[25],C[25]; ... for (i=0;i<25;i++) A[i] = B[i] + C[i]; double A[25],B[25],C[25]; ... for (i=0;i<25;i++) A[i] = B[i] + C[i]; double A[25],B[25],C[25]; ... for (i=0;i<25;i++) A[i] = B[i] + C[i]; double A[25],B[25],C[25]; ... for (i=0;i<25;i++) A[i] = B[i] + C[i]; プロセス0 プロセス1 プロセス2 処理だけでなくデータも分割 プロセス3
「プロセス並列」プログラムの特徴 (2) X プロセス0 プロセス1 プロセス2 プロセス3 A A A A 受信 送信 ネットワーク 他のプロセスのデータは直接参照できない 必要に応じてプロセス間通信
MPI (Message Passing Interface) MPI_Comm_rank(MPI_COMM_WORLD, &myid); ... if (myid == 0) MPI_Send(&(a[5]), 1, MPI_DOUBLE, 1, 0, MPI_COMM_WORLD); if (myid == 1) MPI_Recv(&(a[3]), 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &status); 自分のプロセス番号を取得 プロセス1に送信 プロセス0から受信 並列プログラム用に用意された通信関数群の定義 例) プロセス0からプロセス1にデータを転送
並列化手段と並列計算機 MPIプログラムは、作るのに苦労するがどこでも実行できる 利用可能な並列化手段
並列計算機の利点と欠点 スーパーコンピュータの構成は、 今のところ分散メモリ型並列計算機 • 利点: 理論的な性能は、比較的容易に向上 • 極端な話,単純に数を増やせば向上する • 欠点: 実質的な性能向上には工夫が必要 • 並列プログラムの作成 • 計算の分担 • データの分割 • 計算結果の通信 • 並列処理のための時間増加 • 他のCPUとの同期待ちや通信
スーパーコンピュータのネットワークへの要求スーパーコンピュータのネットワークへの要求 経路長い 経路短い 帯域幅細い 帯域幅太い 競合 競合 経路数多い 経路数少ない topology (= ネットワークの形状)が重要 • 通信性能 • 遅延時間を短く ≒ なるべく短い経路で接続 • 経路の帯域幅を大きく • 経路の本数を多く • 費用 • なるべく安く • 経路数やスイッチ数、経路の帯域幅に依存
Bus / Ring Topology • 一本のBusを全ノードで共有 • 両端をつなげたものが Ring • 長所: • 構成が簡単なので 1本あたりの帯域幅を太く出来る • 経路とスイッチの数はノード数と同じなので費用は低い • 短所: • 同時に利用可能な通信経路は 1本だけ • 双方向の場合、2本 • プロセッサ内部のコア間ネットワーク(8コア)のような小規模なネットワークで利用
Full Direct Connection • 全ノード間で、一対一に接続 • 長所: • 遅延時間(≒ 通信距離)最小 • 短所: • 高価 • ノード数の2乗に応じた経路数 • 各ノードでノード数分の接続が可能な大規模スイッチ • 小規模のCPU間ネットワーク(4CPU程度)で利用
Crossbar Switch • 行列上の switchを介して全ノードを接続 • 長所: • 遅延時間(≒通信距離)はほぼ最小 • ノード数に比例した同時通信帯域幅 • 短所: • 高価 • ノード数の2乗に比例した結線数とスイッチ数 • 最大で、地球シミュレータ(640ノード)程度まで利用 • 通常は数十ノード程度まで
Fat Tree • 多段の crossbar switch による木構造で構成 • 長所: • 比較的、遅延時間が低い • 通信距離はスイッチの段数 x 2 • 比較的、同時通信帯域幅が高い • 上位層のスイッチ数と経路数による • 比較的、費用が安価 • 短所: • 数万ノード以上のシステムでは、まだ高価 • 大規模なシステムでは上位層の経路数を削減 • 通常、数千ノード規模まで • Tianhe-2は特別
多次元メッシュ/トーラス • 多次元の格子状にノードを配置し、隣接ノード間を直接接続 • 両端を接続したものがトーラス • 長所: • 費用が安価 • ノード数 N に比例した経路数 • リングやバスより格段に高速 • 特に隣接ノードとの通信 • 短所: • 通信パターンによっては、通信衝突が多発 ⇒ プログラムの高度な チューニングが必要 • 主に数万ノード規模で利用
さらなる大規模化に向けて 出典: http://www.unixer.de/publications/img/ibm-percs-network.pdf 出典: http://research.google.com/pubs/archive/35154.pdf • High-Radix switch(ポート数の多いスイッチ)の利用 • 段数小 ⇒ 通信遅延の低減 • 同時通信帯域幅の維持 • 例) • 多段全対全結合 • DragonFly
スーパーコンピュータ開発の今後 • 膨大な開発費: 京の場合,7年間で約1,200億円 • 事業仕分けでの指摘「2番じゃダメなんですか?」 • 次の目標:2018年に 1 Exa FLOPS を達成 (1 Exa = 1,000 Peta) • 予算は???
今後の開発計画 • 富士通: 京の商用機発表http://www.hpcwire.com/hpcwire/2011-11-07/fujitsu_unveils_post-k_supercomputer.html • NEC: SX-9後継のベクトル計算機開発計画を発表http://www.perfect-abs.info/news/Vector-Processor.html • IBM: BlueGene/Q で 100PFLOPSを狙うhttp://www.theregister.co.uk/2011/11/16/ibm_bluegene_q_power_775/ • Cray:Blue Water http://wjbc.com/cray-replaces-ibm-on-u-of-illinois-supercomputer/ • Barcelona Supercomputing Center: Tegra+ GPGPUでスーパーコンピュータ開発http://latimesblogs.latimes.com/technology/2011/11/nvidia-supercomputer.html • 中国: 自国製CPU ShenWey SW1600http://www.hpcwire.com/hpcwire/2011-11-01/china_s_indigenous_supercomputing_strategy_bears_first_fruit.html