スーパーコンピュータのネットワーク

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位 Titan(USA)
2位 Sequoia (USA)
3位 K Computer(Japan)
国別合計:
1位
2位
3位
4位
5位
USA
Japan
China
Germany
UK
17.6 PFLOPS
16.3 PFLOPS
10.5 PFLOPS
54.9%
12.0%
7.6%
6.3%
4.5%
(89.0
(19.4
(12.3
(10.1
( 7.3
PFLOPS)
PFLOPS)
PFLOPS)
PFLOPS)
PFLOPS)
◦ 以下,France, Italy, Australia, Russia, Canada, India,
Korea, ...
16

理化学研究所と富士通が開発
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

理論演算性能に対する実性能比:
10.5PF / 11.3PF (=0.93)

消費電力:
0.83GFLOPS / W

ネットワーク:
6次元トーラス/メッシュ構造
SPARC64TM VIIIfxチップ
 名称: Tofuインターコネクト
Tofu インターコネクトネットワーク
出典: http://www.ssken.gr.jp/MAINSITE/download/newsletter/2011/20110825-sci-1/lecture-5/ppt.pdf
17


製品名: IBM BlueGene/Q
◦ Top500 List の 2位,4位,5位,9位
構成:
16プロセッサコア x 約10万ノード
◦ CPU: IBM PowerBQC 1.6GHz

理論演算性能に対する実性能比:
16.3 PF / 20.1 PF (= 0.81)

電力あたり性能:
2.1GFLOPS / W

ネットワーク:
5次元トーラス構造
出典: https://www.llnl.gov/news/aroundthelab/2012/Jun/ATL-061812_sequoia.html
18


製品名: Cray XK7
構成:
(16プロセッサコア + GPU)
x 約1万8千ノード
◦ CPU: AMD Opteron 6274 2.2GHz
◦ GPU: NVIDIA Tesla K20X

理論演算性能に対する実性能比:
17.6PF / 27.1PF (= 0.65)

電力あたり性能:
2.14GF / W

ネットワーク:
3次元トーラス構造
出典: http://www.olcf.ornl.gov/titan/
19
Titan
Sequoia
京
地球シミュ
レータ
705,024
5,120
299,008
1,572,864
18,688
98,304
88,128
640
Yes
No
No
No
理論性能
27.1 PF
20.1 PF
11.3 PF
0.041 PF
実性能
17.6 PF
16.3 PF
10.5 PF
0.036 PF
0.64
0.81
0.93
0.88
8.2MW
7.9MW
12.7MW
3.2 MW
2.1 GF/W
2.1 GF/W
0.83GF/W
0.01GF/W
総コア数
ノード数
GPU
実性能/理論
電力
実性能/電力
20

プロセッサコア数の増加
◦ 高速ネットワークの開発
◦ 低消費電力プロセッサコアの高密度実装

GPUの利用
21

実は基本的なグラフィック計算の主要部分は
連続領域に対する演算の繰り返し
⇒ グラフィック以外の計算にも利用可能
22

グラフィック処理に特化した簡略化
◦ メモリ量を制限
 1〜6GB程度
◦ 演算の種類を制限
 主に加算,乗算の性能重視
 除算,平方根等はソフトウェアで計算
 複雑な処理は制限

スケールメリット
◦ ほとんどのPCに搭載
23

例) NVIDIA Tesla C2075
演算性能(単精度)
1.03 TFLOPS
演算性能(倍精度)
515 GFLOPS
GPUメモリ容量
消費電力
価格
6GB
215W
22万円前後
地球シミュレータの
1/80 の性能
地球シミュレータの
1/30000 の電力
地球シミュレータの
1/200000
の価格
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

現在のスーパーコンピュータ
= 多数(数千~数万)の"計算ノード"をネットワークで
接続した「並列計算機」
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
ネットワーク
ネットワーク
26

物理的,経済的な限界
◦ 物理的な限界 = 消費電力と熱
 周波数に対して指数関数的に増加
 例えば x86系 CPU は 2004年の 3.8GHz以降、
頭打ち状態
◦ 経済的な限界 = 開発コスト
 回路の微細化、複雑化
 電流漏れ,熱等の問題が深刻化
今後も、大幅な周波数増は見込めない
27

仕事を複数のプロセッサに分担させて高速化
= 並列処理
普通の処理
仕事1
並列処理
仕事1
仕事2
仕事3
仕事2
仕事3
うまく分担できればプロセッサの数に応じて性能向上

並列処理をするには?
⇒ 並列プログラムが必要
28

並列処理に必要な事項を含むプログラム
◦ 各CPUコアへの仕事の分担のさせ方、
◦ 相互の情報交換、
◦ CPUコアの間の同期
等
普通のプログラム
(=並列じゃないプログラム)とどう違う?
29

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];
30

スレッド:
同じ記憶空間を共有しながら進行する流れ
スレッド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
31

利点: 簡単に並列化
◦ コンパイラにお任せ、もしくは若干の変更だけ

欠点: 基本的に「共有メモリ型並列計算機」向け
⇒ 「分散メモリ型並列計算機」では使えない
= 大規模な計算機で利用できない
32

1つのメインメモリを複数のCPUコアで共有
◦ マルチCPUコアのPC等
CPU
コア
CPU
コア
CPU
コア
CPU
コア
CPU
コア
CPU
コア
メインメモリ
CPUコアからメインメモリへの経路が共有
⇒ 規模(=CPUコア数)に限界
33

複数の独立したメインメモリで構成
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
CPU
コア
メイン
メモリ
CPU
コア
メイン
メモリ
CPU
コア
CPU
コア
メイン
メモリ
ネットワーク
規模に応じて経路の数も増加
⇒ 大規模化が比較的容易
34

分散メモリ型並列計算機における並列処理に必要

プロセス並列
独立した記憶空間をもつ「プロセス」を
単位とした並列処理
35

処理だけでなくデータも分割
プロセス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
36

他のプロセスのデータは直接参照できない

必要に応じてプロセス間通信
プロセス0
A
受信
プロセス1
A
プロセス2
A
プロセス3
A
送信
ネットワーク
37

並列プログラム用に用意された通信関数群の定義

例) プロセス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から受信
38

利用可能な並列化手段
共有メモリ型 分散メモリ型
自動並列化、
OpenMP
MPI
○
×
○
○
MPIプログラムは、
作るのに苦労するがどこでも実行できる
39

利点: 理論的な性能は、比較的容易に向上
◦ 極端な話,単純に数を増やせば向上する

欠点: 実質的な性能向上には工夫が必要
◦ 並列プログラムの作成
 計算の分担
 データの分割
 計算結果の通信
◦ 並列処理のための時間増加
 他のCPUとの同期待ちや通信
スーパーコンピュータの構成は、
今のところ分散メモリ型並列計算機
40

通信性能
◦ 遅延時間
 通信経路の距離が重要
◦ 同時利用帯域幅
 同時に利用可能な通信経路数が重要

費用
◦ 結線数とスイッチ数
topology (= ネットワークの形状)が重要
41

一本の Busを全ノードで共有

長所:

短所:
 両端をつなげたものが Ring
 構成が簡単なので 1本あたりの通信性能は高い
 結線とスイッチの数はノード数と同じなので費用は低い
 同時に利用可能な通信経路は 1本だけ
 Ringの場合、2本

プロセッサ内部のコア間ネットワーク(8コア)のような
小規模なネットワークで利用
42


全ノード間で、一対一に接続
長所:
◦ 遅延時間最小
◦ 同時利用帯域幅最大

短所:
◦ 高価
 ノード数の2乗に応じた
結線数
 各ノードでノード数分の
接続が可能な大規模スイッチ

小規模のシステム内
ネットワーク(4要素程度)
で利用
43


行列上の switchを介して全ノードを接続
長所:
◦ 遅延時間はほぼ最小
◦ ノード数に比例した同時通信帯域幅

短所:
◦ 高価
 ノード数の2乗に比例した
結線数とスイッチ数

最大で、地球シミュレータ
(640ノード)程度まで利用
◦ 通常は数十ノード程度まで
44


多段の crossbar switch による木構造で構成
長所:
◦ 比較的、遅延時間が低い
 通信距離はスイッチの段数 x 2
◦ 比較的、同時通信帯域幅が高い
 上位層のスイッチ数と結線数による
◦ 比較的、費用が安価

短所:

Top500 List 6位のスーパーコンピュータ(9,400ノード)で利用
◦ 数万ノード以上のシステムでは、まだ高価
45

多次元の格子状にノードを配置し、隣接ノード間を直接接
続
◦ 両端を接続したものがトーラス

長所:
◦ 費用が安価
 ノード数 N に比例した link数
◦ リングやバスより格段に高速
 特に隣接ノードとの通信

短所:

Top500 List の 1位~5位
(数十万ノード)で利用
◦ 同時通信帯域幅が通信パターン
に大きく依存
⇒ プログラムの高度な
チューニングが必要
46

High-Radix switch(ポート数の多いスイッチ)の利用
◦ 段数小 ⇒ 通信遅延の低減
◦ 同時通信帯域幅の維持
◦ 例)
 多段全対全結合
出典: http://www.unixer.de/publications/img/ibm-percs-network.pdf
 DragonFly
出典: http://research.google.com/pubs/archive/35154.pdf
47

膨大な開発費:
京の場合,7年間で約1,200億円
◦ 事業仕分けでの指摘
「2番じゃダメなんですか?」

次の目標:
2018年に 1 Exa FLOPS を達成
(1 Exa = 1,000 Peta)
◦ 予算は???
48






富士通: 京の商用機発表
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
49

PCAST (President’s Council of Advaisors on
Science and Technology) の指摘
http://insidehpc.com/2010/12/22/pcast-report-supercomputing-arms-race-maybe-the-wrong-path-forward/
“an arms race that is very expensive and may not
be a good use of funds.”
ゲームのルールが変わる可能性
50

HPC Challenge
http://icl.cs.utk.edu/hpcc/
◦ 複数の部門でそれぞれ順位づけ
 Linpack, Matrix Multiply, Memory Bandwidth,
Matrix Transpose, Random Access, Fast Fourier Trans,
Communication Bandwidth and Latency

Graph500
http://www.graph500.org
◦ 組み合わせ最適化問題の計算性能比較

Green500
http’//www.green500.org
◦ Top500の性能を消費電力で割った電力対性能比を比較
51

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
52



米国
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
53