クラスタ - Keio University→現在のClusterの元祖となった...

53
クラスタ 慶應義塾大学理工学部 天野英晴 hunga@amicskeioacjp

Transcript of クラスタ - Keio University→現在のClusterの元祖となった...

Page 1: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

クラスタ

慶應義塾大学理工学部

天野英晴

hunga@am.ics.keio.ac.jp

Page 2: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

NORA/NORMA

• 共有メモリを持たない

• 交信はメッセージのやりとりで行う

– MPIが主に使われる

• 接続はGigabit EthernetやInfiniband

• 最近は多出力のスイッチを用いる

– ハイラディックスネットワーク

データセンターなどで要求レベル並列性を処理

クラスタコンピューティング

Page 3: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Beowulf クラスタ1994年NASA T.Sterling

• 安価で簡単に大規模並列計算環境を作ろう

– コモディティのPCを利用

– コモディティのネットワーク(Ethernet)を利用

– コモディティのソフトウェア(Linux)を利用

– PVMやMPI(来週紹介)などのメッセージパッシング型ライブラリでプログラム

→現在のClusterの元祖となった

現在のClusterは、InfinibandなどのSANを使うものも多いが、基本的に上記の原則を守っている

Page 4: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Infiniband

• System (Storage) Area Network (SAN)用.

• 8b/10b コードを利用.

• 様々な接続形態に対応.

• マルチキャスト可能.

SDR DDR QDR

1X 2Gbit/s 4Gbit/s 8Gbit/s

4X 8Gbit/s 16Gbit/s 32Gbit/s

12X 24Gbit/s 48Gbit/s 96Gbit/s

Page 5: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

RHiNET-2 cluster

Page 6: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

クラスタの接続網

• 直接網(direct/distributed)

– ノード同士を直接つなぐ

– k-ary n-cubeが主に利用される

• 間接網(indirect/centralized)

–スイッチを経由してつなぐ

– Fat Tree, DragonflyなどHigh-radix系が流行っている

• パケットをどのように転送するかが重要

Page 7: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

1.直接網

Linear

Ring Central concentration

Tree

Complete connection Mesh

まずは基本的なもの

Page 8: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

直接網の評価基準(D and d)

• 直径(Diameter):D–ネットワーク中の最も遠い2ノード間の最短ホップ数

• 次数(degree): d– ノードに繋がるリンクの最大数

• ASPL (Average Shortest Parth Length)

–平均距離

Page 9: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

直径の例

2(n-1)

Page 10: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

二分バンド幅bi-section bandwidth

ネットワークを等分した際の交信量→もっとも小さいものを取る

Page 11: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Hypercube

0000 0001 0010 0011

0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

Page 12: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Routing on hypercube

0101→1100

Different bits

0000 0001 0010 0011

0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

Page 13: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

hypercubeの直径

0101→1010

All bits are different

→ the largest distance

0000 0001 0010 0011

0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

Page 14: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

k-ary n-cube

• メッシュ、トーラスの一般化

• n桁のK進数を各ノードに割り当てる。

• それぞれの次元(桁)方向にリンクを順に設ける。

• 巡回するリンク(n-1→0)を持てば トーラス、そうでなければメッシュ

• 2次元、3次元メッシュ、トーラス、リング、直線状、hypercubeを含むファミリー

Page 15: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

k-ary n-cube

0 1 2

3-ary 1-cube

0 0 0

1 1 1

2 2 2

3-ary 2-cube

0 1 2

0 1 2

Page 16: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

0 1 20 0 0

1 1 1

2 2 20 1 2

0 1 2

k-ary n-cube

3-ary 1-cube

3-ary 2-cube

0 1 20 0 0

1 1 1

2 2 20 1 2

0 1 2

0 1 20 0 0

1 1 1

2 2 20 1 2

0 1 2

0 0

0 0

01

1 1 1

1 1

2 2 2

3-ary 3-cube

Page 17: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

3-ary 4-cube

0***

1***

2***

Page 18: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

0**** 1****

2****

3-ary 5-cube

degree: 2*n

Diameter: (k-1)*n

Page 19: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

6-次元 Torus

Tofu

Page 20: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

トレンドの移り変わり

k

n

10

2 100 1000

16

5

3

2

hypercube machines

1980’s

2D/3D Mesh/Torus 90’s-2000’s

5D/6D Mesh/Torus

2010’s

HW router

Wormhole, VC

Bandwidth requirement

Optical links,

Increasing size

Low-latency requirement

Page 21: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

2.間接網

• 等距離間接網

– Multistage Interconnection Network (MIN)

–最近はButterflyと呼ばれる

–局所性が生かせないので大規模なシステムに向かない

• 不等距離間接網

– base-m n-cube

– Fat Tree

– Dragon FlyなどHigh Radixネットワーク

Page 22: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Omega網

2x2のスイッチ素子を利用、Perfect Shuffleでステージ間を接続

000

001

010

011

100

101

110

111

000

001

010

011

100

101

110

111

Page 23: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

base-m n-cube

(Hyper crossbar)

crossbar

router

PU

Used in Toshiba’s Prodigy and Hitachi’s SR8000

Page 24: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Fat Tree

Myrinet-Clos はClosではなく Fat-tree

Page 25: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Myrinet-Clos(1/2)

• 128nodes(Clos128)

Page 26: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Flattened butterfly

router(5×5)

router (2×2)

2-ary 4-fly24=16 node

2-ary 4-flat24=16 node

A row of MIN is fused.

High radix → High bandwidth

Multiple paths can be formed

Page 27: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Dragonfly

R0 R1 Rn-1...

… …

Intra-group

int. network

… … …

G0

P0 P1 Pk-1

G1

Pk Pk+1 P2k-1

Gg

PN-k-1PN-k PN-1

Inter-group

int. network

global channels

terminal channels

Page 28: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

R0

P0 P1

R1

P2 P3

R2

P4 P5

R3

P6 P7

G0

G1 G2 G8……

An example of Dragonfly

(N=72)

The interconnection of

this part can be Flatten Butterfly

Page 29: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

k-ary n-cube 対 high radix

スーパーコンピュータ

クラスタ・データセンター

チップ内(Network-on

Chips:NoCs)

k-ary n-cube

high radix

k-ary

n-cubehigh radix

Page 30: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

3.パケットの流し方

Body

destin

ation

length,

source,

etc. Head

er

Flit

8bit~64bit

パケットスイッチング

サーキットスイッチング

Flit: 転送の基本単位配線のbit幅でない場合もある

Taile

r: CR

C e

tc.

クラスタではパケットスイッチングを使う

Page 31: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

パケット転送手法

• ストア・アンド・フォワード(Store-&-Forward)

–パケット全体をノードのバッファに蓄えてから次のノードに送る

– TCP/IP は、これを使っている

• ウォームホール(Wormhole)– フリット単位で先に進んでいける

–先頭が進めなくなると全体が停止する

• バーチャル・カットスルー(Virtual CutThrough)

–先頭のflitが進めなくなるとパケットの残りをノード中のバッファに格納する

Page 32: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Store and Forward

• パケット全体をバッファに格納してから進む• ノード単位で再送が可能• しかし転送レイテンシィが大きい:D(h+b)

• バッファサイズも大きいものが必要• パケット転送、エラー時の再送制御などはソフトウェアで可能→TCP/IPで使われる

Page 33: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Wormhole

• パケットのフリットはどんどん先に進める• 転送遅延が小さい hD+b

h: header, D:Diameter, b: body

• バッファ要求量も小さい(ヘッダが入ればいい)• しかし、先頭が進めないと複数のノードにまたがってパケットがストップしてしまう→混雑の原因に!→仮想チャネルが有効

• ハードウェアの専用ルータ(スイッチ)が必要

12 34 12 34

Page 34: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Wormhole

12 12 34

Page 35: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Wormhole

12 34

Page 36: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Wormhole

12 34

Page 37: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

• Wormholeと同じくどんどん先に進める• 先頭が進めなくなると、残りがバッファに入る

→ノードにまたがってバッファを占領しない→Wormholeほど混雑をおこさない。

• Wormholeと同じ転送遅延時間• Store and Forwardと同じバッファが要求される• ハードウェアルータが必要

12 34 12 34

Page 38: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 39: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 40: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 41: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 42: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 43: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 44: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 45: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

Virtual Cut Through

2 4 13

Page 46: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

仮想チャネル(Virtual Channel)

• 特にWormholeでは、パケットが複数のノードのバッファを占有

• 行先のバッファが空いていても、途中が占有されて先に進めない

• 独立したバッファとハンドシェーク線を用意することで、物理的な配線を増やさずに空いたバッファを有効活用

• デッドロック回避(後程説明)にも有効

Page 47: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

右に曲がりたいのだが、前がつっかえて曲がれない 右折レーンを付ければいい

空いているのに

もったいない

仮想チャネル:混雑の回避

Page 48: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

仮想チャネルの実装

• 仮想チャネル(VC)は新しいレーンを作ること

– 物理的なワイヤを増やすのではないことに注意!

空いているのに

もったいない

[Dally,TPDS’92]

VC#0Packet (a)

Packet (b)VC#1

Page 49: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

バッファの空きを知らせる線が必要

NODE

MUX

バッファハンドシェーク線

ハンドシェーク線

Link

Crossbarバッファ

Page 50: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

デッドロック

互いに行先のバッファをブロックしてしまう

Page 51: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

デッドロックの回避

• バッファ間の依存関係が循環構造を形成しないようにする。

–循環しない位多量にバッファを持たせる

• 構造化バッファ法

–曲がる方向を制限する

• XY Routing (Dimension Order Routing)

• Turn model

–仮想チャネルを使う

• ネットワークに応じて様々な構造が提案されている

Page 52: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

まとめ• 共有メモリを持たないクラスタは、最も簡単に大規模な並列コンピュータを構成できる

• 独立したジョブを扱うデータセンターなどに向いている

• ノード間のネットワークが重要– 直接網

– 間接網

– ルーチング手法

• プログラムは、メッセージパッシングライブラリを用いてノード間のデータ交換を明示的に指定する

→次回演習

Page 53: クラスタ - Keio University→現在のClusterの元祖となった 現在のClusterは、InfinibandなどのSANを使う ものも多いが、基本的に上記の原則を守ってい

演習

• 4-ary 8-cubeで、ヘッダサイズ1、ボディ16フリットのパケットをWormhole方式で、転送した場合、最大遅延は何クロックになるか?

– 1クロックに1フリット転送可能と考える

–パケットの衝突は考えない