Azure HBv3 VM での HPC パフォーマンスとスケーラビリティの結果
寄稿者:
Jithin Jose、
Jon Shelley、
Evan Burness
新しい AMD EPYC 7003 “Milan” プロセッサを搭載したハイパフォーマンス コンピューティング (HPC) 向け Azure HBv3 仮想マシンの一般提供が開始されました。こちらのブログでは、これらの新しい VM についての詳細な技術情報について紹介します。HBv3 VM は、CFD、FEA、および量子化学ワークロードでのテストにおいて、以下のような特徴を示しています。
- 小規模な HPC ワークロードにおいて6 倍高速 (例: 16 コアの HBv3 と H16mr の比較)
- 中規模の HPC ワークロードにおいて 17% 高速 (1 台の HBv3 VM と HBv2 VM の比較)
- 大規模な HPC ワークロードにおいて 12 ~ 18% 高速 (2 ~ 16 台の HBv3 VM と HBv2 VM の比較)
- 超大規模な HPC ワークロードにおいて 23 ~ 89% 高速 (65 台以上の VM)
- 約 300 台の VM と最大 33,000 CPU コアまで MPI HPC ワークロードをスケーリング可能
HBv3 VM – VM サイズの詳細と技術概要
VM サイズ | CPU コア | メモリ (GB) | コア あたりのメモリ (GB) |
L3 キャッシュ (MB) |
NVMe SSD | InfiniBand RDMA ネットワーク |
---|---|---|---|---|---|---|
Standard_HB120-16rs_v3 | 16 | 448 GB | 28 GB | 480 MB | 2 x 960 GB | 200 Gbps |
Standard_HB120-32rs_v3 | 32 | 448 GB | 14 GB | 480 MB | 2 x 960 GB | 200 Gbps |
Standard_HB120-64rs_v3 | 64 | 448 GB | 7 GB | 480 MB | 2 x 960 GB | 200 Gbps |
Standard_HB120-96rs_v3 | 96 | 448 GB | 4.67 GB | 480 MB | 2 x 960 GB | 200 Gbps |
Standard_HB120rs_v3 | 120 | 448 GB | 3.75 GB | 480 MB | 2 x 960 GB | 200 Gbps |
これらの VM には HBv2 VM と多くの共通点がありますが主要な例外が 2 つあります。それは CPU とローカル SSD です。完全な仕様は以下のとおりです。
- 最大 120 の AMD EPYC 7V13 CPU コア(EPYC 7003 シリーズ “Milan”)
- 45 GHz のベース クロック/3.675 GHz のブースト クロック
- コアあたり最大 32 MB の L3 キャッシュ (7002 シリーズ “Rome” の倍幅の L3)
- 448 GB の RAM
- 340 GB/秒のメモリ帯域幅 (STREAM TRIAD)
- 200 Gbps の HDR InfiniBand (SRIOV)、Mellanox ConnectX-6 NIC、アダプティブ ルーティング対応
- 2 x 900 GB の NVMe SSD (SSD あたり5 GB/秒 (読み取り) および 1.5 GB/秒 (書き込み)、ラージ ブロック IO)
BIOS 設定 | HBv2 | HBv3 |
---|---|---|
NPS (ソケットあたりのノード数) | 4 | 2 |
NUMA としての L3 | 有効 | 無効 |
OS 内の NUMA ドメイン数 | 30 | 4 |
C ステート | 無効 | 有効 |
マイクロベンチマーク
2 つのマイクロベンチマークにおけるさまざまな構成を使用した初期パフォーマンスの特性、HB ファミリの VM が最適化されている、一般的に使用される HPC アプリケーションが以下で示されています。
メッセージ サイズ (バイト) | HPC-X (2.7.4) |
Intel MPI (2021) |
MVAPICH2 (2.3.5) |
OpenMPI (4.0.5) |
---|---|---|---|---|
0 | 1.62 | 1.69 | 1.73 | 1.63 |
1 | 1.62 | 1.69 | 1.75 | 1.63 |
2 | 1.62 | 1.69 | 1.75 | 1.63 |
4 | 1.62 | 1.7 | 1.75 | 1.64 |
8 | 1.63 | 1.69 | 1.75 | 1.63 |
16 | 1.63 | 1.7 | 1.79 | 1.64 |
32 | 1.78 | 1.83 | 1.79 | 1.79 |
64 | 1.73 | 1.8 | 1.81 | 1.74 |
128 | 1.86 | 1.91 | 1.95 | 1.84 |
256 | 2.4 | 2.45 | 2.48 | 2.37 |
512 | 2.47 | 2.54 | 2.52 | 2.46 |
1,024 | 2.58 | 2.63 | 2.63 | 2.55 |
2,048 | 2.79 | 2.83 | 2.8 | 2.76 |
4,096 | 3.52 | 3.54 | 3.55 | 3.52 |
メッセージ サイズ (バイト) | HPC-X (2.7.4) |
Intel MPI (2021) |
MVAPICH2 (2.3.5) |
OpenMPI (4.0.5) |
---|---|---|---|---|
4,096 | 8,612.8 | 7,825.14 | 6,762.06 | 8,525.96 |
8,192 | 12,590.63 | 11,948.18 | 9,889.92 | 12,583.98 |
16,384 | 11,264.74 | 11,149.76 | 13,331.45 | 11,273.22 |
32,768 | 16,767.63 | 16,667.68 | 17,865.53 | 16,736.85 |
65,536 | 19,037.64 | 19,081.4 | 20,444.14 | 18,260.97 |
131,072 | 20,766.15 | 20,804.23 | 21,247.24 | 20,717.68 |
262,144 | 21,430.66 | 21,426.68 | 21,690.97 | 21,456.29 |
524,288 | 21,104.32 | 21,627.51 | 21,912.17 | 21,805.95 |
1,048,576 | 21,985.8 | 21,999.75 | 23,089.32 | 21,981.16 |
2,097,152 | 23,110.75 | 23,946.97 | 23,252.35 | 22,425.09 |
4,194,304 | 24,666.74 | 24,666.72 | 24,654.43 | 24,068.25 |
アプリケーション パフォーマンス – 小規模から大規模
カテゴリ: ライセンスの制約を受ける小規模な (1 ノード) HPC ジョブ
構成の詳細: 少数コアでハイ パフォーマンスをサポートするように構築されている従来の VM サイズ (高周波数 Xeon E5 2667 v3 “Haswell” (ベース クロック 3.2 GHz、ターボ周波数 3.6 GHz) を搭載した H16/H16r/H16mr VM) でこのワークロードをサポートするのに必要となるコアあたりのライセンスと一致するように、HBv3 の 16 コア VM バージョンを使用しました。これは、ソリューションの総コストの大半をソフトウェア ライセンス コストが占めるワークロードを実行しているお客様に関して、より多くのコアあたりのソフトウェア ライセンスの料金を支払う必要があるデメリットによってインフラストラクチャのパフォーマンス向上およびドルあたりのパフォーマンス向上のメリットが相殺される (またはデメリットがメリットを上回る) ことがないようにするためです。したがって、このお客様シナリオの目的は、EPYC 7003 シリーズ プロセッサを搭載した 1 台の HBv3 VM が同数以下のコア数でパフォーマンス向上を実現できるかどうかを確認することです。
VM 数 | コア数 | HBv3 (16 コア VM) | H16mr (16 コア VM) | ||
---|---|---|---|---|---|
VM | コア | ソルバー パフォーマンス (GFLOPS) |
経過時間 (ソルバー時間 + IO) |
ソルバー パフォーマンス (GFLOPS) |
経過時間 (ソルバー時間 + IO) |
1 | 1 | 3.5 | 1,035 | 1.4 | 2,411 |
1 | 2 | 6.2 | 647 | 2.9 | 1,327 |
1 | 4 | 16.3 | 454 | 6.2 | 909 |
1 | 8 | 27.6 | 327 | 9.3 | 547 |
1 | 16 | 42.9 | 190 | 15.3 | 400 |
図 1: HBv3 VM と H16mr VM のソフトウェア ライセンス交付済みの CPU コア数の増加に応じた ANSYS Mechanical の絶対的なソルバー パフォーマンスの比較
図 2: HBv3 VM (16 コア VM サイズ) と H16mr VM の 1 ~ 16 のライセンス交付済みの CPU コア数における ANSYS Mechanical の相対的パフォーマンスの比較
結論: Azure HBv3 VM は、お客様のソリューションの総コストの大半をソフトウェア ライセンスが占める、少数コアの小規模なワークロードにおいて、非常に大規模なパフォーマンス向上を実現します。ANSYS Mechanical 上で実行した V19cg-1 ベンチマークでのテストでは、8 コアと 16 コアでのワークロードの実行時に、それぞれ 3 倍および 2.6 倍のパフォーマンス向上が示されました。これにより、ソフトウェア ライセンス数を一定に保ったまま HPC パフォーマンスを向上させたいというお客様の要求に応えることができます。
また、4 コアの HBv3 VM でも、H16mr VM の 16 コアすべてを使用した場合よりもわずかに高いパフォーマンスを実現できるため、ライセンス使用量を 4 分の 1 に減らすことも可能です。これにより、ソリューションの総コストを削減したいというお客様の要求に応えることができます。
カテゴリ: 中規模の HPC ジョブ (1 つの大規模なモダン ノード サイズ)
構成の詳細: 120 コアの HBv2 サイズと一致するように、120 コアの HBv3 VM サイズを使用しました。EPYC 7002 シリーズ (Rome) CPU コアおよび 340 GB/秒のメモリ帯域幅を備えている HBv2 は、既にパブリック クラウドで最高レベルのパフォーマンスとスケーラビリティを実現しているシングルおよびマルチノードの CFD ワークロード向けプラットフォームです。したがって、EPYC 7003 シリーズ (Milan) を搭載した HBv3 が CFD のパフォーマンスをどのくらい向上させるかを評価することが重要になります。120 コアの VM 1 台でテストを実施することも重要になります。多くの Azure のお客様の HPC ワークロードがこのスケールで実行されており、この比較は実稼働ワークロードのシナリオとの関連性が非常に高いためです。
図 3: 20 回の反復におけるソルバーの経過時間で示される Star-CCM+ の絶対的パフォーマンスに関する Azure HBv3 VM と Azure HBv2 VM の比較
図 4: Star-CCM+ の相対的パフォーマンスに関する 1 台の HBv3 VM と HBv2 VM の比較
結論: このテストでは、Azure HBv3 VM は、Star-CCM+ 用の Siemens の CFD ベンチマークである 1 億セルの Le Mans Coupled Solver ケースなど、中規模の HPC ワークロードにおいて、17% のパフォーマンス向上を実現しています。これらの結果は、適切に並列化されたアプリケーションでの 1 台の VM 上での 非 MPI HPC ワークロードにおけるパフォーマンス向上をある程度的確に示しています。EPYC 7003 シリーズの Zen 3 コアのクロックあたりの命令実行数は Azure HBv2 VM に搭載された EPYC 7002 シリーズの Zen 2 コアよりも 19% 増加していますが、この 17% の差はそれと近い値になっています。
EPYC 7002 シリーズ CPU を搭載した HBv2 もこのモデルで非常に高いパフォーマンスを示しており、HBv3 VM を除けば、今もなお HPC ワークロード用のパブリック クラウドで最も高速でスケーラブルな VM であることに留意してください。2020 年第 4 四半期の時点で、Siemens も、最高のパフォーマンスおよびドルあたりのパフォーマンスを実現するために、Intel Xeon よりも AMD EPYC 7002 シリーズ (Rome) を使用することを推奨しています。したがって、HBv2 VM も HBv3 VM も、非常に優れたパフォーマンスと価値のオプションを Azure HPC のお客様に提示します。
最後に、特記すべき違いの 1 つとして、HBv2 VM でのテストは CentOS 7.7 を使用して実施され、HBv3 VM でのテストは CentOS 8.1 を使用して実施されている点が挙げられます。どちらのイメージも同じ HPC 中心の調整が行われていますが、OS の違いが計測されたパフォーマンスの差に影響しているかどうかを確認するために追跡調査を実施する価値はあります。また、HBv2 VM のパフォーマンスについては、最高のパフォーマンスが得られた (120 コアのうちの) 116 コアを使用した場合の結果を採用しています。HBv3 VM については、120 コアすべてを使用した場合に最高のパフォーマンスが得られました。
カテゴリ: 大規模な HPC ジョブ (2 ~ 16 台のモダン ノード、または最大 2,000 CPU コア/ジョブ)
構成の詳細: ここでも、120 コアの HBv2 サイズと一致するように、120 コアの HBv3 VM サイズを使用しました。EPYC 7002 シリーズ (Rome) CPU コアおよび 340 GB/秒のメモリ帯域幅を備えている HBv2 は、既にパブリック クラウドで最高レベルのパフォーマンスとスケーラビリティを実現しているシングルおよびマルチノードの CFD ワークロード向けプラットフォームです。したがって、EPYC 7003 シリーズ (Milan) を搭載した HBv3 が CFD のパフォーマンスをどのくらい向上させるかを評価することが重要になります。
最大 2,000 プロセッサ コアの大規模なマルチノード (パブリック クラウドのコンテキストにおいては “マルチ VM” と言った方がより適切かもしれません) のパフォーマンスが重要なのは、解析時間を短縮したり、モデルの忠実度を向上させたりするために、多くの Azure のお客様がこのスケールで MPI ワークロードを実行している (または実行したいと考えている) ためです。HBv2 VM も HBv3 VM も、VM の 120 コアのうちの 116 コアを使用した場合に最高のパフォーマンスが得られることがわかったため、この設定をスケーリング演習に使用しました。また、両方のケースでアダプティブ ルーティングを使用しました。これは、こちらの手順に従って適用できます。前述のとおり、HBv2 のベンチマークでは CentOS 7.7 を使用し、HBv3 のベンチマークでは CentOS 8.1 を使用しました。
図 5: 20 回の反復におけるソルバーの経過時間で示される Star-CCM+ の絶対的パフォーマンスに関する 2 ~ 16 台の Azure HBv3 VM と Azure HBv2 VM の比較
図 6: Star-CCM+ の相対的パフォーマンスに関する 2 ~ 16 台の Azure HBv3 VM と Azure HBv2 VM の比較
結論: このテストでは、Azure HBv3 VM は、Star-CCM+ 用の Siemens の CFD ベンチマークである 1 億セルの Le Mans Coupled Solver ケースなど、大規模な HPC ワークロードにおいて、2 ~ 16 台 (最大 2,000 CPU コア) の VM のスケール範囲で、12 ~ 18% のパフォーマンス向上を実現しています。これらの結果は、適切に並列化されたアプリケーションでの 1 台の VM 上での 非 MPI HPC ワークロードにおけるパフォーマンス向上をある程度的確に示しています。EPYC 7003 シリーズの Zen 3 コアのクロックあたりの命令実行数は Azure HBv2 VM に搭載された EPYC 7002 シリーズの Zen 2 コアよりも 19% 増加していますが、この 12 ~ 17% の差はそれとある程度近い値になっています。
EPYC 7002 シリーズ CPU を搭載した HBv2 もこのモデルで非常に高いパフォーマンスを示しており、HBv3 VM を除けば、今もなお HPC ワークロード用のパブリック クラウドで最も高速でスケーラブルな VM であることに留意してください。2020 年第 4 四半期の時点で、Siemens も、最高のパフォーマンスおよびドルあたりのパフォーマンスを実現するために、Intel Xeon よりも AMD EPYC 7002 シリーズ (Rome) を使用することを推奨しています。したがって、HBv2 VM も HBv3 VM も、非常に優れたパフォーマンスと価値のオプションを Azure HPC のお客様に提示します。
超大規模な MPI ジョブでの大幅なパフォーマンス向上
カテゴリ: 超大規模な HPC ジョブ (64 ~ 128 台のノード、または最大 4,000 ~ 最大 16,000 CPU コア/ジョブ)
構成の詳細: ここでも、120 コアの HBv2 サイズと一致するように、120 コアの HBv3 VM サイズを使用しました。EPYC 7002 シリーズ (Rome) CPU コアおよび 340 GB/秒のメモリ帯域幅を備えている HBv2 は、既にパブリック クラウドで最高レベルのパフォーマンスとスケーラビリティを実現しているシングルおよびマルチノードの CFD ワークロード向けプラットフォームです。したがって、EPYC 7003 シリーズ (Milan) を搭載した HBv3 が CFD のパフォーマンスをどのくらい向上させるかを評価することが重要になります。
最大 16,000 プロセッサ コアの超大規模なマルチノード (パブリック クラウドのコンテキストにおいては “マルチ VM” と言った方がより適切かもしれません) のパフォーマンスが重要なのは、解析時間を短縮したり、モデルの忠実度を向上させたりするために、一部の Azure のお客様がこのようなスケールで MPI ワークロードを実行している (または実行したいと考えている) ためです。
OpenFOAM については、さまざまな構成をテストし、ノードあたりのプロセス数に関する最適なパフォーマンス設定がスケーリングの段階ごとに異なることがわかりました。したがって、それぞれに最適な設定を以下で示しています。つまり、HBv2 VM と HBv3 VM に最適な設定を示しています。
CP2K と Star-CCM+ については、VM あたり 120 のプロセッサ コアのうちの 116 コアを使用した場合に最高のパフォーマンスが得られることがわかったため、この設定をスケーリング演習に使用しています。
また、すべてのケースでアダプティブ ルーティングを使用しました。これは、こちらの手順に従って適用できます。
図 7: 大規模なジョブでの OpenFOAM、CP2K、Star-CCM+ の相対的パフォーマンスに関する HBv3 VM と HBv2 VM の比較
結論: 幅広く使用されている複数の HPC アプリケーションでのテストで確認された共通のパターンとして、スケーリングの増大に応じて、AMD EPYC 7003 シリーズ プロセッサを搭載した HBv3 VM と AMD EPYC 7002 シリーズ プロセッサを搭載した HBv2 VM のパフォーマンスの差が大きく (多くの場合急激に) 広がることが挙げられます。
- Star-CCM+ の場合、HBv3 と HBv2 のパフォーマンスの差は、VM が 1 ~ 16 台のときに 12 ~ 18% であるのに対して、VM が 128 台 (14,848 コア) のときに 23% まで広がります。
- CP2K の場合、HBv3 と HBv2 のパフォーマンスの差は、VM が 1 ~ 16 台のときに 10 ~ 15% であるのに対して、VM が 128 台 (14,848 コア) のときに 43% まで広がります。
- OpenFOAM の場合、HBv3 と HBv2 のパフォーマンスの差は、VM が 1 ~ 16 台のときに 12 ~ 18% であるのに対して、VM が 64 台 (4,096 コア) のときに約 90% まで広がります。
これは極めて特異な現象であり、さまざまなアプリケーションでこうした現象が繰り返されることは、EPYC 7003 シリーズ プロセッサが超大規模な MPI ワークロードに最適であることを示しています。この結果の特異性について理解するために、HBv2 VM と HBv3 VM が以下の共通点を持つことを念頭に置いてください。
- 最大 120 プロセッサ コア (いずれも AVX2 対応)
- 最大 330 ~ 340 GB/秒のメモリ帯域幅 (STREAM TRIAD)
- VM あたり 480 MB の L3 キャッシュ
- 共通のネットワーク設定を特徴とする Mellanox HDR 200 Gb InfiniBand (VM あたり 1 NIC)
注目すべき点として、これらのアプリケーションですべての (またはほぼすべての) コアがロードされている場合、HBv3 VM は最大 200 ~ 250 MHz 高い周波数で動作可能であることが挙げられます (HBv2 が最大 2,820 MHz で動作可能であるのに対して、HBv3 は最大 3,000 ~ 3,100 MHz で動作可能)。ただし、この優位性はワークロードに依存し、この優位性が前述のベンチマーク ケースで存在していたとしても、計測されたパフォーマンスの差の広がりの主な要因であるとは言えません。
一方、これらのワークロードにプラスの効果をもたらすと思われる主要な相違点として、Milan と Zen3 コアの L3 アーキテクチャが挙げられます。サーバー (および VM) あたりの L3 キャッシュの合計数は同じですが、ハードウェア レベルでさらに小さく分割されています。“Rome” の L3 キャッシュ境界は 4 コアごとであり、サイズは 16 MB です。“Milan” の L3 キャッシュ境界は 8 コアごとであり、サイズは 32 MB です。つまり、デュアルソケットの Rome サーバーは物理的に 32 ブロックでそれぞれ 4 つのコアと 16 MB の L3 が含まれていますが、デュアルソケットの Milan サーバーは物理的に半分の 16 ブロックでそれぞれ倍のコア (8 つ) と L3 (32 MB) が含まれています。これにより、キャッシュ ミスの可能性が大幅に減少します。これは、当該ワークロードに対する有効メモリ帯域幅が増大することを意味します。
Azure HPC チームは、追加のベンチマークとプロファイリングでこの発見について追跡調査を実施する予定です。当面は、スーパーコンピューティング クラスの MPI ワークロードに関して、EPYC 7003 シリーズが論理的先行版となる Rome に対して最大規模の差別化を実現するものと思われます。
アプリケーション パフォーマンス – 最大規模
カテゴリ: 最大規模の HPC ジョブ (20,000 を超えるコア/ジョブ)
構成の詳細: このスケーリングの調査でも 120 コアの HBv3 VM サイズを使用して HBv3 VM の能力についてテストし、一部の最大規模のスーパーコンピューターで確保されるレベルまでスケールしました。最大規模のパフォーマンスの評価は、スピードが重視される気象モデリング、地球物理学的再シミュレーション、効果的な病気の治療法に関する高度な研究などを行っている、Azure の最も要求の厳しい HPC のお客様にとって重要な実証ポイントとなります。ここでも、CentOS 8.1、アダプティブ ルーティング、および HPC-X MPI バージョン 2.7.4 を使用して Star-CCM+ バージョン 15.04.088 をテストしました。最高のパフォーマンスを実現する構成であるため、VM で使用可能な 120 コアのうちの 116 コアを使用して、スケーリング演習を実施しました。
図 8: 1 ~ 288 台の Azure HBv3 VM のスケールにおける Star-CCM+ の相対的パフォーマンス
結論: このテストでは、1 ~ 228 台の VM (116 の CPU コアから 33,408 の CPU コア) のスケールで Azure HBv3 VM のパフォーマンスが向上することが示されました。パフォーマンスは、VM が 64 台 (7,424 コア) のときまで線形または超線形で向上します。つまり、Azure の HPC のお客様は、パフォーマンス向上によって、ジョブの総コストを増大させることなく、プロビジョンする HBv3 インフラストラクチャの量に直接対応する解析時間の短縮を実現できます。VM が 64 台を超えると、プロセスあたりの作業量が極めて少なくなり、必然的にスケーリング効率が低下します。ただし、VM が 288 台のときでも、75% のスケーリング効率と 215 倍を超えるジョブのパフォーマンス向上を実現します。