bluegeneシステムのご紹介 - keksuchix.kek.jp/keksim06/files/0207/bluegene.pdfblue...
TRANSCRIPT
2005年度 KEK 大型シミュレーション研究ワークショップ
2006/2/7 © 2006 IBM Corporation
BlueGeneシステムのご紹介
2006年2月7日日本アイ・ビー・エム株式会社
BlueGeneシステムのご紹介
© 2006 IBM Corporation2 2006/2/7
内容
Blue Gene概要 清水 10~15分
Blue Geneにおける 土井 10~15分
アプリケーション開発
KEK様導入システム仕様概要 大坪 5分
BlueGeneシステムのご紹介
© 2006 IBM Corporation3 2006/2/7
BlueGene概要
日本アイ・ビー・エム株式会社ディープコンピューティング開発研究所
清水茂則
BlueGeneシステムのご紹介
© 2006 IBM Corporation4 2006/2/7
Blue Gene概要二つのグランドチャレンジに向け1999年に研究・開発スタート
– Advance the state of the art in biomolecular simulations.
– Advance the state of the art in computer design and software for extremely large scale systems.
発熱とスペース(設置面積)を 適化した設計思想
高速のCPUではなく、そこそこの性能、低消費電力、低価格の組み込み用CPUを多数並べることにより、性能/電力、性能/面積のブレークスルーを狙う
– 5.6 GFLOPs/chip (12.9W), 5.7 TFLOPs/rack
多数のプロセッサを効率よく結合し、アプリケーションのデータ交換特性に適合する相互結合網と専用回路
– 3Dトーラス・ネットワーク
– グローバル/コレクティブ・トゥリー, etc.
13万個のプロセッサ(64Kの計算ノード)により360TF/sの 大性能
ソフトウェアのオーバーヘッドを極力小さく押さえ、13万個のCPUをうまく使うためのソフトウェアの実装
2004年から導入・設置開始 (全世界で15サイト(106 ラック)、日本で3サイト(15ラック))
Nov./2005: TOP500のTOP1継続獲得(64ラックで280.6TFLOPS)
BlueGeneシステムのご紹介
© 2006 IBM Corporation5 2006/2/7
Blue Gene Dominates TOP500
Sandia -Thunderbird
(EM64T/Infiniband)38.27Dell5
Sandia – Red Storm
(XT3 Opteron)36.19Cray6
ASC Purple LLNL
(1280 nodes p5 575)63.39IBM3
ASTRON Netherlands
(6 racks BlueGene)27.45IBM9
BlueGene at Watson
(20 racks BlueGene)91.29IBM2
MareNostrum Barcelona Supercomputer (JS20)27.91IBM8
DOE/NSSA/LLNL
(64 racks BlueGene)280.6IBM1
NASA/Columbia (Itanium2)51.87SGI4
20.52
35.86
Rmax TFlops
ORNL – Jaguar
(XT3 Opteron)Cray10
Japan Earth Simulator
(NEC)NEC7
InstallationVen-dor#
BlueGeneシステムのご紹介
© 2006 IBM Corporation6 2006/2/7
Blue Gene Also Dominates All HPCC Benchmarks
すべてのHPCC Benchmarkでも#1の性能を達成
G-HPL : BG (259 Tflop/sec)
G-RandomAccess : BG (35 GUPS)
G-FFTE : BG (2.3 Tflop/sec)
EP-STREAM Triad : BG (160 TB/sec)
BlueGeneシステムのご紹介
© 2006 IBM Corporation7 2006/2/7
Blue Genenアーキテクチャ
BlueGeneシステムのご紹介
© 2006 IBM Corporation8 2006/2/7
The BlueGene Design Concept性能/電力、性能/スペース効率を最適化した設計思想により、他のスパコンの5倍以上の性能を達成
電力効率のよい組み込み用CPUコアを中心としたSoCアプローチ
最適化したFPU構造(SIMDの拡張 -> SIMOMD)
大規模並列処理を可能とする種々のinnovationにより、高い実効性能を実現
Interconnection用回路をすべてSoCに内包
MPIに最適化したInterconnection回路自身での自律的な演算
Single Thred/Processorでoverheadを軽量化したnode kernel
最適化した回路設計により部品点数を最小化 -> 高い信頼性、保守性、面積効率を実現
すべての必要回路をSoCに内包(nodeの部品はProcessor SoCとDRAMのみ)
すべてのメモリアレイ、バスをECC、parity、またはCRCで保護
BlueGeneシステムのご紹介
© 2006 IBM Corporation9 2006/2/7
システム構成
NodeDual Processor
Compute Card2 chips, 1x2x1
Node Card(32 chips 4x4x2)
16 compute, 0-2 IO cards
Rack
32 Node Cards
Cabled 8x8x16
System64 Racks, 64x32x32
5.6/11.2 GF/s1.0 GB
90/180 GF/s16 GB
2.8/5.6 TF/s512 GB
180/360 TF/s32 TB
2.8/5.6 GF/s512 MB
BlueGeneシステムのご紹介
© 2006 IBM Corporation10 2006/2/7
Gbit EthernetFile I/O and Host Interface
3 Dimensional TorusPoint-to-point 1.4Gbit/link (2.1GByte/node)
Collective Network
Global Operations2.8 Gbit/link (2.1 GByte/node)
Global Barriers and Interrupts
Low Latency Barriers and Interrupts
Control Network Boot, Monitoring and Diagnostics
BlueGene Five Independent Networks
大規模並列処理を効率的に実行するための種々のInterconnectionを内包
Interconnection自身の自
律的な演算機能により、プロセッサ負荷を低減
高いバンド幅と低い遅延時間の実現
すべての回路をプロセッサチップにインテグレート
BlueGeneシステムのご紹介
© 2006 IBM Corporation11 2006/2/7
BlueGene Compute System-on-a-Chip ASIC
PLB (4:1)
“Double FPU”
Ethernet Gbit
JTAGAccess
144 bit wide DDR256MB
JTAG
Gbit Ethernet
440 CPU
440 CPUI/O proc
L2
L2
MultiportedSharedSRAM Buffer
Torus
DDR Control with ECC
SharedL3 directoryfor EDRAM
Includes ECC
4MB EDRAM
L3 CacheorMemory
l
6 out and6 in, each at 1.4 Gbit/s link
256
256
1024+144 ECC256
128
128
32k/32k L1
32k/32k L1
2.7GB/s
22GB/s
11GB/s
“Double FPU”
5.5GB/s
5.5 GB/s
256
snoop
Tree
3 out and3 in, each at 2.8 Gbit/s link
GlobalInterrupt
4 global barriers orinterrupts
128
5.6GFpeaknode
電力/性能効率を 適化
する設計思想
クロック速度を抑えて、単位熱量に実装できるプロセッサの数を 大化
->集合体としての性能を 大化
大規模数値計算に必要となる浮動小数点演算の性能を 適化する設計
MPIプログラムに 適化
した設計
専用トーラスIF
専用グローバルコレクションIF
BlueGeneシステムのご紹介
© 2006 IBM Corporation12 2006/2/7
BlueGene Chip Design CharacteristicsIBM Cu-11 0.13µ CMOSASIC process technology 11 x 11 mm die size 95M transistors1.5/2.5V12.9WCBGA package, 474 pins
BlueGeneシステムのご紹介
© 2006 IBM Corporation13 2006/2/7
Double FPU architecture
14
数値計算に 適化した演算器構造
単純なSIMDではできない種々の多重演算を実現 (SIMOMD)
特に、複素数演算に効果的
チップあたり、クロック周波数 (GHz) x 2 x 2 x 2 flopsを実現
•並列演算(parallel)•クロス演算(cross)•クロスコピー演算(replicated)•非対称クロスコピー演算(asymmetric)•複素演算(complex)
BlueGeneシステムのご紹介
© 2006 IBM Corporation14 2006/2/7
簡便な構成ながらバランスのとれたメモリ階層
512MB or 1GB/node2MBx2, 8way/bank2KB, Full Assoc.
32KB(I), 32KB(D), 64way
Capacity,
Associativity, etc.
Latency (cycles)
Memory Type
86Main memory
28/36/40L3 cache11L2 cache
3L1 cache
L2 cache LockboxPPC440
L2 cachePPC440
PU0
PU1L3 Cache
SRAM
DDRInterface
TestInterface(JTAG)
256
12864
256 128+16
2351TB maximumMemory
8736MB, 256B line, 12-way, LRUL3 Cache
131.92MB, 128B line, 10-way, LRUL2 Cache
232KB, 4-way, LRUL1 D-Cache
164KB, 2-way, LRUL1 I-Cache
1120 eachGPR, FPR
Latency (cycles)
Capacity, Associativity, etc.
Blue Gene Power 5 (ref.)
BlueGeneシステムのご紹介
© 2006 IBM Corporation15 2006/2/7
BlueGene System Softwareの特徴
MPI message passing programmingモデルで実行されます。
システム全体は複数のパーティションに動的に分割され、各パーティションで1つのジョブが実行されます。
– 32-nodeが 小パーティション (この場合は、3D-mesh、open torus)
– Torusの 小単位は、512-node
時分割でなく完全な空間分割で動作します。
– one parallel job (user) per partition of machine
– one process per processor of compute node
Compute Nodeは2つの動作モードのどちらかで利用されます。
– co-processor mode• compute processor + communication off-load engine
– virtual node mode• symmetric processors
BlueGeneシステムのご紹介
© 2006 IBM Corporation16 2006/2/7
Blue Gene設置状況
15 Clients 106 Racks
Client Sites
IBM Sites
BlueGeneシステムのご紹介
© 2006 IBM Corporation17 2006/2/7
多くのアプリの開発が進んでいます (代表例)N-body simulation
Classical molecular dynamics: AMBER8, Blue Matter, ddcMD, DL_POLY, GRASP, GROMACS,LAMMPS, LJ, MDCASK, NAMD, PRIME (Schrodinger), SPaSMQuantum molecular dynamics: CHARMm, CPMD, FEQMD, GAMESS-UK, GAMESS-US, Gaussian, NWChem, Qbox, QMCPlasma Physics: TBLE
Complex multiphysics codeComputational Fluid Dynamics: ALE-AMR, CTH, FLUENT, Miranda, Overflow, POP (Ocean), Raptor, SAGE, sPPM, STAR-CD, Climatology: CCSM, HOMME, IFS (ECMWF) Weather: MM5 Electromagnetics: FDTD codeFinite element analysis: HPCMW (RIST), NASTRAN Car Crash: LS-Dyna, PAM-Crash (ESI), Radiative transport: 2-D SPHOT, 3-D UMT2000Neutron transport :Sweep3D
Life Sciences and Biotechnology: mpiBLAST, Smith-Waterman, hemodynamicsCAD/CAE: AVBP Crystallography with X-Ray Diffraction: Shake & BakeDrug Screening: OpenEye Scientific Software, Tripos, MOE (CCG: Chemical Computing Group)Finance: NIWS (Nissei)Materials: LSMSQuantum Chromodynamics: IBM, Boston University, KEK
BlueGeneシステムのご紹介
© 2006 IBM Corporation18 2006/2/7
Blue Geneにおけるアプリケーション開発
日本アイ・ビー・エム株式会社東京基礎研究所
土井 淳
BlueGeneシステムのご紹介
© 2006 IBM Corporation19 2006/2/7
Blue Geneにポーティング可能なアプリケーション
MPIを利用して並列化された分散メモリ向けのアプリケーション
– SMP並列化はサポートされていません
– MPICH2ベース
シングルスレッドのアプリケーション
512MBの主記憶に入る大きさのアプリケーション
– 必要に応じて配列の分割等を行う必要があります
– 仮想ノードモードでは各CPU256MBまでになります
FORTRAN/C/C++で書かれたアプリケーション
– IBM XL compiler for FORTRAN version 9.1(XLF)– IBM XL compiler for C/C++ version 7.0 (XLC)– GNU compiler (gcc, g++, g77 等)
BlueGeneシステムのご紹介
© 2006 IBM Corporation20 2006/2/7
Blue Geneの計算ノード間通信
CPU0CPU1
トーラス通信網 格子状に並べた計算ノード間を相互に結合
物理的に格子の端は反対の端と接続されます
XYZの3軸方向,計6方向に双方向に通信
それぞれ1.4Gbpsで同時に通信可能
H/Wによりパケットの経路が決定CPUをブロックしません
仮想ノードモードではCPU間で4次元目の通信
ツリー通信網
計算ノードの集合をツリー上のネットワークで接続
ツリーのH/Wで四則,論理演算を行います
MPI_AllReduceやIOで利用されます
1ラックで10段 4ラックで12段 64ラックで16段
1.6倍の通信時間の増加で済む
BlueGeneシステムのご紹介
© 2006 IBM Corporation21 2006/2/7
Blue Geneのトーラス通信網
3次元の格子状に8x8x8個並べ隣り合う計算ノード
を双方向に接続
両端同士も双方向で接続する:3次元トーラス接続
X
0 21 3 4 5 6 78 9 10 11 12
1624
1523
63
64
56
128
511
448
57 62
Y
Z
504
455
2つ重ねた状態が
Blue Gene1筐体
8x8x16 の3次元トーラス
全体で2048CPU
= 5.6TFLOPS
MPIランクはデフォルトでXYZの順
仮想ノードモードのときCPU間通信をT方向としてXYZT
実行時にマッピング変更できます
マッピングを 適化することでパフォーマンスを上げることができます
BlueGeneシステムのご紹介
© 2006 IBM Corporation22 2006/2/7
ダブルFPU拡張された命令セット
– PowerPC浮動小数点数演算命
令の拡張
• 1命令で2つのデータを処理します
2つのFPUと2つのレジスタファイル
– 2つのFPUで同じ命令が動作
– プライマリFPU– セカンダリFPU と呼びます
• 別々の命令を同時に実行することはできません
– 32個の倍精度浮動小数点レジスタが2組
– プライマリレジスタファイル
– セカンダリレジスタファイル と呼びます
プライマリレジスタファイル
FR0~FR31
MUL
ADD
CA B S
セカンダリレジスタファイル
FR32~FR63
MUL
ADD
CA B S
2つの浮動小数点数をロード
2つの浮動小数点数をストア
BlueGeneシステムのご紹介
© 2006 IBM Corporation23 2006/2/7
ダブルFPUのための並列ロード/ストア命令
2つのレジスタファイルに対して2つの数値を同時にロード/ストアできます
– 配列内に連続する2つの数値を対になる2つのレジスタにロードします
– 対になる2つのレジスタから2つの数値を連続する配列にストアします
倍精度浮動小数点数に変換してロードできます
– 単精度浮動小数点数を変換してロードします
– 単精度浮動小数点数,整数に対してストアする命令もあります
(注:別途丸めのための命令があります)
A(1) A(2) A(3) A(n)・・・
REAL*8 A(n) LOADFP A(1),0
A(1) A(2)FR0 FR32
A(1) A(2) A(3) FR4 FR36
STOREFP A(3),4
A(4) A(n)・・・
Re(B(1)) Im(B(1)) Re(B(2)) Im(B(n))・・・
COMPLEX*16 B(n) LOADFP B(1),1Re(B(1)) Im(B(1))FR1 FR33
BlueGeneシステムのご紹介
© 2006 IBM Corporation24 2006/2/7
ダブルFPUによる複素数演算の例
虚数iの乗算:Z =Y + i * X
FXPMUL (Z,X,Y)
FXCXNPMA (Z,X,Y,Z)
re(Z)=re(X)*re(Y)
im(Z)=re(X)*im(Y)
re(Z)+=-im(X)*im(Y)
im(Z)+=im(X)*re(Y)
Xの実数部をYに掛ける命令
Xの虚数部を,実虚入れ替えたYに掛ける命令
共役複素数と複素数の乗算:Z = conj(X) * Y
FXPMUL (Z,X,Y)
FXCXNSMA (Z,X,Y,Z)
re(Z)=re(X)*re(Y)
im(Z)=re(X)*im(Y)
re(Z)+=im(X)*im(Y)
im(Z)+=-im(X)*re(Y)
COMPLEX*16 unit(0.0D0,1.0D0)
FXCXNPMA (Z,unit,X,Y)re(Z)=re(Y) - im(X)
im(Z)=im(Y) + re(X)
複素数の乗算:Z = X * Y
実虚入れ替えたXに1を掛けて実数部の符号を反転してYに足す
BlueGeneシステムのご紹介
© 2006 IBM Corporation25 2006/2/7
複素数演算にダブルFPUを用いるには
複素数型のデータを用います
– COMPLEX*16 A(N) のように実部,虚部が連続する配列
– REAL*8 B(2,N)でもメモリ内のデータ定義は同じですがダブルFPU命令が出にくい
– REAL*8 CR(N),CI(N) のように実部,虚部を別々の配列にしてしまうと並列ロード/ストアが使えないのでパフォーマンスが落ちます
XL Compilerで 適化オプションを設定してコンパイルします
– 複素数型で定義すれば多くの場面でダブルFPU命令が使われます
– 実数型でも偶数でアンロールできるループならダブルFPU命令が使える可能性があります
自分で望みのダブルFPU命令を使う
– XL CompilerにはダブルFPU命令のintrinsic関数が用意されています
• 命令のスケジューリングやレジスタの割り当てなどはコンパイラに任せます
– gnuのコンパイラを使えばインラインアセンブラが使えます
BlueGeneシステムのご紹介
© 2006 IBM Corporation26 2006/2/7
KEK様導入システム仕様概要
日本アイ・ビー・エム株式会社ITサービス事業
大坪 満典
BlueGeneシステムのご紹介
© 2006 IBM Corporation27 2006/2/7
ssh2のみ
システムB構成概要図
SC-room-LAN
機構LAN
機構DMZ
SC-DMZ
SC-net
Functional-net
FireWall
SC
FireWall
サービスノード 0
サービスノード 1
サービスノード 2
フロントエンド0scfeb1
フロントエンド 2scfeb3
Blue Gene #2 “Ume”(ラック9, 10: 2048nodes)
Blue Gene #1 “Momo”(ラック5,6,7,8: 4096nodes)
Blue Gene #0 “Sakura”(ラック1,2,3,4: 4096nodes)
InternetInternet
Service-net
Service-net
Service-netシステムB
ウェブサーバ
高速アクセス用ディスクB(16TB)
・ホームディレクトリー(0.5TB)
・ワークディレクトリー(15.5TB)
フロントエンド1scfeb2
BlueGeneシステムのご紹介
© 2006 IBM Corporation28 2006/2/7
システムBジョブ実行環境概要図
FunctionalNet
qb128a
qb128b
qb128c
qb512a
qb1024c
qb1024b
qb512e
qb512c
BlueGene #2 “Ume”
qb1024e
qb1024d
qb512i
qb512g
BlueGene #1 “Momo”
BlueGene #0 “Sakura”qb
512h
qb512f
qb1024a
qb512d
qb512b
フロントエンド0scfeb1
フロントエンド1scfeb2
フロントエンド2scfeb3
qb32s
qb32b
qb32c
qb32a
・ホームディレクトリー
・ワークディレクトリー
BlueGeneシステムのご紹介
© 2006 IBM Corporation29 2006/2/7
システムB環境概要
LoadLevelerラッパー(内部的にLoadLeveler for BlueGeneを
使用)
スケジューラー
メールで通知ジョブ実行開始と終了の通知
一日一回メールもしくはファイルにて通知ジョブの性能情報通知
MPICHMPIライブラリー
XL C/C++ Advanced Edtion for Linux V7.0
XL Fortran Advanced Edition for Linux V9.1
コンパイラー
SUSE LinuxフロントエンドのOS
項目概要環境項目
BlueGeneシステムのご紹介
© 2006 IBM Corporation30 2006/2/7
システムBジョブクラス(キュー)概要
12時間
12時間
8時間
4時間
10分
最大実行
時間
Torus(16x8x8), Tree5(q1024a-e)1024L
Torus(8x8x8), Tree9(q512a-i)512M
Mesh(8x4x4), Tree3(q128a-c)128S
Mesh(4x4x2), Tree3(q32a-c)32SS
Mesh(4x4x2), Tree1(q32s)32テスト
ネットワークジョブクラス
(キュー)数
ノード数ジョブ
グループ
(仮称)
2005年度 KEK 大型シミュレーション研究ワークショップ
2006/2/7 © 2006 IBM Corporation
ありがとうございました!