コンテンツに移動
コンピューティング

最適なパフォーマンスを得るために、事前に調整された HPC VM イメージのご紹介

2021年2月12日
https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Blog_CloudMigration_D.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2021 年 2 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。

このたび Google は、密結合の MPI ワークロードを重視した、ハイ パフォーマンス コンピューティング(HPC)ワークロードに最適な CentOS 7 ベースの仮想マシン(VM)イメージの公開プレビューを発表しました。

2020 年には、Google Cloud で最適な MPI パフォーマンスを達成するうえで役立つ、複数の機能とベスト プラクティスの調整を導入しました。このベスト プラクティスを取り入れると、MPI の ping-pong レイテンシが 1 桁マイクロ秒(us)まで低下し、コンパクトな MPI メッセージであれば 10us 以下で配信できることが実証されました。

MPI パフォーマンスの向上は、アプリケーション スケーリングの改善に直結します。つまり、Google Cloud で効率良く運用できるワークロード セットの拡張につながります。このベスト プラクティスを含む VM イメージを構築するには、システムの専門知識と Google Cloud の知識が必要です。HPC 用に最適化されたイメージを利用することで、イメージの維持が容易になります。

HPC VM イメージを利用すると、Google Cloud で最適な CPU とネットワーク パフォーマンスを実現できるように調整された VM のインスタンス化が容易かつ迅速に行われます。HPC VM イメージは、Google Cloud Marketplace から追加料金なしで入手できます。

HPC VM イメージとそのメリットの詳細については後述の説明をお読みになるか、ドキュメントとクイックスタート ガイドに進み、HPC VM イメージを使用したインスタンスの作成を始めてください。

HPC VM イメージを使用するメリット

HPC VM イメージは事前に構成されており、メンテナンスが定期的に実施されます。Google Cloud での HPC のお客様に次のメリットをもたらします。

  1. すぐに使用できる HPC 対応の VM を簡単に作成でき、そのVMは密結合の HPC アプリケーション向けベスト プラクティスを備えています。HPC 対応の VM を迅速に作成でき、最新の調整で VM を最新状態に保てます。

  2. 密結合ワークロード向けのネットワーク最適化によって、小規模メッセージのレイテンシを低減し、ポイントツーポイント通信とグループ通信に大きく依存するアプリケーションにメリットをもたらします。

  3. HPC ワークロード向けのコンピューティング最適化で、パフォーマンスの変動を引き起こすシステム ジッターを減らすことによって、予測可能性に優れたシングルノードの高パフォーマンスが可能になります。

  4. さまざまな HPC ワークロード間でテストされた一連の調整を使用することで、マルチノードのパフォーマンスの一貫性と再現性を高めます。

HPC VM イメージは標準 CentOS 7 イメージを差し替えることができ、シンプルかつ簡単に使用できます。

お客様事例: CloudyCluster と HPC VM イメージを使用した SDPB ソルバーのスケーリング

Walter Landry 氏はカリフォルニア工科大学の Particle Theory Group に所属するリサーチ ソフトウェア エンジニアです。Particle Theory Group は、国際的な Bootstrap Collaboration と共同で作業しています。この共同作業では、宇宙の初期インフレーション、超電導体、量子ホール流体、相転移などの理論物理学におけるさまざまな問題に応用して場の量子論を研究するため、SDPB(半定値プログラム ソルバー)を使用します。

この共同作業の計算能力を拡大するために、同氏は SDPB が Google Cloud でどのようにスケールするか、確認したいと考えました。そこで、Omnibond CloudyCluster とともに HPC VM イメージを活用し、Intel Xeon Gold 6240 プロセッサと Infiniband FDR を基盤にしたイェール大学のオンプレミス クラスタと同等のパフォーマンスとスケーリングを実現しました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_oKU8AtM.max-1300x1300.jpg

Google Cloud の C2-Standard-60 インスタンス タイプは、第 2 世代の Intel Xeon スケーラブル プロセッサをベースにしています。インスタンスの C2 ファミリーは、密結合の MPI ワークロードに最適なノード間のレイテンシを低減するためにプレースメント ポリシーを利用します。CloudyCluster は、C2 ファミリーをすぐに使えるようにするために HPC VM イメージとプレースメント ポリシーを活用することで、研究者にとって C2 ファミリーをシームレスなものにします。これらのテストは、Google Cloud 内の多くのインスタンスにまたがる低レイテンシ ワークロードをスケールする機能を示しています。

Omnibond CloudyCluster が適用された HPC VM イメージを試す場合は、HPC VM イメージを使用した Omnibond CloudyCluster の更新バージョンを Google Cloud Marketplace で入手できます。このバージョンには、Ohio Supercomputing Center が主導し、NSF から資金援助を受けている Open OnDemand も完全に一体化されていて、HPC リソースへのウェブアクセスをシステム管理者が簡単に提供できます。

HPC VM イメージに含まれているもの

調整と最適化

HPC VM イメージの最新リリースは、密結合の HPC ワークロードに対する調整に重点を置き、最適な MPI アプリケーション パフォーマンス実現のために次のベスト プラクティスを実装しています。

  • ハイパー スレッディングを無効にする: Intel ハイパー スレッディングは HPC VM イメージでデフォルトで無効になっています。ハイパー スレッディングを無効にすると、パフォーマンスを予測しやすくなり、一部の HPC ジョブの実行時間を短縮できます。

  • MPI グループの調整: MPI グループ アルゴリズムの選択は、MPI アプリケーション パフォーマンスに重要な影響を及ぼします。HPC VM イメージには、一般的な MPI ジョブの構成に利用できる推奨の Intel MPI グループ アルゴリズムが含まれています。

  • tcp_*mem 設定を増やす: C2 マシンは最大 32 Gbps の帯域幅のサポートが可能で、Linux のデフォルト設定よりも多くの TCP メモリを利用できます。

  • ビジー ポーリングを有効にする: ビジー ポーリングは、ソケットレイヤのコードがネットワーク デバイスの受信キューをポーリングできるようにして、ネットワークの割り込みを無効にすることで、ネットワーク受信パスのレイテンシを減少させます。

  • ユーザーの制限を上げる: オープン ファイルや、すべてのユーザーが使用できるプロセスの数などのシステム リソースにデフォルトで制限があります。クラスタ内のコンピューティング ノードがユーザー間で直接共有されない HPC ジョブでは、通常これらの制限は不要です。

  • Linux のファイアウォールを無効にしSELinux を無効にする: Google Cloud CentOS Linux イメージの場合、SELinux とファイアウォールはデフォルトで有効になっています。HPC VM イメージは MPI パフォーマンスを改善するため、Linux ファイアウォールと SELinux を無効にします。

  • CPUIdle を無効にする: C2 マシンは低電力モードをオンにし、エネルギーを節約するため、CPU C ステートをサポートします。CPUIdle を無効にすると、ジッターが減少し、一定の低レイテンシが実現されます。

この調整のメリットはアプリケーションごとに異なるため、最も効率的、あるいは最も費用対効果の高い構成を検出するには、アプリケーションのベンチマーク テストを行うことをおすすめします。

HPC ベンチマークを使用したパフォーマンス測定

Intel MPI ベンチマークと、有限要素解析(ANSYS LS-DYNA)、計算流体力学(ANSYS Fluent)、気象モデル(WRF)向けの実際のアプリケーション ベンチマークの双方について、HPC VM イメージとデフォルトの CentOS 7 イメージのパフォーマンスを比較しました。

このセクションのベンチマークに使用したのは、次のバージョンの HPC VM イメージと CentOS イメージです。

  • HPC VM イメージ: hpc-centos-7-v20210119 (HPC VM イメージのドキュメントで提案されているように、--nomitigation が適用され、mpitune 構成ファイルがインストールされたもの)

  • CentOS イメージ: centos-7-v20200811

Intel MPI ベンチマーク(IMB)Ping-Pong 

IMB Ping-Pong は、VM のペア上の 2 つのランク間に固定サイズのメッセージを転送する ping-pong レイテンシを計測します。平均すると、HPC VM イメージはデフォルトの CentOS 7 イメージ(ベースライン)と比較して、ノード間の ping-pong レイテンシを最大 50% 低減します。

ベンチマークのセットアップ

  • コンパクト プレースメント ポリシーが適用された 2 台の C2-standard-60 VM

  • MPI ライブラリ: Intel MPI ライブラリ 2018 アップデート 4

  • コマンドライン: mpirun -genv I_MPI_PIN=1 -genv I_MPI_PIN_PROCESSOR_LIST=0 -hostfile <hostfile> -np 2 -ppn 1 IMB-MPI1 Pingpong -iter 50000

結果

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_BBcYedm.max-1200x1200.jpg

Intel MPI ベンチマーク(IMB)AllReduce

IMB AllReduce ベンチマークは複数の VM 間の複数のランクでグループ レイテンシを測定します。MPI_SUM オペレーションを実施して固定長のベクトルを集約します。ノードあたり 1 MPI ランク、ランクあたり 30 スレッドの場合、1 PPN(ノードあたりのプロセス数)となり、ノードあたり 30 MPI ランク、ランクあたり 1 スレッドの場合は、30 PPN となりました。8 ノード間の 240 MPI ランク(ノードあたり 30 プロセス)における AllReduce レイテンシを比較した場合、HPC VM イメージはデフォルトの CentOS 7 イメージ(ベースライン)より最大 40% 優れた性能を発揮しました。

ベンチマークのセットアップ

  • コンパクト プレースメント ポリシーが適用された 8 台の C2-standard-60 VM

  • MPI ライブラリ: Intel MPI ライブラリ 2018 アップデート 4

  • コマンドライン: mpirun -tune -genv I_MPI_PIN=1 -genv I_MPI_FABRICS ‘shm:tcp’ -hostfile <hostfile> -np <#vm*ppn> -ppn <ppn> IMB-MPI1 AllReduce -iter 50000 -npmin <#vm*ppn>

結果

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_KNr9Ypf.max-1200x1200.jpg
https://storage.googleapis.com/gweb-cloudblog-publish/images/4_1lZi9VX.max-1200x1200.jpg

HPC アプリケーション ベンチマーク: LS-DYNA、Fluent、WRF

8 個の Intel Xeon プロセッサ ベースの C2 インスタンス間で 240 MPI ランクで稼働した場合、HPC VM イメージは、アプリケーション レベルで ANSYS LS-DYNA の「3 台の車両」の衝突シミュレーション ベンチマークのパフォーマンスが最大 25% 向上しました。ANSYS Fluent と WRF では、デフォルトの CentOS イメージを使用した場合と比較して、HPC VM イメージを使用した場合は、パフォーマンスが最大 6% 向上しました。

ベンチマークのセットアップ

  • ANSYS LS-DYNA(「3-cars」モデル): AVX-2 でコンパイルされた LS-DYNA MPP バイナリを使用、コンパクト プレースメント ポリシーが適用された 8 台の C2-standard-60 VM

  • ANSYS Fluent(「aircraft_wing_14m」モデル): コンパクト プレースメント ポリシーが適用された 12 台の C2-standard-60 VM

  • WRF V3 パラレル ベンチマーク(12 KM CONUS): コンパクト プレースメント ポリシーが適用された 16 台の C2-standard-60 VM

  • MPI ライブラリ: Intel MPI ライブラリ 2018 アップデート 4

結果

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_Usg7Wn0.max-1200x1200.jpg

次のステップ: SchedMD Slurm サポートとその他の Linux ディストリビューション

HPC VM イメージをデフォルトでパートナーのサービスに組み込むことができるよう、Google は HPC パートナーと引き続き連携してまいります。来月から、Slurm を使用している HPC のお客様は、デフォルトで HPC VM イメージを利用する HPC 対応のクラスタを使用できるようになります(プレビュー バージョンはこちらからご利用ください)。

HPC Enterprise Linux オプションとサポートをお探しのお客様には、SUSE が Google と共同で開発し、Google Cloud 向けに最適化された SUSE Enterprise HPC VM イメージをご提供します。SUSE Enterprise HPC VM イメージに関心をお持ちのお客様、その他の統合や Linux ディストリビューションにご要望をお持ちのお客様は、こちらにお問い合わせください。

ぜひ実際にお試しください

今回、HPC VM イメージは、Google Cloud Marketplace からすべてのお客様がプレビュー版でお試しいただけます。HPC VM イメージを使用したインスタンスの作成について詳しくは、ドキュメントとクイックスタート ガイドをご覧ください。

Jiuxing Liu、Tanner Love、Jian Yang、Hongbo Lu、Pallavi Phene の協力に感謝します。

-プロダクト マネージャー Pavan Kumar

-ソフトウェア エンジニアリング マネージャー Jason Zhang

投稿先