スパコンネットワーク

Download Report

Transcript スパコンネットワーク

情報ネットワーク特論
1

スーパーコンピュータ開発の歴史

スーパーコンピュータのネットワーク

今後のスーパーコンピュータ開発
2


"スーパー"な計算機
= その時点で、一般的な計算機の性能をはるかに
超える性能を持つ計算機
スーパーコンピュータの用途
= 主に科学技術計算
◦ 例えば
 分子構造のシミュレーションによる創薬
 構造シミュレーション等による車の設計
 熱力学シミュレーション等による気候予測
...
3

より高い性能のスーパーコンピュータを持つ

計算技術の向上
◦ 汎用の計算機への応用
◦ ソフトウェア効率化の推進

経済的な競争力の向上:
◦
◦
◦
◦
創薬
新素材の開発
気候予測
製品設計
etc.
「計算機の性能」とは?
4

理論的な演算性能: 1秒間に実行できる演算の数
= OPS (Operations Per Second)
特に実数計算(Floating Operation)の性能の場合
FLOPS (FLoating Operations Per Second)
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)

実際の性能: プログラムを実行する際の性能
5

理論演算性能:
全ての演算器が休むことなく働き続けることが前提

実際のプログラムの性能:
様々な要因で演算器が休止
◦ メモリからのデータ到着待ち
◦ 他のプロセスの計算完了待ち
 プロセス間の負荷の不均衡
◦ 通信の完了待ち
◦ ファイル入出力待ち
理論演算性能による比較は、ほとんど意味が無い
6

プログラムによって傾向が変わる。
例えば。。。
◦ 仕事を複数のプロセッサに分担させるのが難しい計算:
とても高速なプロセッサ 1個による計算機が有利
◦ たくさんのプロセッサに分担させることができる計算:
低速なプロセッサを多数搭載した計算機が有利
どのプログラムを使って比較するか?
7

最も有名な、スーパーコンピュータ性能比較リスト
http://www.top500.org
◦ 稼働中のスーパーコンピュータの上位500台を掲載。

LINPACKベンチマークプログラムの性能で順位付け
◦ 連立一次方程式の解を求める計算
◦ 比較的、理論性能に近い性能が出る
 キャッシュヒット率が高い、通信が少ない、負荷が均等

他の計算機との比較や傾向の分析などが容易
◦ 1993年からほとんど同じ条件で更新を継続。
◦ 世界中のほぼ全てのスーパーコンピュータが登録。
スーパーコンピュータ開発競争に利用
8

稼動開始時点(2002年3月)時点で,
世界最高速のスーパーコンピュータ
◦ 日本の計算機メーカ(主に NEC)が開発

開発目標: 10km四方(赤道近辺)の精度で地球
全体の大気循環をシミュレート

それまでは 100km四方
◦ 例えば台風の発生過程:
100km四方だと台風が
台風に見えない
9

台風進路予測

台風発生予測

CO2の増加に伴う温暖化の予測
◦ 5.5km四方で地球全体をシミュレート(日本近辺は
2.78km四方)
◦ 海底探査船「ちきゅう」に, 台風進路の予測結果を到達予定
の3日前に提供
◦ 過去10年間についてシミュレーションによる台風発生回数
が実際の値とほぼ一致
◦ 2040年には年間の真夏日日数が約20日増加,
平均気温が約2度上昇.
10

35 TFLOPS (Tera Floating Operations Per Second)
= 1秒あたりの 35兆回の実数計算
◦ 断トツの 1位
◦ 2位から10位までの計算機の演算性能の合計を上回る性能(2002
年6月時点)

“Computenik”
= 「計算機分野でのスプートニクだ!」
(in New York Times)
◦ by Jack Dongarra教授
テネシー大学教授、Top500サイトの創始者
USAの開発意欲に火を付けた
11

IBM Blue Gene/L (2004年11月~)
http://www.research.ibm.com/bluegene/
◦ 70TFLOPS
 ちなみに地球シミュレータ(35TFLOPS)は3位に後退
◦ 「まだ完成形ではない」:
2005年前半に、さらに4倍高速化する計画
日本のすべてのスーパーコンピュータを
かき集めても追いつかない規模になる
12

IBM Blue Gene/L (2005年11月)
◦ 理論最高性能 280TFLOPS
 世界で初めて 100TFLOPSを越えた計算機
 地球シミュレータは7位に後退
◦ 本当に日本のすべてのスーパーコンピュータを
かき集めても追いつかない規模に
 世界500位に入った計算機の性能の国別合計:
1位 USA
68.3%
2位 Japan
5.68 %
3位 UK
5.41%
4位 Germany
3.10%
5位 China
2.59%
以下、 Australia, Switzerland, Netherland, Korea, ...
13

~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位
14


1位 K computer(Japan)
2位 Tianhe-1A (China)
3位 Jaguar(USA)
国別合計:
1位
2位
3位
4位
5位
USA
Japan
China
Germany
France
8.2 PFLOPS
2.6 PFLOPS
1.8 PFLOPS
42.87%
18.98%
12.11%
5.50%
5.40%
(25.3
(11.2
( 7.1
( 3.2
( 3.2
◦ 以下,UK, Russia, Korea, Canada, ...
PFLOPS)
PFLOPS)
PFLOPS)
PFLOPS)
PFLOPS)
15
来週、更新予定


1位
2位
3位
4位
Tianhe-2(China)
Titan (USA)
Sequoia (USA)
K Computer(Japan)
33.9 PFLOPS
17.6 PFLOPS
16.3 PFLOPS
10.5 PFLOPS
国別合計:
1位
2位
3位
4位
5位
USA
47.8% (106.8 PFLOPS)
China
21.2% ( 47.5 PFLOPS)
Japan
9.1% ( 20.3 PFLOPS)
Germany
5.1% ( 11.4PFLOPS)
France 4.0% ( 8.9 PFLOPS)
◦ 以下,UK, India, Italy, Australia, Russia, Canada, ...
16

構成:
(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://eng.mod.gov.cn/Database/Academies/2013-06/18/content_4455818_2.htm
出典: http://www.china.org.cn/top10/2013-06/21/content_29187340_10.htm
17


製品名: 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
出典: http://www.olcf.ornl.gov/titan/
18


製品名: 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次元トーラス構造
出典: https://www.llnl.gov/news/aroundthelab/2012/Jun/ATL-061812_sequoia.html
19

理化学研究所と富士通が開発
http://www.aics.riken.jp
 互換機: Fujitsu PRIMEHPC FX10
 九大情報基盤研究開発センターで利用可能

構成:
8プロセッサコア x 約8万ノード
出典: http://www.nsc.riken.jp/K/diary.html
 CPU: Fujitsu SPARC64 VIIIfx 2.0GHz

理論演算性能に対する実性能比:
0.93 (=10.5PF / 11.3PF)

消費電力:
0.83GFLOPS / W

ネットワーク:
6次元トーラス/メッシュ構造
SPARC64TM VIIIfxチップ
 名称: Tofuインターコネクト
Tofu インターコネクトネットワーク
出典: http://www.ssken.gr.jp/MAINSITE/download/newsletter/2011/20110825-sci-1/lecture-5/ppt.pdf
20
天河2
総CPUコア数
384,000
Titan
Sequoia
299,008 1,572,864
京
地球シミュ
レータ
705,024
5,120
16,000
18,688
98,304
88,128
640
Xeon Phi
Tesla
No
No
No
理論性能
54.9 PF
27.1 PF
20.1 PF
11.3 PF
0.041 PF
実性能
33.9 PF
17.6 PF
16.3 PF
10.5 PF
0.036 PF
0.61
0.64
0.81
0.93
0.88
17.8MW
8.2MW
7.9MW
12.7MW
3.2 MW
1.9 GF/W
2.1 GF/W
2.1 GF/W 0.83GF/W
0.01GF/W
ノード数
アクセラレータ
実性能/理論
電力
実性能/電力
21

クロック周波数の向上
命令レベル並列処理の向上

アクセラレータの利用

プロセッサコア数の増加

電力、熱の限界
命令レベル並列性の限界
◦ スレッド並列
◦ プロセス並列
22


基本的な考え方:
低性能、低機能だが、電力効率の高いコアを
多数並べて並列計算する
Top500 に登場する主なアクセラレータ:
◦ NVIDIA Tesla
◦ Intel Xeon Phi
23

GPGPU (General Purpose Graphic
Processing Unit)
◦ グラフィック用の GPU を汎用計算にも使用する

高い電力効率
◦ メモリ量を制限して高速メモリアクセスを実現
 1〜6GB程度
◦ 演算の種類を制限して回路を単純化
 主に加算,乗算の性能重視
 複雑な処理は制限
24

メモリからアクセラレータのメモリへのデータ転送が遅い
◦ Tesla C2015で
515GFLOPSに対して
8GB/sec
 アクセラレータ上のメモリへのアクセスは 144GB/sec
◦ NECのベクトルプロセッサは
◦ 京のスカラープロセッサは

100GFLOPSに対して 256GB/sec
128GFLOPSに対して 64GB/sec
性能に対するメモリ量が少ない
◦ Tesla C2015で
515GFLOPS に対して 6GB
◦ NECのベクトルプロセッサは 100GFLOPS に対して 64GB
◦ 京のスカラープロセッサは
128GFLOPSに対して 16GB

プログラムが複雑
◦ ホストPC側とアクセラレータ側双方のプログラム
◦ データの移動も全てプログラムに明記
性能を活かすためには高度なチューニングが必要
25

古い Pentium のアーキテクチャ+ベクトル演算器
を最新の回路技術で実装
◦ ベクトル演算器: 1度に8個の実数計算を実行可能

高い電力効率
小さい実装面積

最新CPUとアーキテクチャ互換


高密度実装が可能
(Intel Xeon Phi 5110Pで 60コア)
将来は CPUとメモリを共有
既存のプログラムが動く
データのコピーが不要
それでも、性能を活かすためには
高度なチューニングが必要
26
NVIDIA Tesla K20X
Intel Xeon Phi 5110P
Intel Xeon E5 -2687
4.0TF
単精度
実数演算性能
2.0TF
0.33TF
1.3TF
倍精度
実数演算性能
1.0TF
0.33TF
メモリ容量
6GB
8GB
16~128GB
消費電力
235W
225W
150W
27

現在のスーパーコンピュータ
= 多数(数千~数万)の"計算ノード"をネットワークで
接続した「並列計算機」
◦ アクセラレータは計算ノード内に搭載される
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU アクセラ
コア レータ
メイン
メモリ
アクセラレー
タ用メモリ
ネットワーク
ネットワーク
28

仕事を複数のプロセッサに分担させて高速化
= 並列処理
普通の処理
仕事1
並列処理
仕事1
仕事2
仕事3
仕事2
仕事3
うまく分担できればプロセッサの数に応じて性能向上

並列処理をするには?
⇒ 並列プログラムが必要
29

並列処理に必要な事項を含むプログラム
◦ 各CPUコアへの仕事の分担のさせ方、
◦ 相互の情報交換、
◦ CPUコアの間の同期
等
普通のプログラム
(=並列じゃないプログラム)とどう違う?
30

0番目から99番目までの要素を順に計算
0
...
99
A
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
C
プログラム
double A[100], B[100], C[100];
...
for (i = 0; i < 100; i++)
A[i] = B[i] + C[i];
31

スレッド:
同じ記憶空間を共有しながら進行する流れ
スレッド0
0
A
...
スレッド1
24 25
...
スレッド2
49 50
...
スレッド3
74 75
...
99
全スレッドが
同じ配列を
共有
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
C
double A[100],B[100],C[100];
double A[100],B[100],C[100];
...
double A[100],B[100],C[100];
...
double A[100],B[100],C[100];
for (i=0; i<25; i++)
...
(i=25; i<50; i++)
...
A[i] = B[i] + for
C[i];
for
(i=50;
i<75;
i++)
A[i] = B[i] + C[i];
for (i=75; i<100; i++)
A[i]
=
B[i]
+
C[i];
スレッド0
A[i] = B[i] + C[i];
スレッド1
スレッド2
スレッド3
32

利点: 簡単に並列化
◦ コンパイラにお任せ、もしくは若干の変更だけ

欠点: 基本的に「共有メモリ型並列計算機」向け
⇒ 「分散メモリ型並列計算機」では使えない
= 大規模な計算機で利用できない
33

1つのメインメモリを複数のCPUコアで共有
◦ マルチCPUコアのPC等
CPU
コア
CPU
コア
CPU
コア
CPU
コア
CPU
コア
CPU
コア
メインメモリ
CPUコアからメインメモリへの経路が共有
⇒ 規模(=CPUコア数)に限界
34

複数の独立したメインメモリで構成
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
ネットワーク
規模に応じて経路の数も増加
⇒ 大規模化が比較的容易
35

分散メモリ型並列計算機における並列処理に必要

プロセス並列
独立した記憶空間をもつ「プロセス」を
単位とした並列処理
36

処理だけでなくデータも分割
プロセス0
A
0
...
プロセス1
24
A
0
...
プロセス2
24
A
24
B
A
...
24
+
+
+
+
+
C
0
B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
C
...
=
=
=
=
=
B
0
プロセス3
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
B
C
各プロセスが
別の配列を
利用
C
double A[25],B[25],C[25];
double A[25],B[25],C[25];
...
...
for (i=0;i<25;i++)
double A[25],B[25],C[25];
double A[25],B[25],C[25];
(i=0;i<25;i++)...
A[i] = B[i] +for
C[i];
...
A[i] = B[i] + for
C[i];
(i=0;i<25;i++)
プロセス0
(i=0;i<25;i++)
A[i] = B[i] +for
C[i];
プロセス1
A[i] = B[i] + C[i];
プロセス2
プロセス3
37

他のプロセスのデータは直接参照できない

必要に応じてプロセス間通信
プロセス0
A
受信
プロセス1
A
プロセス2
A
プロセス3
A
送信
ネットワーク
38

並列プログラム用に用意された通信関数群の定義

例) プロセス0からプロセス1にデータを転送
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から受信
39

利用可能な並列化手段
共有メモリ型 分散メモリ型
自動並列化、
OpenMP
MPI
○
×
○
○
MPIプログラムは、
作るのに苦労するがどこでも実行できる
40

利点: 理論的な性能は、比較的容易に向上
◦ 極端な話,単純に数を増やせば向上する

欠点: 実質的な性能向上には工夫が必要
◦ 並列プログラムの作成
 計算の分担
 データの分割
 計算結果の通信
◦ 並列処理のための時間増加
 他のCPUとの同期待ちや通信
スーパーコンピュータの構成は、
今のところ分散メモリ型並列計算機
41

通信性能
◦ 遅延時間を短く
≒ なるべく短い経路で接続
経路長い
経路短い
◦ 経路の帯域幅を大きく
◦ 経路の本数を多く

費用
帯域幅細い
帯域幅太い
競合
競合
経路数少ない
経路数多い
◦ なるべく安く
 経路数やスイッチ数、経路の帯域幅に依存
topology (= ネットワークの形状)が重要
42

一本の Busを全ノードで共有

長所:

短所:
 両端をつなげたものが Ring
 構成が簡単なので 1本あたりの帯域幅を太く出来る
 経路とスイッチの数はノード数と同じなので費用は低い
 同時に利用可能な通信経路は 1本だけ
 双方向の場合、2本

プロセッサ内部のコア間ネットワーク(8コア)のような
小規模なネットワークで利用
43


全ノード間で、一対一に接続
長所:
◦ 遅延時間(≒ 通信距離)最小

短所:
◦ 高価
 ノード数の2乗に応じた
経路数
 各ノードでノード数分の
接続が可能な大規模スイッチ

小規模のCPU間ネットワーク
(4CPU程度)で利用
44


行列上の switchを介して全ノードを接続
長所:
◦ 遅延時間(≒通信距離)はほぼ最小
◦ ノード数に比例した同時通信帯域幅

短所:
◦ 高価
 ノード数の2乗に比例した
結線数とスイッチ数

最大で、地球シミュレータ
(640ノード)程度まで利用
◦ 通常は数十ノード程度まで
45


多段の crossbar switch による木構造で構成
長所:
◦ 比較的、遅延時間が低い
 通信距離はスイッチの段数 x 2
◦ 比較的、同時通信帯域幅が高い
 上位層のスイッチ数と経路数による
◦ 比較的、費用が安価

短所:
◦ 数万ノード以上のシステムでは、まだ高価
 大規模なシステムでは上位層の経路数を削減

通常、数千ノード規模まで
◦ Tianhe-2は特別
46

多次元の格子状にノードを配置し、隣接ノード間を直接接続
◦ 両端を接続したものがトーラス

長所:
◦ 費用が安価
 ノード数 N に比例した経路数
◦ リングやバスより格段に高速
 特に隣接ノードとの通信

短所:
◦ 通信パターンによっては、
通信衝突が多発
⇒ プログラムの高度な
チューニングが必要

主に数万ノード規模で利用
47

High-Radix switch(ポート数の多いスイッチ)の利用
◦ 段数小 ⇒ 通信遅延の低減
◦ 同時通信帯域幅の維持
◦ 例)
 多段全対全結合
出典: http://www.unixer.de/publications/img/ibm-percs-network.pdf
 DragonFly
出典: http://research.google.com/pubs/archive/35154.pdf
48

膨大な開発費:
京の場合,7年間で約1,200億円
◦ 事業仕分けでの指摘
「2番じゃダメなんですか?」

次の目標:
2018年に 1 Exa FLOPS を達成
(1 Exa = 1,000 Peta)
◦ 予算は???
49






富士通: 京の商用機発表
http://www.hpcwire.com/hpcwire/2011-1107/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_po
wer_775/
Cray: Blue Water
http://wjbc.com/cray-replaces-ibm-on-u-of-illinoissupercomputer/
Barcelona Supercomputing Center:
Tegra + GPGPUでスーパーコンピュータ開発
http://latimesblogs.latimes.com/technology/2011/11/nvidiasupercomputer.html
中国: 自国製CPU ShenWey SW1600
http://www.hpcwire.com/hpcwire/2011-1101/china_s_indigenous_supercomputing_strategy_bears_first_fru
it.html
50

PCAST (President’s Council of Advaisors on Science
and Technology) の指摘
http://insidehpc.com/2010/12/22/pcast-report-supercomputing-arms-race-may-be-the-wrongpath-forward/
"an arms race that is very expensive and may not be
a good use of funds."

TOP500創設者が LINPACKベンチマークの限界を指摘
http://www.top500.org/blog/top500-founder-erich-strohmaier-on-the-lists-evolution/
"It is expected to debut this November in tandem
with SC13."
"you will need to keep learning, changing and
adapting to the rapidly changing hardware and
software environments of HPC."
ゲームのルールが変わる可能性
51

HPC Challenge
http://icl.cs.utk.edu/hpcc/
◦ 複数の部門でそれぞれ順位づけ
 Linpack, Matrix Multiply, Memory Bandwidth,
Matrix Transpose, Random Access, Fast Fourier Trans,
Communication Bandwidth and Latency
 京は HPC Challengeの 5部門でも 1位

Graph500
http://www.graph500.org
◦ 組み合わせ最適化問題の計算性能比較

Green500
http’//www.green500.org
◦ Top500の性能を消費電力で割った電力対性能比を比較
52

Gordon Bell賞: 実プログラムでの性能競争
◦ 2011年: 京を用いてシリコンナノワイヤをシミュレート
(理化学研究所、筑波大、東大、富士通のチーム)
http://ajw.asahi.com/article/economy/biz_briefs/AJ201111180034
 東工大もTSUBAME2.0を用いた新素材形成のシミュレーション
で特別賞を受賞
http://cloud.watch.impress.co.jp/docs/news/20111118_492092.html
◦ 2012年: 京を用いてダークマターの動きを解析
(筑波大、理化学研究所、東工大のチーム)
http://www.nikkei.com/article/DGXNASGG1600O_W2A111C1000000/?dg=1
53



米国
http://www.exascale.org
ヨーロッパ
http://www.prace-project.eu
日本
http://www.open-supercomputer.org/workshop/purpose.html

予算が問題
http://sankei.jp.msn.com/politics/news/111116/plc11111611240003-n1.htm
54