HPC 対応 VM インスタンスの作成

はじめに

密結合のハイ パフォーマンス コンピューティング(HPC)ワークロードは、多くの場合、Message Passing Interface(MPI)を使用してプロセスと仮想マシン(VM)インスタンス間の通信を行います。ただし、MPI パフォーマンスを最適にするために独自の VM イメージをビルドするには、システムに関する専門知識と Google Cloud の知識が必要になり、メンテナンスに費やす時間も多くなります。HPC ワークロード用の VM インスタンスをすばやく作成するには、HPC VM イメージを使用します。

HPC VM イメージは、密結合の HPC ワークロード用に最適化された CentOS 7 ベースの VM イメージです。この中には、Google Cloud で MPI のパフォーマンスを最大化する VM インスタンスの作成に必要な事前構成済みのカーネルとネットワーク調整パラメータが含まれています。

利点

HPC VM イメージには、次の利点があります。

  1. すぐに使用できる HPC 対応の VM: 密結合の HPC ワークロードの場合、パフォーマンスを手動で調整する必要はありません。VM の再起動を管理する必要も、Google Cloud の最新のアップデートを使用して最新の状態に更新する必要もありません。
  2. 密結合のワークロードのネットワーク最適化: 小規模メッセージのレイテンシを低減するように最適化されます。ポイントツーポイント通信とグループ通信に大きく依存するアプリケーションにメリットがあります。
  3. HPC ワークロードのコンピューティング最適化: システム ジッターを削減するように最適化されます。これにより、単一ノードの高パフォーマンスの予測可能性が向上します。
  4. 一貫性のある再現可能なパフォーマンス: VM イメージの標準化により、アプリケーション レベルで一貫した再現性が得られます。

特長

Google では、HPC 対応の VM に対して以下の最適化をおすすめします。HPC VM イメージには、これらの最適化がすでに含まれているため、自分で構成する必要はありません。

HPC VM イメージには、コンパクト プレースメント ポリシーを使用して c2-standard-60 インスタンスで実行される Intel MPI のグループ調整機能も含まれています。

クイックスタート

HPC 対応 VM は、gcloud コマンドライン ツールまたは Google Cloud Console で作成できます。Console の場合、Cloud Marketplace からイメージを入手できます。

始める前に

  1. このクイックスタートで gcloud コマンドライン ツールを使用するには、まず Cloud SDK をインストールして初期化する必要があります。
  2. Google Cloud Console のプロジェクト セレクタ ページで、Google Cloud プロジェクトを選択または作成します。

HPC VM インスタンスの作成

VM を作成する

Console

  1. Google Cloud Console で、HPC VM Cloud Marketplace ページに移動します。HPC VM Cloud Marketplace ページに移動

  2. [運用開始] をクリックします。

  3. HPC VM のデプロイページで、デプロイ名を入力します。この名前が VM 名のルートになります。Compute Engine は、この名前に -vm-を追加してインスタンス名を設定します。

  4. ゾーンマシンタイプを選択します。このクイックスタートでは、すべての設定をそのまま使用することも、変更することもできます。C2 マシンタイプを選択することを強くおすすめします。理由については、コンピューティング最適化インスタンスの使用をご覧ください。

  5. ブートディスクの種類ブートディスク サイズネットワーク インターフェースの設定はデフォルトのままにします。

  6. [デプロイ] をクリックします。

VM インスタンスの作成が完了すると、Cloud Deployment Manager が開き、HPC VM とその他のデプロイを管理できます。

gcloud

instances create コマンドを使用して HPC VM を作成します。ネットワーク レイテンシを短縮するには、コンパクト プレースメント ポリシーを使用して HPC VM を作成することをおすすめします。

gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --image-family=hpc-centos-7 \
        --image-project=cloud-hpc-image-public \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE

次のように置き換えます。

しばらくすると VM インスタンスの作成が完了します。インスタンスを確認してステータスを確認するには、次のコマンドを実行します。

gcloud compute instances describe INSTANCE_NAME

VM へのアクセス

Console

HPC VM インスタンスを作成すると、インスタンスが自動的に起動します。このインスタンスにアクセスする手順は次のとおりです。

  1. Google Cloud Console で、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. VM インスタンスの名前をクリックします。

  3. [リモート アクセス] セクションで、最初のプルダウン リストをクリックして、インスタンスへのアクセス方法を選択します。

Compute Engine が SSH 認証鍵を伝播してユーザーを作成します。詳細については、Linux VM への接続をご覧ください。

gcloud

HPC VM インスタンスを作成すると、インスタンスが自動的に起動します。SSH を使用してインスタンスにアクセスするには、compute ssh コマンドを使用します。

gcloud compute ssh INSTANCE_NAME

Compute Engine が SSH 認証鍵を伝播してユーザーを作成します。詳細については、インスタンスへの接続をご覧ください。

クリーンアップ

このクイックスタートで使用したリソースに対して Google Cloud アカウントに課金されないようにするには、作成した HPC VM インスタンスを削除します。

Console

  1. Google Cloud Console で、[デプロイメント] ページに移動します。

    [デプロイメント] に移動

  2. HPC VM のデプロイメントの横にあるチェックボックスをオンにします。

  3. [削除] をクリックします。

gcloud

instances delete コマンドを使用します。

gcloud compute instances delete INSTANCE_NAME

アプリケーションで Intel MPI のグループの調整を使用する

Intel MPI や OpenMPI などの MPI 実装には、通信のパフォーマンスに影響する可能性のある内部構成パラメータが多数あります。これらのパラメータは、MPI グループ通信に特に関連しています。このことによって Google Cloud 環境で大きく異なる動作をする可能性のあるアルゴリズムと構成パラメータの指定が可能です。

アプリケーションの特性に基づいて構成パラメータを調整することを強くおすすめします。また、調整構成ファイルを生成して使用する場合は、VM プレースメント ポリシーを有効にすることを強くおすすめします。

HPC VM イメージに含まれる構成の調整

HPC VM イメージには、コンパクト プレースメント ポリシーを使用して c2-standard-60 インスタンスに実行する Intel MPI グループ調整の出力構成が含まれています。この調整ファイルは以下のディレクトリにあります。

/usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018

HPC イメージには、次のシナリオをサポートする調整構成が含まれています。

  • VM の数: 1~22
  • VM あたりの MPI ランク(プロセス)数: 1、2、6、10、30

これらの調整構成を使用する手順は次のとおりです。

  1. Intel MPI ライブラリ 2018 をインストールします。

  2. 次の bash スクリプトを実行して環境を設定します。

    source MPI_INSTALL_DIR/mpivars.sh
    

    MPI_INSTALL_DIR は、Intel MPI ライブラリをインストールしたディレクトリのパスに置き換えます。

  3. 次のコマンドを使用して、HPC VM イメージに含まれている調整機能をインストールします。ディレクトリに対する root アクセス権が必要な場合は、--sudo オプションを使用します。

    google_install_mpitune
    

mpitune を使用したカスタム調整構成の生成

mpitune を使用すると、MPI グループ通信のアルゴリズムと構成パラメータを手動で指定し、構成ファイルを生成できます。

たとえば、VM あたり 22 台の VM と 30 個のプロセスを調整するには、mpivars.sh スクリプトをソースとして適切な環境を設定して、次のコマンドを実行します。ディレクトリへの書き込みアクセス権が必要です。ない場合は、root としてコマンドを実行する必要があります。

mpitune -hf hostfile -fl 'shm:tcp' -pr 30:30 -hr 22:22

これにより、アプリケーションの実行に使用できる構成ファイルが Intel MPI ディレクトリに生成されます。アプリケーションの調整構成を使用するには、次のコマンドに -tune オプションを追加します。

mpirun -tune -hostfile hostfile -genv I_MPI_FABRICS 'shm:tcp' -np 660 -ppn 30 ./app

Meltdown と Spectre の緩和策を無効にする

HPC VM イメージでは、デフォルトで Meltdown と Spectre の緩和策が有効になっています。これらの緩和策により、ワークロード固有のパフォーマンス低下につながる場合があります。これらの緩和策を無効にし、関連するセキュリティ リスクを発生させるには、次の手順を行います。

  1. HPC VM インスタンスを作成します
  2. その VM インスタンスで、次のコマンドを実行します。

    sudo google_mpi_tuning --nomitigation
    
  3. VM を再起動します。

料金

HPC VM イメージは、追加料金なしで利用できます。HPC VM イメージは Compute Engine 上で実行されるため、C2 vCPU やメモリなどの Compute Engine リソースに対する課金が発生する場合があります。詳細については、Compute Engine の料金をご覧ください。

制限事項

調整のメリットはアプリケーションによって異なります。特定の調整がパフォーマンスに悪影響を与える場合もあります。アプリケーションのベンチマークを行って、最も効率的でコスト効率の高い構成を見つけることをおすすめします。

次のステップ