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 日
プリエンプティブル いいえ いいえ
割り当て インスタンスを作成する前に、十分な割り当てがあることを確認します。 プリエンプティブル割り当ては課金対象です。
料金
リソースの割り当て 高密度 高密度
プロビジョニング モデル 予約で制限 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 クラスタを作成する

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

次のステップ