InfiniBandをPCIパススルーで用いるHPC仮想化クラスタの性能評価
Upcoming SlideShare
Loading in...5
×
 

InfiniBandをPCIパススルーで用いるHPC仮想化クラスタの性能評価

on

  • 4,058 views

 

Statistics

Views

Total Views
4,058
Views on SlideShare
4,054
Embed Views
4

Actions

Likes
2
Downloads
32
Comments
0

4 Embeds 4

http://paper.li 1
http://twitter.com 1
http://a0.twimg.com 1
https://twitter.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

InfiniBandをPCIパススルーで用いるHPC仮想化クラスタの性能評価 InfiniBandをPCIパススルーで用いるHPC仮想化クラスタの性能評価 Presentation Transcript

  • InfiniBandをPCIパススルーで用いる 仮想化HPCクラスタの性能評価 高野了成、池上努、広渕崇宏、田中良夫! ! 産業技術総合研究所 情報技術研究部門 SACSIS2011@秋葉原 2011年5月25日
  • 背景 •  Amazon EC2等、計算機ハードウェアそのものを仮 想化するIaaSの実用化が進展 –  サーバ集約によるコスト削減 –  災害時(輪番停電時)に計算・データ処理をオフロード •  HPCを意識したIaaS(HPCクラウド)の登場 –  Amazon EC2 Cluster Compute/GPU Instances –  Open Cirrus HPCオンデマンド 2 IaaS: Infrastructure as a Service
  • LINPACK実行効率の比較 0 10 20 30 40 50 60 70 80 90 100 0 50 100 150 200 250 300 350 400 450 500 InfiniBand Gigabit Ethernet 10 Gigabit Ethernet ※実行効率=(ベンチマーク性能:Rmax)/(理論性能:Rpeak) InfiniBand: 80% Gigabit Ethernet: 54% 10 Gigabit Ethernet: 74% TOP500 rank Efficiency(%) TOP500 2010年11月時点 #231 Amazon EC cluster compute instances 仮想化オーバヘッドによる 実行効率の低下と推測
  • 高性能とユーザの利便性の両立を目指した、 HPC向けIaaS環境の構築 問題 IO仮想化のオーバヘッドにより、IO intensive、   latency sensitiveなアプリの実用的な実行が困難 アプローチ VMMバイパス型デバイスの利用 –  物理計算機を1つの仮想計算機が占有 研究の目的 4 (従来からのHPC研究) 高性能の追求 (仮想化による恩恵) ユーザの利便性 ・環境整備の省力化 ・フォールトトレラント
  • 本研究の成果 •  InfiniBandをPCIパススルーで用いる仮想化HPC クラスタを構築し、ハイブリッド並列化プログラムの 性能評価を実施 •  HPC向けIaaSを提供するのに十分実用的な性能を 得られるという見込みを得た –  仮想化のオーバヘッドはアプリ依存だが、5〜15%程度 –  MPI通信に対するPCIパススルーの効果は大きく、レイテ ンシに関しては多少のオーバヘッドはあるものの、スルー プットに関しては物理計算機と遜色ない 5
  • 6 発表の流れ •  背景 •  評価対象の仮想化技術 •  性能評価実験 •  関連研究 •  まとめ
  • 評価の着目点 7 •  仮想計算機モニタ: Xen (準仮想化)、KVM(完全仮想化) •  評価の注目点 –  仮想CPUのスケジューリング –  メモリ仮想化 –  PCIパススルーの実装方法
  • 仮想CPUスケジューリング 8 Xen VM (Xen DomU) Xen Hypervisor Physical CPU VCPU VM (Dom0) Domain scheduler Guest OS Process KVM VM (QEMU process) Linux KVM Physical CPU VCPU threads Process scheduler Guest OS Process Xenの場合、CPUと VCPUの対応を固定 しないと性能がでない
  • メモリ仮想化方式(1) 9 VA PA GVA GPA 非仮想化環境 MMU   (CR3) page H/W OS ページテーブル ゲスト仮想アドレス(GVA) ゲスト物理アドレス(GPA) ホスト物理アドレス(HPA) 仮想化環境 page MMU   (CR3) Guest OS VMM ページテーブル VMMはGPAをMMUが解釈できる HPAへの変換する必要あり
  • メモリ仮想化方式(2) 10 GVA HPA GVA GPA GVA GPA GVA HPA GPA HPA 準仮想化(PVM) シャドウページング(HVM) EPT  (HVM) MMU   (CR3) page H/W Guest OS VMM page MMU   (CR3) Guest OS VMM シャドウページテーブル ページテーブル ページテーブル ○性能 ×ゲストOSの改変が必要 ○ゲストOSの改変が不要 ×SPT維持のオーバヘッド page MMU   (CR3) Guest OS ページテーブル VMM 拡張ページテーブル ○SPTの問題をプロセッサ 拡張により解決 ×TLBミスのオーバヘッド大
  • 仮想計算機のIOアーキテクチャ 11 仮想化IO VM1 NIC VMM Guest driver Physical driver Guest OS VM2 vSwitch … PCIパススルー VM1 NIC VMM Physical driver Guest OS VM2 … SR-IOV VM1 NIC VMM Physical driver Guest OS VM2 … Switch (VEB) 仮想化IO PCIパススルー SR-IOV VM間共有 ○ × ○ 性能 × ○ ○
  • PCIパススルーの実装 12 VM1 NIC VMM Guest OS VM2 … データはデバイスから 仮想計算機のメモリに 直接DMA転送 割込みインジェクション: 割込みはVMMでトラップした後、 仮想計算機に挿入 Xen: ソフトウェアベース実装 (イベントチャネル経由の メッセージ通知) KVM: ハードウェア支援の活用 (VMCSの割込み要因フラグを 更新して、VMの実行を再開) VMCS: Virtual Machine Control Structure
  • 13 発表の流れ •  背景 •  評価対象の仮想化技術 •  性能評価実験 •  関連研究 •  まとめ
  • 評価対象 メモリ仮想化 PCIパススルー (割込みインジェクション) BMM - - Xen(準仮想化) 準仮想化 準仮想化 KVM(完全仮想化) EPT VT-x 14 •  BMM(非仮想化)、Xen(準仮想化)、KVM(完全仮想化) •  評価の注目点 –  メモリ仮想化 –  PCIパススルー(割込みインジェクション)の実装 BMM: Bare Metal Machine
  • 実験環境:AIST Green Cloud 計算ノード(Dell PowerEdge M610) CPU Intel Xeon E5540/2.53GHz x2 Chipset Intel 5520 Memory 48 GB DDR3 InfiniBand Mellanox ConnectX (MT26428) 15 ブレードスイッチ InfiniBand Mellanox M3601Q (QDR 16 ports) AGCクラスタの1エンクロージャ(16ノード)を使用 実計算機のソフトウェア OS CentOS 5.5 Linux kernel 2.6.18-194.32.1.el5( KVMの場合は、 2.6.32.28) Xen 3.4.3 KVM 0.13.50 仮想計算機環境 OS CentOS 5.5 VCPU 8 Memory 45 GB
  • 使用ベンチマーク •  マイクロベンチマーク –  Intel MPI Benchmark 3.2 •  HPCアプリケーション –  NAS Parallel Benchmark (NPB) 3.3.1, class C •  MPIとOpenMPのハイブリッド版(NPB MZ)のSP、BTを使用 –  Bloss •  ブロック櫻井・杉浦法を用いた疎行列非線形固有値問題ソルバ 16 コンパイラ: gcc/gfortran 4.1.2 MPI処理系: Open MPI 1.4 (TransportはInfiniBand) 並列数値計算ライブラリ: Intel Math Kernel Library (MKL) 11.1
  • MPI片道レイテンシ 計算ノード内 (c) 計算ノード間 (a) CPUソケット内 (b) CPUソケット間 BMM 0.41 (1.00) 0.86 (1.00) 1.79 (1.00) Xen 0.41 (1.00) 083 (1.04) 3.30 (1.84) KVM 0.54 (1.32) 1.21 (1.46) 1.71 (0.96) 17 •  計算ノード内通信 –  メモリ仮想化のオーバヘッド –  BMM ≒ Xen > KVM •  計算ノード間通信 –  IO仮想化のオーバヘッド –  BMM ≒ KVM > Xen 計算ノード コア CPU (c) IB  HBA IB  HBA (b) (a) Mem. Mem. Mem. Mem. 単位はマイクロ秒(括弧内はBMMからの相対値)
  • MPI PingPong スループット 18 1 10 100 1000 10000 10 100 1k 10k 100k 1M 10M100M 1G BMM Xen KVM Message size [byte] Bandwidth[MB/sec] (a) CPUソケット内通信 1 10 100 1000 10000 10 100 1k 10k 100k 1M 10M100M 1G BMM Xen KVM Message size [byte] Bandwidth[MB/sec] (b) CPUソケット間通信 メモリ仮想化のオーバヘッド:  BMM = Xen > KVM BMMのピーク: 5.7GB/s BMMのピーク: 3.9GB/s ノード内通信
  • MPI PingPongスループット 19 1 10 100 1000 10000 10 100 1k 10k 100k 1M 10M100M 1G BMM Xen KVM Message size [byte] Bandwidth[MB/sec] (a) CPUソケット内通信 1 10 100 1000 10000 10 100 1k 10k 100k 1M 10M100M 1G BMM Xen KVM Message size [byte] Bandwidth[MB/sec] (b) CPUソケット間通信 1 10 100 1000 10000 10 100 1k 10k 100k 1M 10M100M 1G BMM Xen KVM Message size [byte] Bandwidth[MB/sec] (c) ノード間通信 小メッセージ:  Xen < KVM BMMのピーク: 5.7GB/s BMMのピーク: 3.9GB/s BMMのピーク: 2.5GB/s ノード間通信
  • Bloss: Block Sugiura-Sakurai Method •  100万次元疎行列の非線形固有値問題 •  MPIとOpenMPの階層的並列プログラム 20 Rank 0 線形方程式解法 (必要メモリ10GB) 固有値ベクトル計算 Rank 0〜N 760 MB 1 GB 1 GB 350 MB Bcast Reduce Bcast Gather 粗粒度のMPI集団通信
  • ノード単体計算性能 21 SP-MZ [sec] BT-MZ [sec] Bloss [min] BMM 86.45 (1.00) 132.06 (1.00) 21.00 (1.00) Xen 100.12 (1.16) 137.66 (1.04) 22.38 (1.07) KVM 104.36 (1.21) 144.92 (1.10) 22.98 (1.09) NPB MZ: 4プロセス x 2スレッド Bloss: 2プロセス x 4スレッド •  メモリ仮想化のオーバヘッドは5〜20% –  Xen > KVM アプリケーション実行時間
  • 0 20 40 60 80 100 0 50 100 150 200 250 4x2 8x2 16x2 32x2 64x2 ParallelEfficiency[%] Performance[Mop/stotal] x1000 Number of threads BMM Xen KVM BMM (PE) Xen (PE) KVM (PE) NPB MZ: 性能と並列化効率 22 0 20 40 60 80 100 0 50 100 150 200 250 300 4x2 8x2 16x2 32x2 64x2 ParallelEfficiency[%] Performance[Mop/stotal] x1000 Number of threads BMM Xen KVM BMM (PE) Xen (PE) KVM (PE) SP-MZ BT-MZ 並列度が上がるほど、KVMとXenの差が開く 比較的細粒度の通信が影響と推測
  • Bloss:並列化効率 23 16ノード(32x4スレッド) 実行時の理論値に対す る並列化効率 BMM: 92.15 % Xen: 85.60 % KVM: 84.49 % Xen、KVMにおける仮想 化オーバヘッドは約9% 粗粒度通信のプログラ ムでは両者に差がない 0 20 40 60 80 100 120 2x4 4x4 8x4 16x4 32x4 BMM Xen KVM Ideal Number of threads ParallelEfficiency[%]
  • 得られた知見 •  メモリ仮想化については、準仮想化を採用するXen の方がオーバヘッドが軽量 –  ノード単体の仮想化オーバヘッド •  Xen 5〜15%、KVM 10〜20% –  特に1コアに1スレッドが張り付くHPCアプリでは、EPTの TLBミス時のオーバヘッドが露わになる可能性あり •  PCIパススルーを用いることで、スループットは BMMに匹敵するが、レイテンシは増加 –  16ノード並列時の仮想化オーバヘッド •  NPB MZ(細粒度通信) Xen 30〜40%、KVM 10% •  Bloss(粗粒度通信) Xen、KVM共に10% –  Xenの割込みインジェクションのオーバヘッド大と推測 24
  • 25 発表の流れ •  背景 •  評価対象の仮想化技術 •  性能評価実験 •  関連研究 •  まとめ
  • 関連研究 仮想計算機の通信性能改善 1.  仮想化デバイス処理の最適化 •  性能チューニング [Menon2008] •  vhost-net 2.  VMMバイパス型IOの利用 •  (ハードウェア) PCIパススルー、SR-IOV •  (ソフトウェア) VirtIO [Liu2006] 3.  仮想計算機のスケジューリングを考慮した通信 •  vSNOOP [Kangarlou2010] •  MPI実行時のスケジューリングパラメータ調整 [本庄2010] 26
  • 27 発表の流れ •  背景 •  評価対象の仮想化技術 •  性能評価実験 •  関連研究 •  まとめと今後の予定
  • まとめ •  InfiniBandをPCIパススルーで用いる仮想化HPC クラスタを構築し、ハイブリッド並列化プログラムの 性能評価を実施 •  HPC向けIaaSを提供するのに十分実用的な性能を 得られるという見込みを得た –  仮想化のオーバヘッドはアプリ依存だが、5〜15%程度 –  MPI通信に対するPCIパススルーの効果は大きく、レイテ ンシに関しては多少のオーバヘッドはあるものの、スルー プットに関しては物理計算機と遜色ない 28
  • 今後の予定 •  明らかになった技術的課題の詳細調査と改良 –  割込みインジェクションのオーバヘッド •  Latency sensitiveなアプリの評価 –  メモリ仮想化のオーバヘッド •  追加実験 –  10GbEのPCIパススルー –  InfiniBandのSR-IOV対応 •  HPC向けIaaSに向けたクラウドスタックへの統合 –  Open Stack –  Condor VM Universe 29
  • 予備スライド 30
  • ノード単体計算性能 (w/ EC2) 31 SP-MZ [sec] BT-MZ [sec] Bloss [min] BMM 86.45 (1.00) 132.06 (1.00) 21.00 (1.00) Xen 100.12 (1.16) 137.66 (1.04) 22.38 (1.07) KVM 104.36 (1.21) 144.92 (1.10) 22.98 (1.09) EC2 (Xen HVM) 88.00 126.01 20.00 EC2)  CPU: X5570/2.93GHz x2  Mem: 23 GB NPB MZ: 4プロセス x 2スレッド Bloss: 2プロセス x 4スレッド •  仮想化のオーバヘッドは5〜20% AGC)  CPU: E5540/2.53GHz x2  Mem: 45 GB アプリケーション実行時間
  • 0 20 40 60 80 100 0 50 100 150 200 250 4x2 8x2 16x2 32x2 64x2 ParallelEfficiency[%] Performance[Mop/stotal] x1000 Number of threads BMM Xen KVM EC2 BMM (PE) Xen (PE) KVM (PE) EC2 (PE) NPB MultiZone (w/ EC2) 32 0 20 40 60 80 100 0 50 100 150 200 250 300 4x2 8x2 16x2 32x2 64x2 ParallelEfficiency[%] Performance[Mop/stotal] x1000 Number of threads BMM Xen KVM EC2 BMM (PE) Xen (PE) KVM (PE) EC2 (PE) SP-MZ BT-MZ
  • Bloss:並列化効率 (w/ EC2) 33 0 20 40 60 80 100 120 2x4 4x4 8x4 16x4 32x4 ParallelEfficiency[%] Number of threads BMM Xen KVM EC2 Ideal 16ノード(32x4スレッド) 実行時の理論値に対す る並列化効率 BMM: 92.15 % Xen: 85.60 % KVM: 84.49 % EC2: 74.51 % Xen、KVMにおける仮想 化オーバヘッドは約9%