Xeonデュアルコアプロセッサでの
ハイパフォーマンスの実現について
スケーラブルシステムズ株式会社 スケーラブルシステムズ株式会社ご説明の内容について
• HPCシステムの発展とトレンド
– Proprietary .vs. COTS – 64ビットコンピューティング – マルチコアプロセッサ• プログラム最適化と開発環境に関する
トピックス
– コンパイラ技術と開発ツール – クラスタ環境 – 共有メモリプログラミング• まとめとして
– 標準コンポーネントによるHPCの進化 スケーラブルシステムズ株式会社ご説明の内容について
• HPCシステムの発展とトレンド
– Proprietary .vs. COTS – 64ビットコンピューティング – マルチコアプロセッサ• プログラム最適化と開発環境に関する
トピックス
– コンパイラ技術と開発ツール – クラスタ環境 – 共有メモリプログラミング• まとめとして
– 標準コンポーネントによるHPCの進化 スケーラブルシステムズ株式会社HPCシステムの構築コンポーネント
COTS COTS proprietary proprietary Memory COTS proprietary proprietary proprietary Motherboard COTS proprietary proprietary proprietary OS,SW Tools COTS proprietary proprietary proprietary Interconnect COTS COTS proprietary proprietary Processor 2000s 1990s 1980s 1970s HPC Systems 2000s 1990s 1980s 1970s 1960s proprietary : 独自開発 COTS: 一般商用もしくは標準品スケーラブルシステムズ株式会社
TOP500でのプロセッサアーキテクチャ
ベクトル計算機の凋落 商用プロセッサの台頭 MPP : CPUは商用製品 を利用し、システムやOS は独自開発 ベクトル計算機 : CPU、 システムやOSは全て独 自開発 クラスタ : CPU、システム やOSの全てが、商用もし くはオープンソース スケーラブルシステムズ株式会社 AMD64とEM64Tは、同じレジスタセットを利用し、ほぼ同一の 命令セットを利用しています。 互換性に関しては、OSとコンパイラが双方の違いを認識できる ため、ユーザ(アプリケーション)については、その差を意識する 必要はありません。64-Bit 拡張アーキテクチャ
x64 (Microsoft’s term for x86 64-bit extensions) Microsoft
EM64T (Extended Memory 64-bit Technology) Intel AMD64 AMD 各社の呼び方 スケーラブルシステムズ株式会社
32-Bitと64-Bit モード
User Kernel Application Operating System Drivers 完全な64-bit 環境 64-bit 64-bit 64-bit Native 64 Native 64--bitbitユーザは、64-bit環境 に互換性を維持しなが ら、性能を損なうことな く移行可能 64-bit 64-bit 32-bit Compatibility Compatibility 既存のSW インフラストラクチャ 32-bit 32-bit 32-bit Legacy Legacy Long Mode Legacy Mode スケーラブルシステムズ株式会社
x86-64環境の発展
スケーラビリティ(Scalability) 利 用可能なアプ リ ケ ー シ ョン数 32-bit x86x86
x86
-
-
64
64
64-bit IPF 1) 32-bit アプリケーション資産の 活用が可能 2) より容易でスムーズ64-bit 計算 環境への移行が可能 64-bit x86 は、今後の64ビット計算環 境における標準となることが予想されま す。その理由は…スケーラブルシステムズ株式会社
SuSE Red Hat Microsoft
Linux Enterprise Server 9 Enterprise Linux v.4 Windows Server 2003 x64
x86-64 OS サポート
• x86-64が最初に活用されたのは、RISCマイクロプ
ロセッサとUNIXが活用されていた分野でしたが、
現在ではより広範囲なマーケットでの活用がなされ
てきています….
スケーラブルシステムズ株式会社OSサポートの時間軸
1980 1985 1990 1995 2000 2005 ‘386 Opteron Win NT 3.1 Win 95 CPU OS 8+ years 16-bitから32-bit への移行 1-2 years 32-bit から 64-bit への移行 32ビットから64ビットへの移行は、以前の16ビットから32ビットへの移行と 比較しても遥かに短時間で実現されています….. Xeon/EM64T スケーラブルシステムズ株式会社マイクロアーキテクチャのSカーブ
101 102 103 104 105 106 MIPS 1980 1985 1990 1995 2000 2005 2010 Pentium Architecture Super ScalarPentium Pro Architecture
Speculative Out-of-Order
Pentium 4 Architecture
Trace Cache
Pentium 4 and Xeon Architecture with HT Multi-Threaded Multi-Threaded, Multi-Core Era of Instruction Parallelism Era of Thread Parallelism
Johan De Gelas, Quest for More Processing Power, AnandTech, Feb. 8, 2005. http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2343 スケーラブルシステムズ株式会社
新たな次元でのプロセッサ開発
動作周波数 マイクロアーキテクチャ キャッシュサイズ マルチコアプロセッサの性能向上のための選択肢が広がる
価格性能比の向上を違った次元で提供可能
技術的な利点と‘マーケティング’の要求
より柔 軟なプ ロセッサ 開発 とテクノ より柔 軟なプ ロセッサ 開発 とテクノ ロジの 導入 ロジの 導入スケーラブルシステムズ株式会社 Big Core
1
2
3
4
1
2
1
1
Core 31
2
3
4
1
2
3
4
Core 1 Core 2 Core 4 Small Coreマルチコアによって、‘Performance/Watt’が改善
Cache Cache Shared Cache Power Performance Power ~ コアサイズ PERFORMANCE ~ √コアサイズ スケーラブルシステムズ株式会社性能向上の加速
• 過去のx86プロセッサの性能
向上は、年率15% - 30%
• 2005年に多くのデュアルコア
プロセッサが製品化された
• 今後の予測として、年率50%
以上の性能向上
• 2007年以降は、デュアルコア
以上の構成の製品も一般化
• ソフトウエアの挑戦?
– マルチスレッド
– 利用技術
– 適用分野
2000 2002 2004 2006 2008 2010 performance x86 CPU 性能の変遷(予測) 過去の歴史からの性能 向上予測 予想される性 能向上 デュアルコア マルチコア Source: HP スケーラブルシステムズ株式会社並列処理の重要性
3 GH z 6GH z 12GH z 24GH z3GHz, 2Cores 3GHz, 4Cores 3GHz, 8Cores
2 Cores 4 Cores 8 Cores 1 Core 並列実行することで、性能向上が可能となる 何もしないでもクロ ッ クアップにより性能が向上する (18 ヶ月毎にクロックが 2 倍になり性能も 2 倍) ユーザは何もしなくても、18ヶ月に2倍の性 能向上が得られた状況から、クロック向上 による性能向上はそれほど期待出来ない 状況に対応する必要がある スケーラブルシステムズ株式会社
ムーアの法則(GHz から MC へ)
マルチコアによる性能向 上 マルチコアによる性能向 上 動作周波数の向上によ る性能向上 動作周波数の向上によ る性能向上性能
2005• マルチスレッド
• マルチタスク
• トレーニング
• ツール
•…….
ムーアの法則に沿っ
たし性能向上を図る
ためには、マルチコア
の技術の最大限の活
用が必須となります。
MultiCore
スケーラブルシステムズ株式会社
マルチコアプロセッサ
• スレッド – シングルプロセス • 並行実行 – 共有メモリとリソース – 明示的なスレッド、OpenMP インターコネクト・ネットワーク P P ・・・・・・・ P M ・・・・・・ ・ M M プロセッサ 実行 リソース AS プロセッサ 実行 リソース AS デュアルコアプロセッサ スケーラブルシステムズ株式会社様々なマルチコアの可能性
コア L1C L2C コア L1C L2C コア L1C L2C コア L1C L2C コア L1C コア L1C L2C コア L1C コア L1C コア L1C コア L1C L2C コア L1C コア L1C コア L1C スケーラブルシステムズ株式会社Intel Xeon デュアルコア
シングルコア デュアルコア Execution Core Cache Bus I/F Multi-Chip Module 2つのダイ をソケット に搭載 (MCM) シングルのダイ上に独立し たプロセッサを実装 シングルダイとシングルI/F Execution Core Cache Bus I/F Standard package Execution Core Execution Core Cache Bus I/F Standard package Execution Core Cache Cache Bus I/F Execution Core Cache Bus I/F Execution Core Cache Bus I/F Source: Intel,Source: Intel, ““Dual Core ArchitectureDual Core Architecture””Spring 2005 IDFSpring 2005 IDF
デュアルコアの実装方法には様々な方法や方式が考えられるが、ユーザからは、ほとん ど同じように利用可能です。ただ、それぞれの実装で最適化や並列化効率の改善には 違った方法が必要になります。 スケーラブルシステムズ株式会社
L2キャッシュ共有デュアルコアプロセッサ
Core 1 L2 Cache Bus I/F Core 2 L2 Cache Bus I/F Core 1 L2 Cache Bus I/F Core 2 FSBMain Memory Main Memory
Inte Core マイクロアーキテクチャでの L2キャッシュの共有 各プロセッサコアが独立して L2キャッシュを持った場合 各コアのキャッシュの利用容量は動的に 割り当てられる(より柔軟で、効率の良い キャッシュの利用が可能で、キャッシュヒッ ト率の向上が可能) 共有データへのアクセスが 効率化され、バスバンド幅 の維持が可能 また、データアクセスのレイ テンシの向上も可能 Intel Core マイクロアーキテクチャ
スケーラブルシステムズ株式会社
IDFでのマルチコアのデモ
Woodcrest Clovertown Depmsey 同じDell製サーバ に、3世代のマルチ コアプロセッサを実 装し、デモを行って いました。 スケーラブルシステムズ株式会社ご説明の内容について
• HPCシステムの発展とトレンド
– Proprietary.vs.COTS – 64ビットコンピューティング – マルチコアプロセッサ• プログラム最適化と開発環境に関する
トピックス
– コンパイラ技術と開発ツール – クラスタ環境 – 共有メモリプログラミング• まとめとして
– 標準コンポーネントによるHPCの進化 スケーラブルシステムズ株式会社コンピュータの並列処理
• ビットレベルでの並列処理
– 浮動小数点演算など
• 命令実行レベルでの並列処理
– クロックあたり複数の命令実行
• メモリシステム
– メモリオペレーションと計算のオ
ーバラップ
• OSの並列処理
– 複数のプロセス、スレッド、ジョブ
の同時実行
これらの全て
の並列処理を
効率よくスケジ
ューリングする
ことで、高い性
能を実現する
ことが可能
スケーラブルシステムズ株式会社並列性(Parallelism)の利用
マルチタスク処理 MPIなどによる複数のノード間 での並列処理 ユーザ及びコンパイラによるス レッドレベルでの並列処理 (TLP) コンパイラによる命列実行レベ ルでの並列処理(ILP) マルチコア マルチプロセッサ マルチノード マルチインストラクション システムスケーラブルシステムズ株式会社
並列性(Parallelism)の利用
Data-Level Parallelism (DLP) Time Time Thread-Level Parallelism (TLP) TimeInstruction-Level Parallelism (ILP) Pipelining
Time
スケーラブルシステムズ株式会社
コンパイラのパフォーマンススイッチ
インテルコンパイラのコンパイラオプション
-O1, -O2, -O3 /Qip,-ip /Qipo, -ipo
/Qipo_wp, -wp_ipo /G2 –g2 /Oa, -fno_alias /Qprof_gen, -prof_gen /Qprof_use,-prof_use プロシージャ間最適化 プロセッサ固有の最適化とメモリ 参照に関する最適化 プロフ ァイル に基 づく最 適化 一般的な最適化 スケーラブルシステムズ株式会社
インテルコンパイラでの最適化オプション
-QxP -QxB -QxN -QxW -QxK WindowsHT テクノロジ インテル Pentium 4 プロセッサ (SSE3 対応)。関数 main() がこ のオプションを使用してコンパイルされると、プログラムは互換性のないプロセッサ を検出して、実行時にエラー・メッセージを出力します。このオプションは、インテル ・プロセッサ固有の最適化に加えて新しい最適化も有効にします。 -xP インテル Pentium M プロセッサおよび互換性のあるインテル・プロセッサ。関数 main() がこのオプションを使用してコンパイルされると、プログラムは互換性のな いプロセッサを検出して、実行時にエラー・メッセージを出力します。このオプション は、インテル・プロセッサ固有の最適化に加えて新しい最適化も有効にします。 -xB インテル Pentium 4 プロセッサおよび互換性のあるインテル・プロセッサ。関数 main() がこのオプションを使用してコンパイルされると、プログラムは互換性のな いプロセッサを検出して、実行時にエラー・メッセージを出力します。このオプション は、インテル・プロセッサ固有の最適化に加えて新しい最適化も有効にします。 -xN インテル Pentium 4 プロセッサおよび互換性のあるインテル・プロセッサ。 -xW インテル® Pentium® III プロセッサおよび互換性のあるインテル・プロセッサ。 -xK 最適化の対象 Linux スケーラブルシステムズ株式会社
インテルコンパイラでの最適化オプション
/O3 /O1 /Od /O2 Windows このオプションは、ランタイム・パフォーマンスを向上させる最適化機能一式 をすべて有効にする。次のオプションが指定される。 -O3 -ipo –static -fast -O2より進んだ最適化を行う。それに加えてプリフェッチ,スカラ置換,ループ 変換,およびメモリのアクセス変換のような,さらに強力な最適化も有効とな る。-x{W|N|B|P}オプションと同時に指定した場合、コンパイラは、さらに強 力な最適化(とベクトル化)の適用を行う。 -O3 さらに高度な最適化を実行する。ほとんどの最適化機能が有効になる。 -O2 コード・サイズ削減と実行速度向上を目指す最適化を実行する。最適化は、 局所的なレベルでの適用になる。殆どの場合、-O1よりも-O2が推奨される 。 -O1 最適化を行わない -O0 -O2と同じ -O 説明 Linuxスケーラブルシステムズ株式会社 ソース コード コンパイル リンク 実行 出力
開発環境
インテル インテル パフォ パフォーーマンスマンス ライブラリ ライブラリーー • •インテルインテルC++ C++ コンパイラコンパイラ • •インテルインテルFortran Fortran コンパイラコンパイラ • •インテルインテルクラスタ・クラスタ・ツールツール・キット・キット • •VTuneVTune性能アナライザ性能アナライザ • •インテルインテルスレッド化・ツールスレッド化・ツール • •インテルインテルトレース・コレクタトレース・コレクタ インテルプロセッサを搭載したシステムでの最高性能の実現 スケーラブルシステムズ株式会社並列アプリケーションの開発サイクル
シリアル
(シングルスレッド)と並列の性能の
問題は異なるため、異なるツールが必要になります
シリアル部分 パラレル部分 最適化されたシリアルコード VTune コンパイラー 最適化されたパラレルコード トレースアナライザ トレースコレクタ 最適化されていないパラレルコード 最適化されていないシリアルコード スケーラブルシステムズ株式会社ループのベクトル化処理
• プログラム例:
for (I=0;I<=MAX;I++) C[I]=A[I]+B[I];• 利用方法:
(Linux) -[a]xN, -[a]xB, -[a]xP (Windows) -Q[a]xN, -Q[a]xB, -Q[a]xP
128-bit Registers A[3] A[2] B[3] B[2] C[3] C[2] + + A[1] A[0] B[1] B[0] C[1] C[0] + + スケーラブルシステムズ株式会社
SIMD: Single Instruction, Multiple Data
スカラー処理
• 一般的な処理
• 一つの命令で一つの計算
結果
SIMD 処理
• SSE / SSE2 / SSE3
• 一つの命令実行で複数の
計算結果
+
X Y X + Y+
x3 x2 x1 x0 y3 y2 y1 y0x3+y3 x2+y2 x1+y1 x0+y0
X
Y
スケーラブルシステムズ株式会社
SIMDデータタイプ
16x bytes 8x words 4x dwords 2x qwords 1x dqword 4x floats 2x doubles• 16バイト単位でのデータ格納
スケーラブルシステムズ株式会社各社のSIMD拡張への取り組み
8x128 24 (fp) 99 E 3DNow! AMD 01 ? 98 98 98 97 95 94,95 Year 8x128 144 (int,fp) SSE2 Intel FP 32x64b 23 (fp) MIPS-3D MIPS 8x128b 70 (fp) SSE Intel 32x128b 162 (int,fp) Altivec Motorola FP 8x64b 21 (fp) 3DNow! AMD FP 8x64b 57 (int) MMX Intel FP 32x64b 121 (int) VIS Sun Int 32x64b 9,8 (int) MAX-1 and 2 HP Registers # Instr Extension Vendor スケーラブルシステムズ株式会社x86プロセッサでのSIMD演算
• 現在のx86プロセッサは、全てSIMD演算をサポー
ト
– データ型変換と飽和データ型変換
– 飽和算術演算(Saturation arithmetic)
– クリッピング(Clipping)
– 平均(AVG)及び絶対値(ABS)の計算
• Intelコンパイラは、プログラムを解析し、SIMD演算
のためのベクトル化を行う
– 単なるパターン認識ではなく、プログラムフローを解析し
てのベクトル化の適用
スケーラブルシステムズ株式会社飽和(Saturation)とクリッピング(Clipping)
イディオム(Idiom*)
unsigned char a[256], b[256];..
for (i = 0; i < 256; i++) { int x = (a[i] < 200) ? a[i]+55 : 255; if (x > b[i]) b[i] = x;}
.B1.11 ; xmm1 is preloaded with |55,..,55|
movdqa xmm0, XMMWORD PTR[eax+ecx]
paddusb xmm0, xmm1 ; (saturate)
pmaxub xmm0, XMMWORD PTR[ecx+ebp] ; (clipping)
movdqa XMMWORD PTR[ecx+ebp], xmm0
add ecx, 16 cmp ecx, esi jl .B1.11 Intelコンパイラは、自動的にこのような変 換を行い、ベクトル化を行う イディオム(Idiom) : 言語に依存する慣 用表現で、プログラムパターン
スケーラブルシステムズ株式会社
ベクトル化が可能な条件
• 各ループの反復実行が独立であることが必要
– 各反復計算時のループ内の変数の参照に相互依存(依
存性)がないことが必要
• 以下の条件はベクトル化を阻害:
– ループ内での関数の呼び出し
– ループ内での条件分岐(ベクトル化可能な場合もある)
– ループ・カウンターがループ実行時に決定している
– データ・タイプが異なる演算
など
Intel, Pentium, and the Intel logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States or other countries. スケーラブルシステムズ株式会社
ベクトル化出来ない理由は?
Linux
Windows
-vec_reportn
-Qvec_reportn
標準出力にベクトル化に関する診断を出力(これらの
情報を参考にベクトル化の検討も可能)
n=0: 診断メッセージの出力なし
n=1: (省略時) ベクトル化されたループを示す
n=2: ベクトル化出来なかったループを示す
n=3: これらに加えて、ベクトル化出来なかった理由を
出力する
Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries.
スケーラブルシステムズ株式会社
ベクトル化診断メッセージの例(阻害時)
• “Mixed Data Types”• “Nonunit stride used” • “Condition too Complex”
• “Condition may protect exception”
• "vectorization possible but seems inefficient" • “Low trip count”
• “Operator unsuited for vectorization” • “Subscript too complex”
• ‘Unsupported Loop Structure” • “Existence of vector dependence” • “Complex subscript expression”
• “Contains unvectorizable statement at line XX” • “Not Inner Loop”
など
Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its
subsidiaries in the United States or other countries. スケーラブルシステムズ株式会社
ベクトル化・最適化による性能向上
Livermore Fortran Kernel
0 500 1000 1500 2000 2500 3000 3500 4000 4 19 8 2 17 13 16 10 9 6 15 20 21 24 18 22 1 14 23 7 12 5 3 11
Livermore Fortran Kernels
MF L O P S 0 1 2 3 4 5 6 S p eed U P s -O3 -O3 -xP 3.2GHz Processor ベクトル化ループ
スケーラブルシステムズ株式会社
ベクトル化・最適化による性能向上
Livermore Fortran Kernel
kernel.f(324) : (col. 9) remark: LOOP WAS VECTORIZED. 318
c******************************************************************************* 319 c*** KERNEL 7 EQUATION OF STATE FRAGMENT
320 c******************************************************************************* 321 c 322 c 323 cdir$ ivdep 324 1007 DO 7 k= 1,n 325 X(k)= U(k ) + R*( Z(k ) + R*Y(k )) + 326 1 T*( U(k+3) + R*( U(k+2) + R*U(k+1)) + 327 2 T*( U(k+6) + Q*( U(k+5) + Q*U(k+4)))) 328 7 CONTINUE
kernel.f(263) : (col. 9) remark: LOOP WAS VECTORIZED. 257
c******************************************************************************* 258 c*** KERNEL 3 INNER PRODUCT
259 c******************************************************************************* 260 c 261 c 262 1003 Q= 0.000d0 263 DO 3 k= 1,n 264 3 Q= Q + Z(k) * X(k) -vec_reportオプショ ンで各ループのベク トル化の可否を知る ことが出来ます。 KERNEL 3 、7とコ ンパイラによってベ クトル化され、-xPオ プションでより高速 な実行も可能となっ ています。 スケーラブルシステムズ株式会社
ベクトル化・最適化による性能向上
NAS Kernelベンチマーク
0 500 1000 1500 2000 2500 3000 3500 4000MXM CFFT2D CHOLSKY BTRIX GMTRY EMIT VPENTA
-O3 -O3 -xP -O3 -xP -ipo
3.2GHz Processor 2.3X 4.6X スケーラブルシステムズ株式会社
ベクトル化・最適化による性能向上
NAS Kernelベンチマーク
mxm.f(10) : (col. 11) remark: LOOP WAS VECTORIZED. mxm.f(15) : (col. 13) remark: LOOP WAS VECTORIZED.
9 DO 100 K = 1, N 10 DO 100 I = 1, L 11 C(I,K) = 0. 12 100 CONTINUE 13 DO 110 J = 1, M, 4 14 DO 110 K = 1, N 15 DO 110 I = 1, L
16 C(I,K) = C(I,K) + A(I,J) * B(J,K) 17 $ + A(I,J+1) * B(J+1,K) + A(I,J+2) * B(J+2,K) 18 $ + A(I,J+3) * B(J+3,K)
19 110 CONTINUE
High Level Optimizer Report for: vpenta_
#of Array Refs Scalar Replaced in vpenta_ at line 38=10 #of Array Refs Scalar Replaced in vpenta_ at line 64=9 #of Array Refs Scalar Replaced in vpenta_ at line 87=6 LOOP INTERCHANGE in loops at line: 85 87 Loopnest permutation ( 1 2 ) --> ( 2 1 ) Fusion loop partitions: (loop line numbers) Fused Loops: ( 64 76 ) 85 DO 4 J = 2,JU-JL 86 JX = JU-J 87 DO 15 K = KL,KU 88 F(JX,K,1) = F(JX,K,1) X(JX,K)*F(JX+1,K,1) -89 * Y(JX,K)*F(JX+2,K,1) 90 F(JX,K,2) = F(JX,K,2) X(JX,K)*F(JX+1,K,2) -91 * Y(JX,K)*F(JX+2,K,2) 92 F(JX,K,3) = F(JX,K,3) X(JX,K)*F(JX+1,K,3) -93 * Y(JX,K)*F(JX+2,K,3) 94 15 CONTINUE 95 4 CONTINU カーネルMXMについては、主要 ループがベクトル化されよりSSE 命令での高速実行が可能 カーネルVPENTAについては、 ループの順番を入れ替えることで、 より効率的なデータアクセスが可 能となります。 スケーラブルシステムズ株式会社
次期インテルプロセッサでのSSE実行
X1 X2 X3 X4 Y1 Y2 Y3 Y4 X1opY1 X2opY2 X3opY3 X4opY4 X3opY3 X4opY4 X1opY1 X2opY2 Source SSE/2/3 Dest CLOCK CYCLE 1 CLOCK CYCLE 1 CLOCK CYCLE 2Intel Core Microarchitecture
NetBurst
スケーラブルシステムズ株式会社
VTune Analyzer 8.0 for Linux
• Eclipse 3.1への対応
• Itanium 2 プロセッサ上での Java Linux のサポート
• Call Graphの機能向上
– Multi-user call graph (vtserver)
– Read-Only filesystem callgraph (vtserver)
• CPUマスキングのサポート (sampling)
– Only gather data on some CPUs in MP systems
• CPU毎のバッファリングのサポート (sampling)
– More accurate for systems with >32 CPUs
• 4096 プロセッサまでのサンプリングをサポート
• ユーザビリティの向上
スケーラブルシステムズ株式会社Eclipse 3.1
Dynamic Help
Better performance
Eclipse* 3.1 on Linux32 systems w/ remotecollectors on the Intel®Itanium®
processor-based system スケーラブルシステムズ株式会社
• インテル マス・カーネル・ライブラリ (Intel MKL)
– 数学、科学、エンジニアリングおよび金融アプリケーション用に高 度に最適化された数値処理関数群 • 大規模な数値演算アプリケーションに最適 • ワークステーションとサーバー・プラットフォームにも対応• インテル インテグレーテッド・パフォーマンス・プリミティブ
(Intel IPP)
– 信号、イメージ、グラフィック、マルチメディアおよび数値処理関数 からなるライブラリー • リアルタイムおよびインタラクティブ・アプリケーション • クライアント (デスクトップ/モバイル/ハンドヘルド) からサーバーまでの 広範囲なプラットフォームをカバーインテル パフォーマンス・ライブラリ
スケーラブルシステムズ株式会社SciMark 2.0 ベンチマーク
Intel MKLとIntel IPP利用による最適化
0 500 1000 1500 2000 2500 3000 3500 4000 FFT SO R Mon teC arlo : Spar se LU FFT SO R Mon teC arlo : Spar se LU
-O3 -O3 -xP -fno-alias -O3 -xP -fno-alias (MKL/IPP利用時)
Small Size (Cache Only) Large Size (Cache Only)
20X
スケーラブルシステムズ株式会社 ● ● ● ● ● ● ● ● ● ● ● ● インテル Pentium 4 プ ロセッサ、インテル Xeon プロセッサ ● ● Rijndael、DES、TDES、SHA1、 MD5、RSA、DSA 暗号化 ● RDBMS エンジン、XML パーサ ストリング処理 ● 数値アルゴリズム ベクトル演算 ● 3D、トランスフォーム、ライティン グ、モデリング 行列処理 ● 認識、追跡、識別 コンピューター・ビジ ョン ● Dictate、Voice コマンド、インデ ックス 音声認識 ● ● G729、G.723、(G.722、GSM) 音声コーディング ● ● フィルタリング、検出、解析 信号処理 ● ● 圧縮、展開 JPEG ● ● フィルタリング、拡張、解析 イメージ処理 ● ● H.263、MPEG1、2、4 (H.26L) ビデオ処理 ● ● MP3、(AAC、AC3)、GSM-AMR オーディオ処理 インテル PCA ア プリケーション・プ ロセッサ インテル Itanium2 プロセ ッサ 主な使用法 関数ドメイン さまざまなアーキテクチャで共通の
インテル IPP の各機能
API スケーラブルシステムズ株式会社インテル クラスタ・ツールキット
ソフトウェアツール
• 標準的なMPI ライブラリ
• クラスタ向け科学技術ライ
ブラリ
• MPIアプリケーションの解
析
• クラスタとMPI関数のベン
チマーク
インテルからの提案
• インテル MPI ライブラリ
• インテル クラスタ MKL
• インテル トレースアナライ
ザー&コレクタ
• インテル MPI ベンチマー
ク
スケーラブルシステムズ株式会社クラスタシステムでの高い生産性
• インテル クラスタツールキットと
– インテル MPI ライブラリ – インテル トレースアナライザー&コレクタ – インテル クラスタ 数値演算ライブラリ – インテル MPI ベンチマーク• 並列アプリを開発するための最も効率的なツールを提供
• 性能の問題を明確にするための、開発ツールとプロファイ
リング・ツールから構成
• クラスタの利用率だけではなく、アプリの効率性や、ノード
間のロードバランスの状況を把握可能
スケーラブルシステムズ株式会社クラスタ環境に見られる性能問題
• MPI に依存
• MPIアプリの性能に影響を与える構成要素は様々あり、予
測や問題の切り分けはツールなしでは困難
– プラットフォーム:CPU、メモリー、OS – ネットワーク: インターコネクト、プロトコル – MPI:バッファリング、実装、同期処理• アプリに依存
– アルゴリズム自身の効率性とスケーラビリティ – 計算時間と通信時間の比 – ロードバランス – メッセージのサイズ – 使われるMPI関数:ブロッキング/ノンブロッキング、1対1/集団通 信インテル
®クラスタ・ツールはこれらの問題を解決!
スケーラブルシステムズ株式会社
インテル MPI ライブラリ とは?
• 切り替え可能なマルチファブリックのサポート
• アルゴンヌ国立研究所のMPICH2をベース
• 簡単なインストールと設定
• 商用アプリとしてのサポート
• 開発とQA試験のコストを軽減
• 生産性、機能性の向上
サポートするファブリック毎にアプリケーションを 開発、試験、メンテナンスするコストを削除し、 アプリケーションの質を向上 スケーラブルシステムズ株式会社 TCP App C Myrinet App B Shmemソフトウエアプロジェクト
App A InfiniBand アプリケーション毎に異なった ネットワークとインターフェイスを使用 App C App B App A Virtual Fabric 一つの実行モジュール(バイナリ)で複数の ネットワークとインターフェイスをサポートす ることが可能 OpenMPI や OpenIB との連携 統合されたMPIライブラリの開発 スケーラブルシステムズ株式会社インテル MPI ライブラリ
マルチファブリック:異なるネットワーク上で動作するアプリケーション の開発と利用に適した容易なソリューション CFD Crash QCD BIO Climate ... other TCP/IP Myrinet* InfiniBand* Shared Memory インテル®MPI 一つのインターコネクト上で アプリケーションを開発し、 複数のインターコネクト上でア プリケーションを実行 アプ リケーション Quadrics* ... other networks スケーラブルシステムズ株式会社 mpich2 mpich2 driverdriver driverdriver driverdriver driverdriver driverdriver libshm
libshm libdetlibdet libiballibibal libgmlibgm libsocklibsock
TCP/IP TCP/IP fallback fallback Multi Multi--fabric fabric
channel channel
Fabric switch Fabric switch
スケーラブルシステムズ株式会社
ノード間通信
スケーラブルシステムズ株式会社インテルクラスタツールキット
• 様々なインターコネクトデバイスに単一の実行モュールで
対応可能
• SMPクラスタ向けの機能強化
TCP + shared-memory (for SMP clusters connected via Ethernet)
ssm
InfiniBand*, Myrinet*, etc. (specified via the DAPL* provider)
rdma[:<provider>]
TCP + shared-memory + DAPL* (for SMP clusters connected via RDMA-capable fabrics)
rdssm[:<provider>]
Shared-memory only (no sockets) shm TCP/Ethernet/sockets (default) sock インターコネクトデバイス I_MPI_DEVICE環境変数 スケーラブルシステムズ株式会社
Intel Trace Analyzer and Collector 6.0
• より効率的なデータの収集(コレクタ)
• 収集したデータの分析を容易にする、データの統合、
タグ化、フィルタリング(アナライザ)
• 見やすくなったGUI
– Linux および
Windows対応
スケーラブルシステムズ株式会社Intel Trace Collectorの機能
• イベントベース の収集
• アプリケーションの性能に与える影響は軽微
• 関数のトレース
• フェールセーフなMPIのトレース
• ユーザーコードを制御する為のAPIを提供
• 最適化されたプログラムをトレース可能
• 通信レイヤの分析可能
• 様々な実行(リンク)方法
スケーラブルシステムズ株式会社
インテル クラスタ MKL
• インテル MKL のすべての機能 +
ScaLAPACK
• ScaLAPACK
– 密行列で表される線型方程式の解を計算
– 密行列の固有値を計算
• インテルプロセッサ向けに最適化
スケーラブルシステムズ株式会社CPU CPU CPU 逐次実行 プログラム 並列実行 プログラム マルチスレッドプログラミング OpenMP や自動並列コンパイル Memory 共有領域 Memory
共有メモリプログラミング
スレッドを活用したのが、 OpenMPによるマルチス レッドプログラミングです。 OpenMPは、共有メモリ 上でのプログラミングとな りますので、次に、共有メ モリプログラミングと OpenMPの特徴を簡単に ご説明いたします。 スレッドを活用したのが、 OpenMPによるマルチス レッドプログラミングです。 OpenMPは、共有メモリ 上でのプログラミングとな りますので、次に、共有メ モリプログラミングと OpenMPの特徴を簡単に ご説明いたします。 スケーラブルシステムズ株式会社並列計算
• プログラム中には、多くの並列処理可能な処理が存在して
いるが、通常はそれらの処理を逐次的に処理している
• これらの並列処理可能なコードセグメントに対して、複数
のプロセッサ(コア)による同時・並列処理を行う
データ並列処理:
独立したループ反復を分
割し、並列に実行する
for (y=0; y<nLines; y++) genLine(model,im[y]);
タスク並列処理:
独立したサブプログラ
ムの並列に呼び出す
call fluxx(fv,fx) call fluxy(fv,fy) call fluxz(fv,fz) スケーラブルシステムズ株式会社共有メモリデータ並列処理
• 並列処理の一つの方式
• データ空間を共有して並列化を行う
・・・・・・・・・・・
・・・・
B
・・・・・・・・・・・
・・・・
C
・・・・・・・・・・・
・・・・
A
for (i=0; i<5; i++) C(i) += A(i)*B(i);
for (i=5; i<10; i++) C(i) += A(i)*B(i);
for (i=95; i<100; i++) C(i) += A(i)*B(i);
スケーラブルシステムズ株式会社 OpenMP の適用 void main() { double Res[1000]; #pragma omp parallel for for(int i=0;i<1000;i++) { do_huge_comp(Res[i]); } } void main() { double Res[1000]; // 計算負荷の大きな計算ループに対して、 // マルチスレッドでの並列処理を適用します for(int i=0;i<1000;i++) { do_huge_comp(Res[i]); } }
マルチスレッドプログラミングの基本
• 計算負荷の大きなループやプログラムのセクショ
ンを複数のスレッドで同時に処理
• 複数のスレッドを複数のプロセッサコア上で、効
率良く処理する
スケーラブルシステムズ株式会社 P P P P P プログラムのループな どの反復計算を複数 のスレッドに分割し、 並列処理を行う P P P P P P P P P P P “マスタースレッド” “ワーカースレッド” 逐次処理 マルチスレッド による並列 処理逐次処理 .vs. マルチスレッド並列処理
スケーラブルシステムズ株式会社OpenMP .vs. MPI性能データ
NAS Parallel Benchmark
BT/ MP I BT/ OM P CG /MP I CG/OM P FT/M PI FT/O MP IS/ MPI IS/ OMP LU/ MPI LU/ OMP MG/M PI MG/O MP SP/MP I SP/O MP 1 Thread 4 Threads 0 500 1000 1500 2000 2500 3000 3500 4000 MFL O P S
Intel Bensley Platform 3.2GHz Dempsey
スケーラブルシステムズ株式会社
Intel Thread Checker 2.2 の機能
• 大部分の Win32と OpenMPスレッド化バグを検出
– データレース (ストレージの競合) – デッドロック: 潜在的および実質的 – スレッドストールとウェイト• 診断のソースコードを表示 (ドリルダウン)
– インテル VTune と共通の操作環境• 診断のワンクリック・ヘルプ
– 考えうる原因と解決策を表示• Microsoft Visual Studio.NET IDE へ統合
スケーラブルシステムズ株式会社 インテル コンパイラとの ソース・インストルメンテーションか らの情報 インテル コンパイラとの ソース・インストルメンテーションか らの情報
スレッドチェック診断リスト
スケーラブルシステムズ株式会社ソースコードの確認
リスト中の各診断から ソースコード行に ジャンプします リスト中の各診断から ソースコード行に ジャンプします ここをダブルクリックすると … ここをダブルクリックすると … スケーラブルシステムズ株式会社一般的なパフォーマンス問題
• 並列化によるオーバーヘッド
– スレッド作成によるスケジューリングなど
• 同期化
– 共有データの過度な使用、同じ同期化オブジェクトの競
合
• ロード・バランス
– ワークロードの不適切な配分
• 粒度
– 不十分な実行単位
スケーラブルシステムズ株式会社スレッドのプロファイル機能
• Win32スレッド
– 実行時間に影響を与える同期化構造を特定
– スレッド化パフォーマンスを向上するために最適化すべ
きコードのセクションを表示
• OpenMPスレッド
– スレッド・プロファイル・データ (並列化領域で費やされた
時間など) を提供
– ワークロードがアンバランスなスレッドを表示
スケーラブルシステムズ株式会社
スレッドのプロファイル解析結果
各スレッドのロードバラ ンスに問題がある Before After スケーラブルシステムズ株式会社 高性能インターコネクト 高性能インターコネクト Memory P P P P Memory P P P P Memory P P P P Memory P P P P マルチプロセッサ マルチプロセッサ マルチプロセッサ マルチプロセッサクラスタ内の各ノードは高速インターコネクト・テクノロジで接続されます。InfiniBandや PCI Expressテクノロジが登 場する前は、独自規格に基づいた高性能で高価なテクノロジと、標準規格に基づいた低コストでやや性能の低いテク ノロジのいずれかを選択する 必要がありました。コスト制約の厳しいクラスタの場合は、ネットワーク接続用の Ethernet テクノロジが広く利用されていますが、これは並列アプリケーションのようにノード間の緊密な連携が要求さ れる環境ではボトルネックとなります。 InfiniBand ベースのインターコネクトを導入すれば、このようなトレードオフは 解消されます。 デュアルコアおよびマルチコア・プロセッサは1つのプロセッサの中に2つまたはそれ以上の完全な実行コアを搭 載することによって、複数の処理を同時に実行 可能であり、このようなマルチコア・プロセッサを複数搭載した SMP (Symmetric Multiprocessing) 構成となり、高速のメモリアクセスとノード内でのマルチスレッドプログラミ ングが可能
クラスタシステム
スケーラブルシステムズ株式会社ハイブリッドコードサンプル
% cat -n hybrid.f90 1 program first_hybrid 2 3 implicit none 4 include 'mpif.h' 56 integer :: size, rank, ierr 7 integer :: omp_get_num_threads 8 integer :: omp_get_thread_num 9
10 call mpi_init(ierr)
11 call mpi_comm_size(MPI_COMM_WORLD, size, ierr) 12 call mpi_comm_rank(MPI_COMM_WORLD, rank, ierr) 13
14 !$omp parallel
15 write(6, "(4(a,i3))") " MPI: size = ", size, " rank = ", rank, & 16 " OpenMP: N_threads = ", omp_get_num_threads(), & 17 " thread = ", omp_get_thread_num() 18 !$omp end parallel
19
20 call mpi_finalize(ierr) 21 end
% ifort -openmp hybrid.f90 -lmpi
hybrid.f90(14) : (col. 6) remark: OpenMP DEFINED REGION WAS PARALLELIZED. % setenv OMP_NUM_THREADS 2
% mpirun -np 2 a.out
MPI: size = 2 rank = 0 OpenMP: N_threads = 2 thread = 0 MPI: size = 2 rank = 1 OpenMP: N_threads = 2 thread = 0 MPI: size = 2 rank = 0 OpenMP: N_threads = 2 thread = 1 MPI: size = 2 rank = 1 OpenMP: N_threads = 2 thread = 1 % スケーラブルシステムズ株式会社
MPI/OpenMPハイブリッドモデル
• MPIでは領域分割などの疎粒度での並列処理を行う • OpenMPは、各MPIタスク内で、ループの並列化などのより細 粒度での並列化を担う • 計算は、タスク-スレッドの階層構造を持つ 高性能インターコネクト 高性能インターコネクト Memory P P P P Memory P P P P Memory P P P P Memory P P P P OpenMPスレッド MPIタスクスケーラブルシステムズ株式会社
階層モデルでのプログラム例
...
call MPI_INIT( ierr )
call MPI_COMM_RANK( MPI_COMM_WORLD, myid, ierr )
call MPI_COMM_SIZE( MPI_COMM_WORLD, numprocs, ierr )
call
MPI_BCAST(n,1,MPI_INTEGER,0,MPI_COMM_WO RLD,ierr)
c calculate the interval size h = 1.0d0/n sum = 0.0d0 !$OMP PARALLEL DO !$OMP FIRSTPRIVATE(n,myid,h,numprocs) !$OMP PRIVATE(i,x) !$OMP& REDUCTION(+:sum) do i = myid+1, n, numprocs x = h * (dble(i) - 0.5d0) sum = sum + 4.d0 / (1.d0 + x*x) end do
!$OMP END PARALLEL DO
MPI の初期化 MPI は、各タスクの実行上の 設定を行う OpenMP による並列化の適用 ループレベルなどの計算カーネル 部分のマルチスレッド化を行う MPI による各ノード間でのデータ 交換や通信 MPI の終了処理 スケーラブルシステムズ株式会社
クラスタOpenMP
• OpenMPプログラミングモデルをクラスタ環境に拡張
• 基本的な並列化APIはOpenMPを利用し、クラスタの各ノ
ードへのOpenMPプログラムの分散を支援
– OpenMPのメモリ階層モデルを拡張 – OpenMPと同じように漸次並列化を適用することも可能• 並列化効率
– MPIやOpenMPほどのプログラムの汎用性には欠ける (利用可 能なプログラムは限定) – 実行性能は、プログラムの実装に強く依存する スケーラブルシステムズ株式会社 共用データ マルチスレッド化されたプログラム DVSMNode 0 Node 1
...
Node n-1 Node nネットワーク、スイッチ等
分散仮想共有メモリ(DVSM)
スケーラブルシステムズ株式会社簡単なクラスタOpenMPプログラム例
#include <omp.h> static int x;#pragma intel omp sharable(x)
int main() {
x = 0;
#pragma omp parallel shared(x) {
#pragma omp critical x++;
}
printf("%d should equal %d¥n", omp_get_max_threads(), x); }
sharableディレクティブでコ ンパイラーに変数xはDVSM 上に置かなければならないこ とを指示する
スケーラブルシステムズ株式会社
プログラムのコンパイルと実行
$ icc –cluster-openmp test.cコンパイル時に、Cluster OpenMPでの並列処理を指定
$ cat kmp_cluster.ini
--hostlist=rufus,dufus --processes=2 --process_threads=4
設定ファイル kmp_cluster.ini に利用する2つのノードを指定し、各ノード上で利用するプロ セス数と各プロセスあたりのスレッド数を指定する。この場合には、合わせて、8スレッドでの 並列処理となる。 $ a.out 8 should equal 8 スケーラブルシステムズ株式会社
Cluster OpenMP スレッドとプロセス
Thread 3 Thread 2 Thread 1 Thread 0 Process 0 Thread 7 Thread 6 Thread 5 Thread 4 Process 1 Thread 11 Thread 10 Thread 9 Thread 8 Process 2 Thread 15 Thread 14 Thread 13 Thread 12 Process 3 Node 0 Node 1 Node – クラスタを構成する各計算機システム プロセス – Linuxのプロセス スレッド – OpenMPのスレッド(プロセス中のスレッド) スケーラブルシステムズ株式会社Cluster OpenMPメモリモデル
• プロセス間でOpenMPスレッドがアクセスする変数
は、’Sharable Variavle’として指示する必要があります。
• 通常のOpenMPの共有データの宣言では、プロセス間で
のデータ共有は出来ません。プロセス内でのデータの共有
を宣言することになります。
Private Memory Process Sharable Memory Cluster OpenMP Sharable memory Private Memory Process Sharable Memory Cluster OpenMP Sharable memory Sharable Variable Process 0 Process 0 スケーラブルシステムズ株式会社性能(ベンチマーク)データ
• 幾つかのベンチマークを実施した結果がインテルから報告されてい ます。(NCSAのItanium+GigEでの結果) • Data MiningやRenderingではある程度のスケーラビリティが示され ています。 MPEG2 Encoder FPTree(Data Mining)スケーラブルシステムズ株式会社
性能(ベンチマーク)データ
インテル社のCluster OpenMP関連の資料より抜粋 Parallel Parallel Programming for Programming for Hybrid Hybrid Architectures Architectures
Tom Lehmann Tom Lehmann Technical Director Technical Director HPC Programs Office HPC Programs Office
January 23, 2006 スケーラブルシステムズ株式会社
ご説明の内容について
• HPCシステムの発展とトレンド
– Proprietary.vs.COTS – 64ビットコンピューティング – マルチコアプロセッサ• プログラム最適化と開発環境に関する
トピックス
– コンパイラ技術と開発ツール – クラスタ環境 – 共有メモリプログラミング• まとめとして
– 標準コンポーネントによるHPCの進化 スケーラブルシステムズ株式会社HPCの二極分化
Going UP ‘Peta-Scale’ コンピューティング •複雑なシステム構成 •新しいプログラミング APIの提案 •アプリケーション開発 Going DOWN ‘Commodity’ コンピューティング •商用HW/SW •オープンソース •パーソナルクラスタ •商用アプリケーション •マルチスレッド スケーラブルシステムズ株式会社システムとユーザの尺度
• ユーザの尺度での性能(Performance)は、時間当たりにどれだけの 仕事を処理出来るか(仕事量 / 時間) • Flopsでの評価は実際には意味がない。また、問題の規模(small, medium, large) という評価も難しい。 • “スケーラビリティ”は、対象を明確に規定する必要がある ユーザの尺度 システムの尺度 計算精度 ⇔ データ長 導入コストと運用コスト ⇔ システム構成(クラスタ) ベンチマーク ⇔ スケーラビリティ ワークロードでの試行 ⇔ プロセッサ数 モデルのサイズと計算結果 ⇔ メモリサイズ(GB) 計算終了までの時間 ⇔ Flop/sスケーラブルシステムズ株式会社
HPCシステムの動向
国家プロジェクトと商用製品のギャップの拡大
Going UP Going DOWN ‘Peta-Scale’ コンピューティング •複雑なシステム構成 •新しいプログラミング APIの提案 •アプリケーション開発 ‘Commodity’ コンピューティング •商用HW/SW •オープンソース •パーソナルクラスタ •商用アプリケーション •マルチスレッド Peta-Scaleコンピューティングに求 められる基本技術と現在のHPCの 主要マーケットでの要求はあまりに も差が大きい →HPCSシステムは、各社との ‘Commodity’のマイクロプロセッ サではなく、独自のプロセッサを開 発中 ハードウエアは、’Commodity’なも のを利用して、SWの改善、サポー ト、利用技術のサポートが今後の主 要マーケットでの成功の鍵となる スケーラブルシステムズ株式会社HPCシステムの動向
国家プロジェクト
Going UP ‘Peta-Scale’ コンピューティング •複雑なシステム構成 •新しいプログラミング APIの提案 •アプリケーション開発 Peta-Scaleコンピューティングに求 められる基本技術と現在のHPCの 主要マーケットでの要求はあまりに も差が大きい →HPCSシステムは、各社との ‘Commodity’のマイクロプロセッ サではなく、独自のプロセッサを開 発中 スケーラブルシステムズ株式会社性能ギャップの拡大
• ピーク性能の大幅な向上 – 1990年台は、性能の向上は、102のオーダ ーでしたが、2000年台になると103のオー ダーで性能は向上しています。 しかし… – 多くの科学技術計算用途のアプリケーショ ンのピーク性能に対する実効性能の比率 は、5-10%となっています。(1990年代の ベクトル計算機は、40-50%の対ピーク性能 を示していました。) • 今、必要なのは – より高い実効性能を発揮することが可能な 計算アルゴリズムと手法の開発とスケーラ ビリティの向上 – プログラミングモデルなども含めて、スケー ラブルな計算機環境の構築 0.1 1 10 100 1,000 2000 2004 Teraflops 1996 Performance Gap Peak Performance Real PerformanceNERSC User Group Meeting June 24-25, 2004 Osni Marques and Tony Drummond Lawrence Berkeley National Laboratory
スケーラブルシステムズ株式会社
ペタスケールシステムの構築
• ソフトウエア(アプリケーシ
ョン、OS、プログラミング
APIなど)の課題の克服が
課題
• システムの複雑さと生産
性
例:
Linpack Benchmark
• オリジナルベンチマークプ
ログラム ~100ライン
• HPL ベンチマークプログラ
ム ~10,000ライン
(x100より複雑?)
ペタスケールシステムの 構築のための兆戦 ‘複雑さ’の壁 現在のテラFLOPS 級の問題 Source: ORNLスケーラブルシステムズ株式会社
システムの信頼性
An Overview of High Performance Computing
Jack Dongarra
University of Tennessee and Oak Ridge National Laboratory HPC Asia 2005 スケーラブルシステムズ株式会社
HPCシステムの動向
商用製品
Going DOWN ‘Commodity’ コンピューティング •商用HW/SW •オープンソース •パーソナルクラスタ •商用アプリケーション •マルチスレッド ハードウエアは、’Commodity’なも のを利用して、SWの改善、サポー ト、利用技術のサポートが今後の主 要マーケットでの成功の鍵となる スケーラブルシステムズ株式会社ビル・ゲイツ氏の基調講演
HPC goes mainstream
スケーラブルシステムズ株式会社標準コンポーネントの進化
• プロセッサの性能向上
– ‘マルチコア’による省電力での性能向上が可能
– HPCアプリケーションは、容易に‘マルチコア’の利点を
活用可能 (OpenMPやMPI)
• ファイルシステム
– 高性能なスケーラブルファイルシステム(オープンソー
ス)
• インターコネクト
– PCI-Express (メモリ←→インターコネクト)
– 高速の商用製品やオープンソースでの強力(OpenIBな
ど)
スケーラブルシステムズ株式会社
標準コンポーネントの利点
• 特定のベンダーからのシステムを組み合わせるの
ではなく、他社のシステムも含めてベストなシステ
ムの選択が可能
– スケーラブルSMP、ベクトル計算機、クラスタの幅広い
選択肢
– 64ビット、マルチコアマイクロプロセッサの性能向上を最
大限に活用
• 標準コンポーネントの技術革新の活用
– PCI-Expressや、FB-DIMMの利用技術
スケーラブルシステムズ株式会社Platform Review
FBD Blackford MCH Storage Controller PXH 10 GbE I/OAT iSCSIConfigurable set of PCIe ports
ESB-2 I/O Bridge SATA-2 ・・・・ PCI-X 10 GbE ESI x8 x8 x8 DIB 1066/1333 MHz 8.5/10.5 GB/s 25.5/32 GB/s メモリ構成の拡張性(最 大64GB) スループットとバランスに 優れたMCH構成 Point-to-Pointでの接 続インターコネクト 3世代のマイクロプロセッ サをサポート 大容量の共有キャッシュ 高速FSBバス (スケーリング) マルチプロセッサでのコ ヒレンシの維持 マルチプロセッサ構成で のフラットなメモリ スケーラブルシステムズ株式会社
Breaking the 1-2K nodes Barrier!
• 音の障壁,サウンド・バリヤ ー(sound barrier) 飛行機の速度が音速近く になると,衝撃波の発生に よって,抵抗の増大,境界 層の剥離など,設計・運用 上のさまざまな障害(壁)に 出合って,超音速飛行は不 可能かと思われた時代があ った(1947年ごろまで)ので, 音の障壁といわれていた。 http://www.wilk4.com/misc/soundbreak.htm クラスタのノード数が、ある規模に近くなると、その構築や運用にお いて、負担の増大、システムの安定稼動、スケーラビリティなど、設 計・運用上のさまざまな障害(壁)に出合って,クラスタ構築は不可 能と思われた時代があった(?) スケーラブルシステムズ株式会社
米国エネルギー省
サンディア国立研究所
• システム:
– 4096 Dell Servers – 50% Blocking Ratio – 8 TS-740s – 256 TS-120s• TOP500 (Nov.5th)
– No.5• 用途:
– ‘Capability’クラスタ – 標準コンポーネントで のシステム構築 Core Fabric 8x SFS TS740 288 ports each Edge 256x TS120 24-ports each 18 Compute Nodes) 18 Compute Nodes) 8192 Processor 60TFlop SuperCluster 2048 uplinks (7m/10m/15m/20m)スケーラブルシステムズ株式会社 Homogeneous Heterogeneous Capability シンプルなアプリケーション実行(同じサイズ、同様な 問題、規模、解析時間) 容易な並列化、並列実行が可能 事例:レンダリング、小規模ジョブの多数実行 ワークロード 特徴 複雑で多様な複数ジョブ(問題の規模、実行時間や実 行に要するリソース量が異なる)の同時実行 複雑な計算処理とプロセス 事例:大規模なMCAE解析、多くの科学技術計算シュミ レーション 大規模で複雑な数値シュミレーション(CPU、メモリ、 I/Oへの高い要求) 複雑なデータマネージメントが求められる 事例:気象予測(地球環境シュミレーション)やMDO( 複合問題など)
HPCシステムでのワークロード
スケーラブルシステムズ株式会社 Homogeneous Capability シングルコアプロセッサを ベースとするクラスタシステム Homogeneous Heterogeneous Capability マルチコアプロセッサを ベースとするクラスタシステム シングルスレッドジョブ の多重実行 MPIによる大規模並列処理 OpenMPや自動並列化HPCシステムでのワークロード
スケーラブルシステムズ株式会社さらに詳しい情報は…..
• 弊社のコンサルテーションに 関するご提案資料もダウンロ ード可能です。(非公開WEB ページ)別途、弊社に内容等 については、お尋ねください。 お問い合わせ先: 〒102-0083 東京都千代田区麹町3-5-2 BUREX麹町 8F 電話:03-5875-4718 FAX:03-3237-7612 E-mail:[email protected] http://www.sstc.co.jp www.sstc.co.jp/biz スケーラブルシステムズ株式会社スケーラブルシステムズ株式会社
ハイエンドコンピューティングに関
するコンサルテーションとして、幅
広いサービスをご提供致します。
このサービスを最大限に活用して
いただくことで、コラボレーション
による「顧客志向」 のコンサルテ
ーションサービスをご提供できれ
ばと思っております。
スケーラブルシステムズ株式会社
この資料について
社名、製品名などは、一般に各社の商標また は登録商標です。無断での引用、転載を禁じま す。
In general, the name of the company and the product name, etc. are the
trademarks or, registered trademarks of each company.
Copyright Scalable Systems Co., Ltd. , 2005. Unauthorized use is strictly forbidden.