HPC クラスタの作成の概要


複数のノードにスケーリングする密結合アプリケーションのインフラストラクチャを作成するには、仮想マシン(VM)インスタンスのクラスタを作成します。このガイドでは、高密度リソース割り当てを使用してハイ パフォーマンス コンピューティング(HPC)ワークロード用の仮想マシン(VM)インスタンスのクラスタを構成するための主な考慮事項と手順の概要について説明します。

Compute Engine には、同じネットワークに接続され、リソースの密な割り当てを必要としない多数の VM インスタンスを作成するさまざまな方法が用意されています。たとえば、次のいずれかの方法を使用できます。これらの方法は、Compute Engine ドキュメントの別の場所で説明されています。

個々のインスタンスを作成し、コンパクト プレースメント ポリシーをインスタンスに関連付けてレイテンシを短縮するコマンドを含むスクリプトを作成することもできます。

H4Dプレビュー)を使用すると、Compute Engine は VM インスタンスのクラスタ全体を 1 台のコンピュータとして扱うことで、大規模な HPC ワークロードの実行をサポートします。VM のトポロジ認識配置を使用すると、単一のネットワーキング スーパーブロック内の多くのインスタンスにアクセスでき、ネットワーク レイテンシを最小限に抑えることができます。これらのインスタンスで Cloud RDMA を構成して、密結合の HPC ワークロードに不可欠なノード間通信のパフォーマンスを最大化することもできます。

これらの HPC VM クラスタは、個々のリソースではなく容量のブロックを予約して、H4D で作成します。クラスタに容量ブロックを使用すると、大規模環境のデプロイと管理に次の追加機能が提供されます。

  • VM インスタンスのトポロジを考慮した配置
  • 容量を確保して管理するための高度な予約システム
  • 大規模で相互依存性の高い VM インスタンスのセット用に設計された拡張マネージド インスタンス グループ(MIG)。
  • 高度なメンテナンス スケジューリングと制御。VM インスタンスでメンテナンスがいつ、どのように行われるかをより詳細に制御できます。これは、長時間実行され、中断に敏感なワークロードにとって重要です。これには、顧客がトリガーするメンテナンスや、リソースのブロックに対するグループ化されたメンテナンスなどの機能が含まれます。

クラスタの用語

容量ブロックを扱う場合は、次の用語が使用されます。

ブロック
複数のサブブロックがノンブロッキング ファブリックで相互接続され、高帯域幅の相互接続を実現します。ブロック内の CPU は、最大 2 つのネットワーク ホップで到達できます。システムは、最適なジョブ配置を可能にするために、ブロックとサブブロックのメタデータをオーケストレーターに公開します。
クラスタ
複数のブロックが相互接続してクラスタを形成し、大規模な HPC ワークロードを実行するために数千の CPU にスケールします。各クラスタはグローバルに一意です。異なるブロック間の通信では、ホップが 1 つ追加されるだけなので、大規模な場合でも、高いパフォーマンスと予測可能性を維持できます。クラスタレベルのメタデータは、インテリジェントな大規模ジョブの配置のためにオーケストレーターでも使用できます。
高密度デプロイ
アクセラレータ リソースを物理的に互いに近い場所に割り当てて、ネットワーク ホップを最小限に抑え、レイテンシを最小限に抑えるように最適化するリソース リクエスト。
ネットワーク ファブリック
ネットワーク ファブリックは、クラスタ内のすべてのブロックと Google Cloud サービスに高帯域幅で低レイテンシの接続を提供します。Jupiter は、ソフトウェア定義ネットワーキングと光回路スイッチを活用してネットワークを進化させ、パフォーマンスを最適化する Google のデータセンター ネットワーク アーキテクチャです。
ノードまたはホスト
データセンター内の単一の物理サーバー マシン。各ホストには、関連付けられたコンピューティング リソース(CPU、メモリ、ネットワーク インターフェース)があります。これらのコンピューティング リソースの数と構成は、マシン ファミリーによって異なります。VM インスタンスは物理ホスト上にプロビジョニングされます。
オーケストレーター
オーケストレーターは、クラスタの管理を自動化します。オーケストレーターを使用すると、クラスタ内の各 VM インスタンスを管理する必要がなくなります。Slurm や Google Kubernetes Engine(GKE)などのオーケストレーターは、ジョブのキューイング、リソース割り当て、自動スケーリング(GKE の場合)、その他の日常的なクラスタ管理タスクなどのタスクを処理します。
サブブロック
これらは、ホストのグループが 1 つのラックに物理的に配置される基盤となる単位です。トップオブラック(ToR)スイッチはこれらのホストを接続し、サブブロック内の任意の 2 つの CPU 間の非常に効率的なシングルホップ通信を可能にします。Cloud RDMA は、この直接通信を容易にします。

H4D VM を使用したクラスタ作成プロセスの概要

予約済みの容量ブロックに HPC クラスタを作成するには、次の手順を完了する必要があります。

  1. 使用オプションを選択して容量を取得する
  2. デプロイ オプションとオーケストレーターを選択する
  3. オペレーティング システムまたはクラスタ イメージを選択する
  4. クラスタを作成する

使用オプションを選択して容量を取得する

使用オプションは、クラスタのリソースの取得方法を決定します。管理機能が強化されたクラスタを作成するには、高密度デプロイの容量ブロックをリクエストする必要があります。

次の表は、容量ブロックの消費オプションの主な違いをまとめたものです。

使用オプション 容量ブロックの将来の予約 Flex Start(プレビュー
ワークロードの特性 リソースの密な割り当てを必要とする大規模な長時間実行の分散ワークロード リソースの密な割り当てを必要とする短期間のワークロード
存続期間 指定なし 最長 7 日
プリエンプティブル いいえ いいえ
割り当て インスタンスを作成する前に、十分な割り当てがあることを確認します。 プリエンプティブル割り当てが課金されます。
料金
リソースの割り当て Dense Dense
プロビジョニング モデル 予約で制限 Flex Start(プレビュー
作成方法 HPC クラスタと VM を作成するには、次の操作を行う必要があります。
  1. アカウント チームに連絡して容量を予約します。
  2. 選択した日時に、予約した容量を使用して HPC クラスタを作成できます。デプロイ オプションを選択するをご覧ください。
VM を作成するには、次のいずれかのオプションを選択します。

リクエストされた容量が使用可能になると、Compute Engine はその容量をプロビジョニングします。

デプロイ オプションを選択する

クラスタのデプロイに必要な制御レベルに応じて、インフラストラクチャをより細かく制御できる高度に管理されたデプロイと、管理の少ないデプロイのどちらかを選択します。利用可能なデプロイ オプションには、HPC クラスタの管理を強化するためのオーケストレーターのインストールと構成などがあります。

高度な管理

Google にインフラストラクチャのデプロイと設定を依頼する場合は、Cluster Toolkit または Google Kubernetes Engine(GKE)を使用します。

  • Cluster Toolkit: Google が提供するオープンソース ツール。Slurm または GKE を使用するクラスタの構成とデプロイを簡素化します。事前定義されたブループリントを使用して、ブループリントに基づくデプロイ フォルダをビルドします。ブループリントまたはデプロイ フォルダを変更して、デプロイとソフトウェア スタックをカスタマイズできます。次に、Terraform または Packer を使用して、Cluster Toolkit によって生成されたコマンドを実行し、クラスタをデプロイします。

    このデプロイ方法のチュートリアルについては、RDMA 対応の HPC Slurm クラスタを作成するをご覧ください。

  • GKE: マネージド Kubernetes サービスとオープンソース コンテナ オーケストレーション プラットフォーム。GKE には、自動スケーリングや高可用性などの機能があります。これらの機能により、GKE は HPC ワークロードのデプロイと管理に適しています。たとえば、コンテナ化されたアプリケーションのオーケストレーション、専用ハードウェアのサポート、 Google Cloudエコシステムとの互換性などがあります。GKE クラスタは、GKE を直接使用するか、Cluster Toolkit を使用してデプロイできます。Google Kubernetes Engine(GKE)Standard エディションまたは Autopilot を選択できます。

    このデプロイ方法の詳細については、H4D で HPC ワークロードを実行するをご覧ください。

管理が少なく、制御が多い

クラスタとクラスタにインストールされているソフトウェアをより詳細に制御するには、次のいずれかの方法で Compute Engine クラスタを作成します。

Slurm または GKE 以外のオーケストレーターを使用する場合は、これらの方法を使用できます。VM の作成後、HPC ワークロードに必要な主要なソフトウェアを VM に手動でインストールします。起動スクリプトを使用して、VM の起動時にソフトウェアのインストールを自動的に確認し、必要に応じてソフトウェアをインストールすることもできます。

オペレーティング システム イメージを選択する

選択するオペレーティング システム(OS)イメージは、クラスタのデプロイに使用するサービスによって異なります。

  • GKE のクラスタの場合: Container-Optimized OS などの GKE ノードイメージを使用します。Cluster Toolkit を使用して GKE クラスタをデプロイする場合、デフォルトで Container-Optimized OS イメージが使用されます。ノードイメージの詳細については、GKE ドキュメントのノードイメージをご覧ください。

  • Compute Engine のクラスタの場合: 次のいずれかのイメージを使用できます。

  • Slurm クラスタの場合: Cluster Toolkit は、密結合の HPC ワークロード用に最適化された Rocky Linux 8 ベースの HPC VM イメージを使用して Slurm クラスタをデプロイします。

HPC クラスタを作成する

クラスタ作成プロセスを確認し、ワークロードの予備的な決定を行ったら、次のいずれかのオプションを使用してクラスタを作成します。

次のステップ