マイクロプロセッサと 並 列 処 理 期 待 と 現 実 の 狭 間 で 考 えること スケーラブルシステムズ 株 式 会 社
説 明 概 要 はじめに 並 列 処 理 技 術 の 動 向 Peta-ScaleコンピューティングとCommodity コンピューティング Commodityコンピューティングでの 課 題 マイクロプロセッサと 並 列 処 理 並 列 処 理 での 重 要 なポイント マイクロプロセッサの 進 化 スケーラブルCommodityコンピューティング クラスタOpenMP ハイブリッド 並 列 処 理 SMP 仮 想 化 まとめとして 一 部 配 布 資 料 にIDF2009の 資 料 を 追 加 致 しました スケーラブルシステムズ 株 式 会 社
ユビキタス 並 列 処 理 プログラミング 現 在 の 状 況 全 てのプロセッサはマルチコアプロセッサ コンピュータは 様 々な 並 列 処 理 により 性 能 向 上 を 図 っている コンパイラやコンピュータ 自 身 が 並 列 処 理 の 適 用 を 行 う 場 合 もあるが 本 質 的 な 並 列 プログラ ミングはユーザが 行 う 必 要 がある 課 題 並 列 プログラミングの 専 門 家 が 並 列 化 プログラ ミングを 行 い より 高 速 実 行 を 目 指 すことは 容 易 より 広 範 囲 なユーザが 並 列 処 理 を 行 い その 効 果 を 実 現 出 来 ることが 課 題
なぜ 並 列 処 理 は 容 易 でないのか? 1. 並 列 化 について 学 ぶ 2. 並 列 化 手 法 の 正 しい 選 択 3. スレッドについて 考 えるのではな く タスクでのプログラムを 考 える 4. 並 列 実 行 をオフに 出 来 るようにプ ログラムをデザインする 5. ロック( 同 期 ) 処 理 などは 可 能 な 限 り 行 わない 6. 良 い 並 列 支 援 ツールを 使 う 7. メモリアロケーションに 注 意 する 8. ワークロードに 合 わせてスケーリ ング 出 来 るデザインとする http://www.ddj.com/hpc-high-performancecomputing/201804248 マルチコアでのプログラミングでの ルール:これら8つのルール 全 てを 理 解 して プログラミングに 取 り 組 む 必 要 がある スケーラブルシステムズ 株 式 会 社
なぜ 並 列 処 理 は 容 易 でないのか? 不 規 則 なオペレーション 複 雑 なデータ 構 造 アルゴリズム 上 の 問 題 マルチコア 上 での 並 列 処 理 の 難 しさ 継 続 的 なプロセッサコア 数 の 増 加 ベクトル 処 理 の 強 化 メモリシステムの 強 化 キャッシュシステムの 改 善
システムとユーザの 尺 度 システムの 尺 度 ユーザの 尺 度 Flop/s 計 算 終 了 までの 時 間 メモリサイズ(GB) モデルのサイズと 計 算 結 果 プロセッサ 数 ワークロードでの 同 時 実 行 ジョブ 数 データ 長 計 算 精 度 システム 構 成 (クラスタ) 導 入 コストと 運 用 コスト スケーラビリティ 評 価 対 象 での 尺 度 ユーザの 尺 度 での 性 能 (Performance)は 時 間 当 たりにどれ だけの 仕 事 を 処 理 出 来 るか( 仕 事 量 / 時 間 ) Flopsでの 評 価 は 実 際 には 意 味 がない また 問 題 の 規 模 (small, medium, large) という 評 価 も 難 しい スケーラビリティ は 対 象 を 明 確 に 規 定 する 必 要 がある
Peta-Scaleコンピューティングと Commodityコンピューティング 並 列 処 理 技 術 の 動 向
コンピューティングのギャップ Peta-Scale コンピューティング 独 自 のアプリケーション 開 発 複 雑 なシステム 構 成 新 しいAPIの 提 案 ギャップの 広 がり Pleiades Supercomputer Photo Credit: NASA Ames Research Center コンパクトでより 多 くのプロ セッサコアを 搭 載 したサーバ 製 品 スケーラブル Commodity コンピューティング 商 用 HW/SW オープンソース 商 用 アプリケーション マルチスレッド マルチコア マルチプロセッサ クラスタ システムの 利 用 の 拡 大 と 広 範 囲 なユーザ 環 境 2Uサイズ 32コア 搭 載 サーバ 1Uサイズ CPU+GPU Hybridサーバ
MPI OpenMP threads C++ Fortran Chapel UPC Co-array hybrid C HPF X10 Fortress Java Titanium posix threads スケーラブルシステムズ 株 式 会 社 First Petascale Book 検 索 700 600 500 400 300 200 100 0 Petascale Computing: Algorithms and Applications (Chapman & Hall/Crc Computational Science Series) Scalable OpenMP Programming Dieter an Mey RWTH Aachen Universityより 抜 粋
マルチスレッドアプリケーション Intel Software Product Conference:Parallel Programming AdoptionMarket Situation and Outlook presentations from Multicore Days 2008, 11-12 September / James Reinders, Intel
プログラミングのギャップ Peta-Scale コンピューティング 独 自 のアプリケーション 開 発 複 雑 なシステム 構 成 新 しいAPIの 提 案 MPIなどが 主 流 Commodity コンピューティング 商 用 HW/SW オープンソース 商 用 アプリケーション マルチスレッド OpenMPやライブラリ などの 活 用
プログラミングのギャップ 数 ヶ 月 - 数 年 プロダクション シュミレーション スケーラブルな 性 能 の アプリケーションの 開 発 プロトタイプ 開 発 並 列 プログラミング C/C++,MPI OpenMP テストと 性 能 向 上 のための 作 業 プロトタイプ 開 発 デスクトップ テストと 性 能 向 上 の ための 作 業
マイクロプロセッサの 進 化 と 並 列 処 理 への 貢 献 マイクロプロセッサと 並 列 処 理
Performance スケーラブルシステムズ 株 式 会 社 アプリケーションの 性 能 向 上 ギャップの 広 がり GHz Era Multi-core Era 並 列 処 理 は 誰 でも 利 用 可 能 ( 利 用 のメリット) より 少 ないコスト( 低 価 格 なシステム)でより 効 率 の 良 い 処 理 が 可 能 ( 対 費 用 効 果 ) より 短 時 間 でシュミレーションを 完 了 ( 開 発 サイク ルの 短 縮 によるコスト 削 減 ) Time
アプリケーション 実 行 階 層 仮 想 マシン OS OS OS オペレーティング システム App App App アプリケーション Threads Threads Threads スレッド Code Fragment Code Fragment Code Fragment
プログラミング 階 層 クラスタプログラミング(MPI) マルチノード クラスタ マルチスレッド(OpenMP) プロセッサ 最 適 化 キャッシュ 複 数 命 令 実 行 SIMD 命 令 (ベクトル 化 ) シングルノード(SMP) シングルプロセッサ シングルコア do izone = 1, nzone. do j = 1, jmax. do i = 1, imax. ノード 内 ノード 間 並 列 化 ノード 内 でのマルチスレッド 並 列 化 プロセッサリソースの 並 列 利 用 スケーラブルシステムズ 株 式 会 社
プログラミング 階 層 do izone = 1, nzone ノード 内 ノード 間 並 列 化. MPIやCluster OpenMPなどの 利 用 do j = 1, jmax ノード 内 でのマルチスレッド 並 列 化. OpenMPやスレッドプログラミング do i = 1, imax プロセッサリソースの 並 列 利 用. ベクトル 化.. スーパースカラ 実 行 パイプライン 処 理 end do キャッシュ 最 適 化 など 最 適 化 と 並 列 化 の 適 用 作 業 プログラマー コンパイラ
時 間 時 間 時 間 時 間 スケーラブルシステムズ 株 式 会 社 並 列 性 (Parallelism)の 利 用 パイプライン 処 理 データレベル 並 列 処 理 (DLP) スレッドレベル 並 列 処 理 (TLP) 命 令 レベル 並 列 処 理 (ILP)
ループのベクトル 化 処 理 プログラム 例 : for (I=0;I<=MAX;I++) C[I]=A[I]+B[I]; 利 用 方 法 : (Linux) (Windows) -[a]xn, -[a]xb, -[a]xp, -[a]xt -Q[a]xN, -Q[a]xB, -Q[a]xP, -Q[a]xT A[3] A[2] + + B[3] B[2] A[1] A[0] + + B[1] 128-bit Registers B[0] C[3] C[2] C[1] C[0]
インテルプロセッサでのSIMD 処 理 Source SSE/2/3 Dest Intel Core Microarchitecture NetBurst CLOCK CYCLE 1 CLOCK CYCLE 2 X4 X3 X2 X1 Y4 Y3 Y2 Y1 X4opY 4 X4opY 4 SSE Operation CLOCK CYCLE 1 X3opY 3 X3opY 3 X2opY 2 X2opY 2 X1opY 1 X1opY 1 各 MMX/SSE 演 算 は 128ビットの 演 算 をシングルサイ クルで 実 行 可 能 と なる MMX/SSE 演 算 器 は2セットあ り 同 時 実 行 が 可 能 となる 従 って 単 精 度 では 8 浮 動 小 数 点 演 算 倍 精 度 では 4 浮 動 小 数 点 演 算 を1ク ロックで 実 行 するこ とが 出 来 る スケーラブルシステムズ 株 式 会 社
並 列 処 理 での 重 要 なポイント 並 列 化 最 適 な 並 列 化 アルゴリズムの 選 択 プロセッサ 数 や 問 題 の 規 模 に 対 応 可 能 な 並 列 化 実 装 コア 数 やプロセッサ 数 に 依 存 しないこと メモリの 局 所 性 メモリ 階 層 を 効 率 的 に 利 用 頻 繁 にアクセスするデータをよりコアの 近 傍 に 配 置
Performance / core Intel マイクロアーキテクチャ 新 マイクロアーキテクチャ 新 製 造 プロセス 次 世 代 マイクロアーキテクチャ(Nehalem) メモリバンド 幅 とレイテンシの 改 善 マイクロアーキテクチャの 改 善 Intelマイクロアーキテクチャ (Westmere) 32nm 製 造 プロセス 6コア SSE 4.2 新 マイクロアーキテクチャ(Sandy Bridge) Intel AVX ベクトル 演 算 ( 浮 動 小 数 点 演 算 性 能 x2) Core Core Memory Controller 3 DDR3 channels Core Core 12M Shared Cache Core Link Controller Core 2 Intel QuickPath interconnect links 2008 2009 2010 >2010 Intel AVX (Advanced Vector Extensions) スケーラブルシステムズ 株 式 会 社
SpeedUp スケーラブルシステムズ 株 式 会 社 並 列 処 理 スケーラビリティ 8 7 Linpack Stream スケーラビリティの 向 上 6 5 4 3 ロードバランスの 改 善 メモリ 階 層 の 効 率 的 な 活 用 (メモリアクセスの 低 減 ) 高 速 なメモリシステムの 採 用 (Xeon 5500) テスト 事 例 2 1 0 1 2 3 4 5 6 7 8 N プロセッサコア
MFLOPS/s Speedup スケーラブルシステムズ 株 式 会 社 並 列 処 理 スケーラビリティ 30000 10 27000 Xeon 5400(MFLOPS/s) Xeon 5400(Speedup) Xeon 5500(MFLOPS/s) Xeon 5500(Speedup) 9 24000 8 システムアーキテクチャの 進 化 21000 18000 7 6 シングル( 逐 次 処 理 ) 性 能 の 向 上 スケーラビリティの 向 上 15000 5 12000 4 9000 3 6000 2 3000 0 1 4 8 16 N プロセッサコア 1 0 効 率 的 な 並 列 処 理 には プラットフォームが 重 要 Himeno Benchmark http://w3cic.riken.go.jp/hpc/himenobmt/index.html
ピーク 性 能 (GFLOPS/sec) バンド 幅 (MB/sec) プロセッサ 性 能 向 上 比 率 120 Quad-Core Intel Xeon 5570 メモリコントローラ 内 蔵 QPIインターコネクト 80 100 ピーク 性 能 バンド 幅 1.35 倍 3.6 倍 70 60 80 60 1.5 倍 50 40 40 3.3 倍 30 20 20 3.3 倍 10 0 2005 年 2006 年 2007 年 2008 年 2009 年 0 64-bit Intel Xeon 3.6GHz 2M Dual-Core Intel Xeon 5160 デュアルコア Quad-Core Intel Xeon 5355 クァッドコア 4 浮 動 小 数 点 演 算 /クロック デュアルFSBバス Quad-Core Intel Xeon460 45nm 製 造 プロセス 動 作 クロック スケーラブルシステムズ 株 式 会 社
ピーク 性 能 (GFLOPS/sec) バンド 幅 (MB/sec) プロセッサ 性 能 向 上 比 率 120 Quad-Core Intel Xeon 5570 メモリコントローラ 内 蔵 QPIインターコネクト 80 ピーク 性 能 100 ベクトル 80 処 理 60 40 3.3 倍 バンド 幅 1.5 倍 1.35 倍 3.6 倍 70 60 50 NUMA 40 Non-Uniform 30 Memory Architecture 20 20 3.3 倍 10 0 2005 年 2006 年 2007 年 2008 年 2009 年 0 64-bit Intel Xeon 3.6GHz 2M Dual-Core Intel Xeon 5160 デュアルコア Quad-Core Intel Xeon 5355 クァッドコア 4 浮 動 小 数 点 演 算 /クロック デュアルFSBバス Quad-Core Intel Xeon460 45nm 製 造 プロセス 動 作 クロック スケーラブルシステムズ 株 式 会 社
メモリ 性 能 とスケーラビリティ Core 2 Extreme QX6700 Nehalem Core 0 Core 2 Core 0 Core 2 Core 0 Core 2 Core 0 Core 2 4MB shared L2 Cache Bus I/F 4MB shared L2 Cache Bus I/F Memory Controller 4MB shared L2 Cache Link Controller MCH FSB 3x DDR3 channels 2x Intel QuickPath interconnect
スケーラビリティ(シングルスレッドに 対 する 相 対 性 能 比 ) スケーラブルシステムズ 株 式 会 社 NPB OpenMP スケーラビリティ 4.0 Core2Quad Core i7 3.5 3.0 2.5 2.0 1.5 1.0 0.5 0.0 BT CG EP FT IS LU MG SP
相 対 性 能 (Core 2 Extreme QX6700 =1) スケーラブルシステムズ 株 式 会 社 NPB OpenMP 相 対 性 能 8.0 7.0 QX6700/1 QX6700/4 Core i7/1 Core i7/4 シングルコアでの 性 能 差 << マルチスレッドでの 性 能 差 6.0 5.0 4.0 3.0 2.0 1.0 0.0 BT CG EP FT IS LU MG SP
MB/sec スケーラブルシステムズ 株 式 会 社 メモリ 階 層 ベンチマーク 70000 60000 50000 Double read/modify/write Cache Test Opteron 2.8GHz Core2Quad 2.6GHz Core i7 2.6GHz 40000 30000 20000 10000 0 100 400 1600 6400 25600 102400 409600 1638400 6553600 26214400 104857600 C Size (bytes)
性 能 向 上 比 率 (Baseline = 1) スケーラブルシステムズ 株 式 会 社 ベクトル 化 マルチスレッド 30 25 20 15 Intel Xeon W5580 (2 sockets x 4 cores)3.2ghz 27.5 Baseline - Compile with Intel compiler Vectorized with Intel compiler Vectorized with Intel compiler - threading 17.6 Vectorized / ベクトル 化 コンパイラ 指 示 行 の 追 加 コードのアンローリング ループの 分 割 Threading/ 自 動 並 列 化 OpenMP 指 示 行 の 追 加 10 5 0 2.40 1.82 1.80 1.00 1.00 1.00 Black-Sholes Monte Carlo Covertible Bonds コンパイラの 自 動 ベクトル 化 と 自 動 並 列 化 にユーザの 最 適 化 作 業 でより 高 い 性 能 を 実 現 Money Tree Optimizing FSI Benchmarkswith Intel Software Tools for Multicore & Manycore Intel Developer Forum
スケーラブルCommodityコンピューティング 並 列 処 理 の 課 題 と 挑 戦
Many core CPU 2012(?)に 想 定 される 計 算 ノード 1) Node : 960 GFLOPS/CPU Many core CPU, 48 cores, 2.5GHz, 共 有 キャッ シュ シンプルな 実 行 コア(in-orderでSMT 機 能 付 き) メモリバンド 幅 を 最 大 限 に 活 用 するアーキテクチャ SIMDベクトルユニット... 8 FLOP / cycle / core 複 数 の 計 算 ノードがNUMA 構 成 で 接 続 複 数 の 計 算 サーバ ブレードでクラスタ 構 成 効 率 の 良 い 並 列 化 が 求 められる 1) 仮 定 として 想 定 したプロセッサに 基 づく 推 察
並 列 プログラミングで 留 意 点 十 分 な 計 算 量 (Amdahl s Law) 計 算 粒 度 データの 局 所 性 ロードバランス 分 散 と 同 期 処 理 並 列 処 理 階 層 での 最 適 化 逐 次 処 理 (シングルスレッド)アプリケーションと 比 較 しても 検 討 課 題 が 多 いことが 並 列 処 理 をより 困 難 にしています
Speedup スケーラブルシステムズ 株 式 会 社 並 列 プログラミングで 留 意 点 十 分 な 計 算 量 計 算 粒 度 データの 局 所 性 ロードバランス 分 散 と 同 期 処 理 並 列 処 理 階 層 での 最 適 化 ロードバランス データ 配 置 による 低 下 同 期 処 理 データ 競 合 などによるオーバーヘッド Nプロセッサコア
S スケーラブルシステムズ 株 式 会 社 アムダールの 法 則 並 列 処 理 での 性 能 向 上 の 上 限 値 (スケーリング) T parallel = (S+ P/n) T serial + O T serial S P P/n n = number of processors Speedup = T serial / T parallel = 1 / (S + P/n) プログラムの 逐 次 処 理 部 分 ( 非 並 列 処 理 ) 部 分 の 排 除 が 必 要 例 えば n=, P = 0.5 の 場 合 Speedup = 1.0 / (0.5 + 0) = 2.0
グスタフソンの 法 則 T serial = (S + n x P) T parallel アムダールの 法 則 作 業 負 荷 や 問 題 の 規 模 が 一 定 であることを 仮 定 グスタフソンの 法 則 ( Gustafson-Barsis law) 並 列 処 理 では 問 題 の 規 模 や 作 業 負 荷 がプロセッサコア 数 に 比 例 して 大 きくなり その 負 荷 増 加 は 逐 次 処 理 部 分 に 影 響 しないことを 仮 定 Speedup = T serial / T parallel = (S + n x P) 例 えば n=16, P = 0.5 の 場 合 Speedup = 0.5 + 16 x 0.5 = 8.5 アムダールの 法 則 の 限 界 から 並 列 処 理 を 救 い 出 すこと が 可 能? 適 用 出 来 る 問 題 と 利 用 環 境 に 大 きな 制 限 がある T parallel = {S + P/n} T serial + O Speedup = T serial / T parallel = 1 / (S + P/n)
Speedup Speedup スケーラブルシステムズ 株 式 会 社 スケーラビリティ 64 56 Gustafson's Law(5%) 48 40 32 Gustafson's Law(50%) 16 14 12 24 10 8 16 Amdahl's Law(5%) 6 4 8 0 Amdahl's Law(50%) 0 8 16 24 32 40 48 56 64 2 0 0 2 4 6 8 10 12 14 16 Nプロセッサ N プロセッサコア
NASAによる 流 体 解 析 コード Virtual Flight on High-Performance Architectures M. J. Aftosmis, S. M. Murman, M. Nemec, NASA Ames SC2004,Pittsburgh, PA, Nov. 6-12, 2004 Graphics courtesy of NASA Ames 並 列 性 能 496プロセッサで405 倍 の 性 能 向 上 が 可 能 540 GFLOP/s CPUあたりの 性 能 :1.33 GFLOP/s 短 時 間 でのシュミレーションを 可 能 とし 問 題 への 緊 急 的 な 対 応 を 可 能 となります スケーラブルシステムズ 株 式 会 社
計 算 粒 度 スケーラブルシステムズ 株 式 会 社 並 列 化 よりハイレベルでの 並 列 化 全 体 処 理 の 把 握 とその 並 列 化 の 検 討 大 困 難 複 雑 より 上 位 ( 領 域 範 囲 対 象 )での 並 列 化 小 容 易 処 理 の 末 端 での 並 列 化 個 々の 処 理 の 並 列 化 の 検 討 コンパイラによる 並 列 化 (ベクトル 化 や 自 動 並 列 化 ) は 一 般 にはこのレベルでの 並 列 化
Vertical Scaling スケーラブルシステムズ 株 式 会 社 シングルAPIでの 並 列 処 理 MPI OpenMP OpenMP MPI ノード 内 ノード 間??? Horizontal Scaling MPI OpenMP????
OpenMPの 価 値 シュミレーションでのソフトウエア 開 発 大 規 模 なシュミレーションを 行 うアプリケーションは C++ C Fortranで 記 述 されている ソフトウエア 開 発 と 利 用 は 数 十 年 単 位 で 継 続 して 行 われ る クラスタやスーパーコンピュータ MPIを 利 用 した 大 規 模 並 列 処 理 が 一 般 的 MPI 利 用 の 限 界 と 課 題 全 てのアプリケーションに 適 用 出 来 る 訳 ではない スケーラビリティは 様 々な 制 限 を 受 ける many cores への 対 応 がMPIタイプのAPIでは 非 常 に 難 しい OpenMPはこのようなMPIに 対 する 他 の 選 択 肢 の 提 供 と 同 時 にMPIを 補 完 する 役 割 を 担 う(MPI + OpenMP)
インテルクラスタOpenMP 共 用 データ 分 散 仮 想 共 有 メモリ DVSM マルチスレッド 化 されたプログラム...
一 般 的 OpenMPの 課 題 OpenMP 版 のコンパイル 時 の 問 題 OpenMP 構 文 に 基 づく 並 列 化 によって マイクり プロセッサ 向 け 最 適 化 が 阻 害 される 実 行 時 ライブラリでのオーバヘッド 頻 繁 なライブラリ 呼 び 出 しの 悪 影 響 アルゴリズムの 変 更 のオーバヘッド プログラム 並 列 化 のためのコードの 冗 長 化 やコード の 追 加 同 期 処 理 Fork-Join モデルによる 過 大 な 同 期 処 理 負 荷 分 散 メモリ 階 層 の 有 効 活 用 キャッシュ ローカルメモリ リモートメモリの 参 照 頻 度
OpenMPの 課 題 ハードウエアの 動 向 今 後 は 複 数 ソケットの 製 品 はすべてNUMAアーキテク チャ OpenMP 3.0リリース NUMA 対 応 の 拡 張 無 し アフィニティ 問 題 データの 配 置 及 び 利 用 と スレッド 実 行 の 管 理 OpenMP 3.0: The World is still flat, no support for cc-numa (yet)! http://terboven.wordpress.com/category/openmp/
ハイブリッド: 現 代 のトレンド? ハイブリッドカー 内 燃 機 関 動 力 (ガソリンエンジンや ディーゼルエンジン)と 蓄 電 池 ハイブリッドコンピューティング GPU+CPUによるハイパフォーマ ンスコンピューティング ハイブリッド 並 列 プログラミング スレッドプログラング+MPI
MPI/OpenMPハイブリッドモデル MPIでは 領 域 分 割 などの 疎 粒 度 での 並 列 処 理 を 行 う OpenMPは 各 MPIタスク 内 で ループの 並 列 化 な どのより 細 粒 度 での 並 列 化 を 担 う 計 算 は タスク-スレッドの 階 層 構 造 を 持 つ MPIタスク 高 性 能 インターコネクト Memory Memory Memory Memory P P P P P P P P P P P P P P P P OpenMPスレッド スケーラブルシステムズ 株 式 会 社
MPI/OpenMPハイブリッドコード MPIで 並 列 化 されたアプリケーションにOpenMPでの 並 列 化 を 追 加 MPI 通 信 とOpenMPでのワークシェアを 利 用 して 効 率 良 い 並 列 処 理 の 実 現 include mpif.h program hybsimp Fortran #include <mpi.h> int main(int argc, char **argv){ int rank, size, ierr, i; C/C++ call MPI_Init(ierr) call MPI_Comm_rank (...,irank,ierr) call MPI_Comm_size (...,isize,ierr)! Setup shared mem, comp. & Comm!$OMP parallel do do i=1,n <work> enddo! compute & communicate call MPI_Finalize(ierr) end ierr= MPI_Init(&argc,&argv[]); ierr= MPI_Comm_rank (...,&rank); ierr= MPI_Comm_size (...,&size); //Setup shared mem, compute & Comm #pragma omp parallel for for(i=0; i<n; i++){ <work> } // compute & communicate ierr= MPI_Finalize();
OpenMP/MPIハイブリッドモデル MPIは 実 績 のある 高 性 能 な 通 信 ライブラリ 計 算 と 通 信 を 非 同 期 に 実 行 することも 可 能 通 信 はマスタースレッド シングルスレッド 全 スレッドで 実 行 することが 可 能 MPIタスク 高 性 能 インターコネクト Memory Memory Memory Memory P P P P P P P P P P P P P P P P OpenMPスレッド スケーラブルシステムズ 株 式 会 社
OpenMP/MPIハイブリッドコード OpenMPのプログラムにMPI 通 信 を 追 加 既 存 のOpenMPプログラムの 拡 張 やスレッドプログラムの 新 規 開 発 時 のオプションとして 選 択 MPIは 非 常 に 高 速 また 最 適 化 されたデータ 通 信 ライブラリ include mpif.h program hybmas Fortran #include <mpi.h> int main(int argc, char **argv){ int rank, size, ierr, i; C/C++!$OMP parallel!$omp barrier!$omp master call MPI_<Whatever>(,ierr)!$OMP end master!$omp barrier!$omp end parallel end #pragma omp parallel { #pragma omp barrier #pragma omp master { ierr=mpi_<whatever>( ) } #pragma omp barrier }
ハイエンド 仮 想 化 複 数 の 仮 想 マシン サーバ( 仮 想 化 なし) 仮 想 化 ソフトウエア アプリケーション オペレーティング システム 一 台 の 仮 想 マシン アプリケー ション アプリケー ション アプリケー ション アプリケー ション アプリケー ション オペレーティングシステム 仮 想 化 ソフトウエア
ScaleMP vsmpアーキテクチャ アプリケーションについては 他 のx86システムと 100%のバイナリ 互 換 を 実 現 OSは 通 常 のLinuxディストリビューションが 利 用 可 能 Hardwareは 一 般 のx86チップセットと 標 準 インターコネクトでシス テムの 構 築 が 可 能 vsmp Foundation でのシステムのSMP 拡 張 を 実 現 スケーラブルシステムズ 株 式 会 社
OpenMPスレッド 数 SpeedUP OpenMP/MPI/ハイブリッド Hybrid OpenMP MPI Benchmarkproject ("homb") This is the Hybrid OpenMP MPI Benchmarkproject ("homb") This project was registered on SourceForge.net on May 16, 2009, and is described by the project team as follows: HOMB is a simple benchmark based on a parallel iterative Laplace solver aimed at comparing the performance of MPI, OpenMP, and hybrid codes on SMP and multi-core based machines. 32 28 24 20 16 12 8 4 0 1 2 4 8 MPIタスク 数 Xeon 5550 (2.66GHz) vsmp Foundation 16 32 1 16 32 8 4 2 スケーラブルシステムズ 株 式 会 社
MFLOPS/S スケーラブルシステムズ 株 式 会 社 OpenMPベンチマーク NAS Parallel Benchmark (Multi-Zone) z y x 45000 40000 35000 30000 25000 SP-MZ 20000 x-zones 15000 10000 5000 0 2 4 8 16 32 OpenMPスレッド 数 /N プロセッサコア 著 名 な 公 開 ベンチマークツールである NAS Parallel Benchmark (NPB) の 一 つであるNPB-MZ (NPB Multi-Zone)はより 粒 度 の 大 きな 並 列 化 の 提 供 を 行 っています NPB-MZでは ハイブリッド 型 の 並 列 処 理 やネストしたOpenMPのテストが 可 能 です ここでの 結 果 は OpenMPだけでの 並 列 処 理 の 性 能 を 評 価 しています Xeon 5550 (2.66GHz) vsmp Foundation
Nehalem-EX トポロジ 4プロセッサトポロジ 32プロセッサコア 8プロセッサトポロジ 64プロセッサコア スケーラブルシステムズ 株 式 会 社
ユビキタス 並 列 処 理 プログラミング まとめとして
並 列 処 理 はITの 根 幹 pnfs 10GbE InfiniBand クラスタ リング スト レージ クラス タ SSE マルチ コア コンパイラベクトル 化 最 適 化 ライブラリ マルチスレッド OpenMP 開 発 環 境 ハイブリッド クラスタ GPU マルチ プロ セッサ MPI 開 発 環 境 アプリケーション
まとめとして( 並 列 処 理 ) 並 列 処 理 技 術 の 課 題 Peta-ScaleコンピューティングとCommodity コンピューティングでのギャップの 克 服 マイクロプロセッサと 並 列 処 理 マイクロプロセッサでの 並 列 実 行 ユニットの 増 加 ベクトル 演 算 (x8) プロセッサコア(+6 以 上 ) プロセッサ 内 部 での 並 列 処 理 の 重 要 性 スケーラブルCommodityコンピューティング 今 後 の 技 術 的 な 課 題 と 幾 つかの 提 案 試 行 クラスタOpenMP ハイブリッド 並 列 処 理 SMP 仮 想 化
まとめとして(マルチスレッド) 継 続 的 なプロセッサコア 数 の 増 加 ベクトル 処 理 の 強 化 メモリシステムの 強 化 キャッシュシステムの 改 善 マルチコア 上 での 並 列 処 理 低 価 格 ( 低 い 導 入 コスト)での スケーラブルなプラットフォーム マルチスレッドプログラムの 可 能 性
この 資 料 について ここに 掲 載 した 資 料 は 弊 社 の 調 査 と 見 解 に 基 くものであ り 資 料 の 中 で 示 されている 製 品 やサービスを 提 供 してい る 各 社 の 公 式 な 見 解 でも また マーケティング 戦 略 に 基 くものではありません あくまで 弊 社 としての 意 見 だと いうことにご 注 意 ください 本 資 料 は 情 報 提 供 のみを 目 的 として 作 成 されたものであり 商 品 の 勧 誘 を 目 的 としたものではありません また 本 資 料 は 弊 社 が 信 頼 できると 判 断 した 各 種 データに 基 づき 作 成 されておりますが その 正 確 性 確 実 性 を 保 証 するもので はありません 本 資 料 に 記 載 された 内 容 は 予 告 なしに 変 更 されることもあります これらの 資 料 の 無 断 での 引 用 転 載 を 禁 じます 社 名 製 品 名 などは 一 般 に 各 社 の 商 標 または 登 録 商 標 で す なお 本 文 中 では 特 に TMマークは 明 記 しており ません 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., 2009. Unauthorized use is strictly forbidden. 2009 年 9 月