スーパーコンピュータの...

54
スーパーコンピュータの ネットワーク 情報ネットワーク特論 南里 豪志 (九州大学情報基盤研究開発センター) 1

Transcript of スーパーコンピュータの...

Page 1: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

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

情報ネットワーク特論

南里 豪志(九州大学情報基盤研究開発センター)

1

Page 2: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

今日の講義内容

• スーパーコンピュータとは

• どうやって計算機を速くするか

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

2

Page 3: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

スーパーコンピュータとは?• "スーパー"な計算機

= その時点で、一般的な計算機の性能をはるかに超える性能を持つ計算機

• スーパーコンピュータの用途• 主に科学技術分野

• 創薬• 分子構造シミュレーション

• 車、飛行機等の設計• 構造シミュレーション

• 気象予測• 熱力学シミュレーション

• 近年、他の分野でも利用拡大• 株価変動予測• 交通量解析• ソーシャルネットワーク上のデータ解析• 顧客の行動予測等

3

出典: http://eng.mod.gov.cn/Database/Academies/2013-06/18/content_4455818_2.htm

出典: https://www.llnl.gov/news/aroundthelab/2012/Jun/ATL-061812_sequoia.html

常に、より高い性能の計算機を要求

出典: http://www.aics.riken.jp/jp/k/facility.html

Page 4: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

計算機の「理論的な」最大性能

• FLOPS (FLoating Operations Per Second)• 一秒間に実行できる実数演算(floating point operation)の数

• 実数計算がほとんどを占める科学技術計算で使用

•理論的な最大 FLOPS の計算式:Theoretical Peak FLOPS

= frequency of CPU(CPUのクロック周波数)x number of operations per clock (1クロックあたりの演算数)x number of CPUs (CPUの数)

• 例えば:1GHz で、1クロック当たり 4個の演算を実行できる CPUを1000個搭載

する計算機の理論的な最大 FLOPS = 4000 GFLOPS = 4 TFLOPS (Tera FLOPS)

4

Page 5: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

実際の計算機の性能

•例えば CPUは、以下を待つ間、計算が出来ない• 計算すべきデータが、ディスク、メモリ、ネットワークから CPUに届く

• 他の CPUとの同期が完了する

• なので、実際の計算機の性能は、プログラムに依存する

例)• 多数の仕事に分けて、分担させることができるプログラム⇒低速の CPUを多数持つ計算機で高い性能が得られる

• 仕事の分割や分担が難しいプログラム⇒非常に高速な CPUを持つ計算機でなければ、高い性能が得られない

5

同じプログラムを各計算機で実行して実行時間を比較⇒ ベンチマークプログラム

Page 6: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Top500 Listhttp://www.top500.org

• 最も有名な、スーパーコンピュータ性能比較リスト• 稼働中のスーパーコンピュータの 1位~500位を掲載• 毎年 6月と 11月に更新

• LINPACKベンチマークプログラムの性能で順位付け• 連立一次方程式の解を求める計算• 比較的、理論的な最大性能に近い性能が出る

• 他の計算機との比較や傾向の分析などが容易• 1993年からほとんど同じ条件で更新を継続• 世界中のほぼ全てのスーパーコンピュータが登録

6

スーパーコンピュータ開発競争に利用

Page 7: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

スーパーコンピュータの例:地球シミュレータ

• 2002年 3月に稼働を開始• 主に NECが開発

• 開発目標:10km四方(赤道近辺)の精度で地球全体の大気循環をシミュレート• それまでは 100km四方

• 例えば台風の発生過程:100km四方だと台風が台風に見えない

• 地球シミュレータの成果• 台風進路予測

• 5.5km四方で地球全体をシミュレート(日本近辺は 2.78km四方)• 海底探査船「ちきゅう」に、正確な台風進路の予測結果を、到達予定の3日前までに提供

• 台風発生予測• 過去10年間についてシミュレーションによる台風発生回数が実際の値とほぼ一致

• CO2の増加に伴う温暖化の予測• 2040年には年間の真夏日日数が約20日増加,平均気温が約2度上昇.

7

Page 8: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Top500における地球シミュレータの性能

• Linpack性能 35.8TFLOPS (理論最大性能 41.0TFLOPS)= 1秒あたりの 35兆回の実数計算

• 断トツの 1位• 2位から10位までの計算機の演算性能の合計を上回る性能(2002年6月時点)

• “Computenik”= 「計算機分野での Sputnik だ!」(in New York Times)

• by Jack Dongarra教授テネシー大学教授、Top500サイトの創始者

8

USAのスーパーコンピュータ開発意欲に火を付けた

Page 9: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

USAの逆襲(2004年)

• IBM Blue Gene/L (2004年11月~)http://www.research.ibm.com/bluegene/• 70.7TFLOPS (理論最大性能 91.8TF)

• ちなみに地球シミュレータ(35TFLOPS)は3位に後退

• 「まだ完成形ではない」:2005年前半に、さらに4倍高速化する計画

9

日本のすべてのスーパーコンピュータをかき集めても追いつかない規模になる

Page 10: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

USAの逆襲(2005年)

• IBM Blue Gene/L (2005年11月) • 280.6TFLOPS (理論最大性能 367.0TFLOPS)

• 世界で初めて 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, ...

10

Page 11: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

11

ASCI White (USA), 0.007 PFLOPS

Earth Simulator (Japan), 0.036 PFLOPS

BlueGene/L (USA), 0.478 PFLOPS

RoadRunner (USA), 1.1 PFLOPS

Jaguar (USA), 1.8 PFLOPS

Tianhe-1A (China), 2.6 PFLOPS

K Computer (Japan), 10.5 PFLOPS

Titan (USA), 17.6 PFLOPS

Tianhe-2 (China), 33.9 PFLOPS

Sunway TaihuLight (China), 93.0 PFLOPS

1位の計算機の変遷2006年~2017年

出典: http://top500.org

Page 12: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

最新情報: 2017年6月

• 1位 Sunway TaihuLight (China) 93.0 PFLOPS2位 Tianhe-2 (China) 33.9 PFLOPS3位 Piz Daint (Switzerland) 19.6 PFLOPS4位 Titan (USA) 17.6 PFLOPS5位 Sequoia (USA) 17.1 PFLOPS6位 Cori (USA) 14.0 PFLOPS7位 Oakforest-PACS (Japan) 13.6 PFLOPS8位 K Computer(Japan) 10.5 PFLOPS

•国別合計:1位 USA 33.5% (250.9 PFLOPS)2位 China 31.4% (235.1 PFLOPS)3位 Japan 8.3% ( 62.5 PFLOPS)4位 Germany 5.0% ( 37.5 PFLOPS)5位 France 3.4% ( 25.7 PFLOPS)

• 以下,UK, South Korea, Italy, Canada, ...

12

来月、更新予定

Page 13: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

どうやって計算機を速くするか?

• クロック周波数の向上

•命令レベル並列処理の向上

• プロセッサコア数の増加

• メニーコア、アクセラレータの利用

• SIMD (Single Instruction Multiple Data) 演算

13

電力、熱の限界

命令レベル並列性の限界

Page 14: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

プロセッサを増やす•現在の計算機=複数のプロセッサを搭載した並列計算機• スーパーコンピュータだけでなく、PCやタブレット、スマートフォンまで、あらゆる計算機が並列計算機

14

Name Number of Cores

K computer 705,024

Titan 560,640

TaihuLight 10,649,600

Name Number of Cores

iPhone 7 2 (高速コア) +4 (高効率コア) +

Deep Learning PU

Galaxy S8 4 (2.35GHz) + 4 (1.9GHz)

XPERIA XZ 4 (2.45GHz) + 4 (1.9GHz)

スーパーコンピュータのプロセッサコア数 スマートフォンのプロセッサコア数

Page 15: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列計算機

• 仕事を複数のプロセッサに分担させて高速化= 並列処理

• 並列処理をするには?⇒ 並列プログラムが必要

15

仕事1 仕事2 仕事3仕事1

仕事2

仕事3

普通の処理 並列処理

うまく分担できればプロセッサの数に応じて性能向上

Page 16: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列プログラム

•並列処理に必要な事項を含むプログラム• 各CPUコアへの仕事の分担のさせ方、

• 相互の情報交換、

• CPUコアの間の同期

16

普通のプログラム(=並列じゃないプログラム)とどう違う?

Page 17: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

普通のプログラムの例:2つのベクトルの和を計算

• 0番目から99番目までの要素を順に計算

17

A

B

C

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

0 99...

double A[100], B[100], C[100];...

for (i = 0; i < 100; i++)A[i] = B[i] + C[i];

プログラム

Page 18: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列プログラムの例:複数の「スレッド」で並列処理• スレッド:同じ記憶空間を共有しながら進行する流れ

18

A

B

C

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

=+

...0 24 25 ... 49 50 ... 74 75 ... 99

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

スレッド0 スレッド1 スレッド2 スレッド3

全スレッドが同じ配列を共有

Page 19: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

スレッドによる並列化の利点と欠点

•利点: 比較的簡単に並列化• 自動並列化コンパイラ等も利用可能

•欠点: 基本的に「共有メモリ型並列計算機」向け⇒ 「分散メモリ型並列計算機」では使えない

= 大規模な計算機で利用できない

19

Page 20: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

共有メモリ型並列計算機

• 1つのメインメモリを複数のCPUコアで共有• マルチCPUコアのPC等

20

CPUコア

メインメモリ

CPUコア

CPUコア

CPUコア

CPUコア

CPUコア

CPUコアからメインメモリへの経路が共有⇒ 規模(=CPUコア数)に限界

Page 21: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

分散メモリ型並列計算機

•複数の独立したメインメモリで構成

21

CPUコア

メインメモリ

CPUコア

CPUコア

メインメモリ

CPUコア

CPUコア

メインメモリ

CPUコア

CPUコア

メインメモリ

CPUコア

ネットワーク

規模に応じて経路の数も増加⇒ 大規模化が比較的容易

Page 22: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

プロセス並列プログラム

•分散メモリ型並列計算機における並列処理に必要

• プロセス並列独立した記憶空間をもつ「プロセス」を単位とした並列処理

22

Page 23: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

「プロセス並列」プログラムの特徴 (1)•処理だけでなくデータも分割

23

double A[25],B[25],C[25];...

for (i=0;i<25;i++)A[i] = B[i] + C[i];

プロセス0

A

B

C

=+

=+

=+

=+

=+

...0 24

プロセス0

A

B

=+

=+

=+

=+

=+

...0 24

プロセス1

A

B

=+

=+

=+

=+

=+

...0 24

プロセス2

A

B

=+

=+

=+

=+

=+

...0 24

プロセス3

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];

プロセス1

プロセス2プロセス3

C C C

各プロセスが別の配列を利用

Page 24: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

「プロセス並列」プログラムの特徴 (2)•他のプロセスのデータは直接参照できない

•必要に応じてプロセス間通信

24

A

プロセス0

A

プロセス1

A

プロセス2

A

プロセス3

ネットワーク

送信受信

Page 25: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

MPI(Message Passing Interface)•並列プログラム用に用意された通信関数群の定義

•例) プロセス0からプロセス1にデータを転送

25

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);

自分のプロセス番号を取得

プロセス0がプロセス1に送信

プロセス1がプロセス0から受信

Page 26: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

分散メモリ型並列計算機の利点と欠点

•利点: 理論的な性能は、比較的容易に向上• 極端な話,単純に数を増やせば向上する

•欠点: 実質的な性能向上には工夫が必要• 並列プログラムの作成

• 計算の分担

• データの分割

• 計算結果の通信

• 並列処理のための時間増加• 他のCPUとの同期待ちや通信

26

現在のスーパーコンピュータは、全て分散メモリ型並列計算機

Page 27: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列化手段と並列計算機

•利用可能な並列化手段

27

共有メモリ型 分散メモリ型

スレッド並列 ○ ×

プロセス並列(MPI)

○ ○

MPIプログラムは、作るのに苦労するがどこでも実行できる

Page 28: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

メニーコア

•背景:今後のスーパーコンピュータ高速化に向けた最大の課題は電力

• メニーコアの基本的な考え方:低性能、低機能だが、電力効率の高いコアを多数並べて並列計算する

• メニーコアの例• Sunway SW26010 260C: 260コア

• 中国の独自開発

• Intel Xeon Phi 7290: 72コア• 過去の Pentiumアーキテクチャ + SIMD命令

•特徴• 通常のCPU用命令がそのまま使える• 性能を得るには、高度なチューニングが必要 28

例)半分の性能を1/8 の電力で達成

電力効率 4倍

電力

性能

出典: http://www.netlib.org/utk/people/JackDongarra/PAPERS/sunway-report-2016.pdf

Page 29: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

アクセラレータ

• メニーコアと同様、電力効率の高い演算装置を多数並べて並列計算する

• GPGPU (General Purpose Graphic Processing Unit)• グラフィック処理用プロセッサ GPUを、汎用的(General Purpose)なアクセラレータとして利用する技術

• アクセラレータの例)• NVIDIA Tesla P100: 3584 CUDAコア

•特徴• CPUとの間でプログラムとデータを転送

• アクセラレータ用プログラムは専用言語(CUDA等)で記述

• 機械学習等、特定の処理を大幅に高速化

29

出典: http://www.nvidia.co.jp/object/tesla-p100-jp.html

Page 30: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

SIMD (Single Instruction Multiple Data)演算器

• SIMD命令:一つの命令で複数のデータを処理する• 例) Intel AVX512: 一つの命令で 8個の倍精度浮動小数点演算

• SIMD演算器:CPUコアの中に用意された、SIMD命令を実行するための演算器• 結果的に、メニーコア等と同様に、省電力効果

• 現在、ほぼ全ての CPUコアに搭載

•特徴• コンパイラがある程度自動生成してくれる

• 十分な性能を得るには、高度なチューニングが必要• SIMD命令を自動生成しやすいプログラムへの書き換え

• SIMD命令をプログラム中に直接書き込み 30

__m512 ax = _mm512_load_ps(&a[i]);__m512 bx = _mm512_load_ps(&b[i]);sumx = _mm512_fmadd_ps(ax, bx, sumx);

a

b

ax

bx

sumx

sumx

*

+

Page 31: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

メモリ速度の問題

• メモリ速度=演算器へのデータの供給速度• 例) Intel Xeon Skylake SP, 2.0GHz, 20core

- CPUの SIMD演算に必要なデータ: 2560 GB/秒(20core * 2.0GHz * 8 命令 * 8byte 実数 )

- メモリ速度: 127.8 GB/秒

• CPUへのデータ供給速度高速化技術:• 高速メモリ

• HBM2: GPU向け

• MCDRAM: メニーコア向け

• キャッシュメモリ

• コンパイラによる自動最適化• プリフェッチ、ループタイリング、etc.

31

CPUの性能を約 1/20しか利用できない

Page 32: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

性能比較

32

NVIDIA Tesla P100 Intel Xeon Phi 5110P Intel Xeon Gold 6154

倍精度実数演算性能

5.3TF 3.4TF 1.7TF

メモリ容量 16GB 16GB 1.5TB

メモリバンド幅 732GB/s 490GB/s 127.8GB/s

消費電力 300W 245W 200W

電力対性能 14.3GF / W 13.9GF / W 8.5GF / W

Page 33: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

各計算機の比較

33

Sunway TaihuLight

Tianhe-2 Piz Daint Titan Sequoia Cori Oakforest-PACS

K Earth Simulator

ノード数 40,960 16,000 6,528 18,688 98,304 9,152 8,208 88,128 640

構成 Many Core CPU + Many Core

CPU + GPU

CPU + GPU

CPU Many Core

Many Core

CPU CPU

理論性能 125.4 PF 54.9 PF 25.3 PF 27.1 PF 20.1 PF 27.9 PF 24.9 PF 11.3 PF 0.041 PF

Linpack性能

93.0 PF 33.9 PF 19.6 PF 17.6 PF 16.3 PF 14.0 PF 13.6 PF 10.5 PF 0.036 PF

Linpack/理論

0.73 0.61 0.77 0.64 0.81 0.50 0.55 0.93 0.88

電力 15.4 MW 17.8 MW 2.3 MW 8.2 MW 7.9 MW 3.9 MW 2.7 MW 12.7 MW 3.2 MW

実性能/

電力(GF/W)

6.1 1.9 11.0 2.1 2.1 3.6 5.0 0.83 0.01

ネットワーク

Fat Tree Fat Tree DragonFly 3D Torus

5D Torus

DragonFly Fat Tree 6D Torus Crossbar

登場年 2016 2013 2017 2012 2012 2016 2016 2011 2002

Page 34: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列計算機の実性能

• プログラマの期待:「CPUを 4台使うんだから,並列計算で 4倍速くなって欲しい」

•計算機の現実:「CPU 4台で 3倍くらい速くなれば十分だろう」

• Why?• アムダールの法則

• 負荷のバランス

• 通信のコスト

34

Page 35: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

アムダールの法則

• プログラム中の高速化した部分しか高速化されない

•並列化にあてはめて考えると:並列化による性能向上率の理論的な限界=1/((1-P)+P/N)• P: プログラム中の並列化対象部分が全処理時間に占める割合

• N: プロセス数

•例)N=4 で 3.5倍以上高速化するためには 95%以上の部分の並列化が必要

35

Page 36: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

分担する計算量のバランス

•並列プログラムの処理時間は「最も遅いプロセスの処理時間」である

Rank 0

Rank 1

Rank 2

Rank 3

Rank 0

Rank 1

Rank 2

Rank 3

Execution time

of this program

Execution time

of this program

36

計算量が不均等な場合 計算量が均等な場合

Page 37: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

通信時間

•並列化前は不要だった時間= 並列化によるオーバーヘッド

Rank 0

Rank 1

Rank 2

Rank 3

37

並列化前

並列化後

Page 38: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列プログラム中の通信の例•隣のプロセスと計算結果を交換

• 例) Stencil計算(行列の要素を周囲の値で更新)

•全プロセスの計算結果を集約• 例)ベクトルの内積計算

38

並列化

通信

proc0

* * * * *

+

* * * * *

+

* * * * *

+

* * * * *

+

...

+

proc1 proc2 procN

通信

Page 39: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

mバイトの通信に要する時間

• T = a + b * m• a: 遅延時間

• 通信サイズによらない、通信毎に必要な時間。

• ネットワークの処理速度や距離に依存。

• b: バイト当たりの転送時間• 通信帯域幅(Byte/sec)の逆数

39通信サイズ(Byte)

通信時間(秒)

a(

b1byte

Page 40: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

並列プログラムの計算時間と通信時間

•計算時間:基本的に、プロセス数に応じて短縮

•通信時間:基本的に、プロセス数に応じて増加

40

プロセス数に応じて通信時間の比率が増大

所要時間

プロセス数1 2 4 8

計算時間

通信時間

Page 41: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

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

•通信性能• 遅延時間を短く

• 高速なネットワークコントローラ• 短い接続経路

• 経路の帯域幅を大きく• 高い伝送速度のネットワーク

• 経路の競合を少なく• 経路数増加• 高度な経路制御

•費用• なるべく安く:ネットワークコントローラ、経路数やスイッチ数、経路の帯域幅に依存

41

経路長い経路短い

帯域幅細い 帯域幅太い

競合 競合

経路数少ない 経路数多い

Page 42: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Bus / Ring Topology•一本の Busを全ノードで共有

• 両端をつなげたものが Ring

•長所:• 構成が簡単なので 1本あたりの帯域幅を太く出来る

• 経路とスイッチの数はノード数と同じなので費用は低い

•短所:• 同時に利用可能な通信経路は 1本だけ

• 双方向の場合、2本

• プロセッサ内部のコア間ネットワーク(8コア)のような小規模なネットワークで利用

42

Page 43: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Crossbar Switch•行列上の switchを介して全ノードを接続

•長所:• 遅延時間(≒通信距離)はほぼ最小

• ノード数に比例した同時通信帯域幅

•短所:• 高価

• ノード数の2乗に比例した結線数とスイッチ数

•最大で、地球シミュレータ(640ノード)程度まで利用• 通常は数十ノード程度まで

43

Page 44: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Fat Tree•多段の crossbar switch による木構造で構成

•長所:• 比較的、遅延時間が低い

• 通信距離はスイッチの段数 x 2

• 比較的、同時通信帯域幅が高い• 上位層のスイッチ数と経路数による

• 比較的、費用が安価

•短所:• 数万ノード以上のシステムでは高価

• 大規模なシステムでは上位層の経路数を削減

44

Page 45: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

多次元メッシュ/トーラス•多次元の格子状にノードを配置し、隣接ノード間を直接接続

• 両端を接続したものがトーラス

•長所:• 費用が安価

• ノード数 N に比例した経路数

• リングやバスより格段に高速• 特に隣接ノードとの通信

•短所:• 通信パターンによっては、通信衝突が多発⇒プログラムの高度なチューニングが必要

•主に数万ノード規模で利用

45

Page 46: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

京コンピュータのネットワーク: Tofu

• 6次元メッシュ/トーラス• 2 x 3 x 2 のブロック(ABC座標)を 3次元(XYZ座標)に配置

• 各ノードは、X、Y、Zそれぞれの軸の隣接ブロックの同じ位置のノードと接続

•少ないリンク数で全体を接続⇒省コスト、省電力

• 1台壊れても、別ルートを使って計算を継続可能

46

出典: http://www.ssken.gr.jp/MAINSITE/download/newsletter/2011/20110825-sci-1/lecture-5/ppt.pdf

Page 47: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Full Direct Connection•全ノード間で、一対一に接続

•長所:• 遅延時間(≒通信距離)最小

•短所:• 高価

• ノード数の2乗に応じた経路数

• 各ノードでノード数分の接続が可能な大規模スイッチ

•小規模のCPU間ネットワーク(4CPU程度)で利用

47

Page 48: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

DragonFly

• ノードをグループに分け、グループ間を全対全で接続

•通信距離小

•同時通信帯域幅大

48

Page 49: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

計算ノード間に用いられるネットワーク

• Ethernet:通信性能が重要でない場合に利用• バンド幅: 1~10Gbps

• 遅延時間:数十 μ秒

•高性能ネットワーク:高い通信性能(特に低遅延)が求められる場合に利用• バンド幅:数十~100Gbps

• 遅延時間:約 1μ秒

• Top500の計算機で利用されている製品例)• Mellanox InfiniBand

• Intel OmniPath

• Cray Aries

49

Page 50: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

高性能ネットワークの並列計算支援機能

• RDMA (Remote Direct Memory Access)• 他の計算ノードのメモリに対して直接アクセス

• CPUの介在が少ない高速通信

• 通信と計算の同時実行(オーバラップ)

• Offloading• 集約通信のような複雑な通信処理を

NIC (Network Interface Controller) に行わせる

• 通信処理を NICに任せて、CPUは高速計算に専念

• Adaptive Routing• ネットワークの混雑状況に応じて、通信経路を調整

50

NIC NIC

RDMA(Get)

CPU CPU

RAM RAM

Switch

NIC

CPURAM

recv

a

wai

t

c =

a +

b

sen

d c

recv

b

Page 51: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

スーパーコンピュータ開発の今後

•膨大な開発費:京の場合,7年間で約1,200億円• 事業仕分けでの指摘「2番じゃダメなんですか?」

•次の目標:2018年~2020年に 1 Exa FLOPS(1 Exa = 1,000 Peta)

• 予算は???

•性能の全体的な鈍化傾向• 1位の計算機が長期間不変

• Sum(500システム合計値)と#500(500位のシステムの性能)の伸び率が低下

51

Page 52: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

米国の変化• PCAST (President’s Council of Advaisors on Science and Technology) の指摘

http://insidehpc.com/2010/12/22/pcast-report-supercomputing-arms-race-may-be-the-wrong-path-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."

52

今後、ゲームのルールが変わる可能性

Page 53: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

Top500に代わる指標

• HPC Challengehttp://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位

• Graph500http://www.graph500.org• 組み合わせ最適化問題の計算性能比較

• Green500http://www.green500.org• Top500の性能を消費電力で割った電力対性能比を比較

53

Page 54: スーパーコンピュータの ネットワークokaweb.ec.kyushu-u.ac.jp/.../pdf/supercomputer-net-2017.pdfスーパーコンピュータとは?• "スーパー"な計算機

ちょっと宣伝:情報基盤研究開発センター

•あなたもスーパーコンピュータを使えますhttp://www.cc.kyushu-u.ac.jp/scp/• 指導教員を介して申請

• ITOシステム• 2017年10月稼働開始(一部、2018年1月稼働開始)• ネットワーク: Fat Tree

54