Batch プールで RDMA または GPU インスタンスを使用する

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

特定の Batch ジョブを実行するために、大規模な計算用に設計された Azure VM サイズを利用できます。 次に例を示します。

  • マルチインスタンスの MPI ワークロードを実行するには、リモート ダイレクト メモリ アクセス (RDMA) 用のネットワーク インターフェイスを備えた H シリーズなどのサイズを選択できます。 これらのサイズでは、InfiniBand ネットワークに接続してノード間通信を行うため、MPI アプリケーションを高速化できます。

  • CUDA アプリケーションの場合は、NVIDIA Tesla グラフィックス処理装置 (GPU) カードを備えた N シリーズのサイズを選択します。

この記事では、Batch プールで Azure の特殊なサイズを使用するためのガイダンスと例を示します。 仕様と背景については、以下をご覧ください。

  • ハイ パフォーマンス コンピューティング VM のサイズ (LinuxWindows)

  • GPU 対応 VM サイズ (LinuxWindows)

Note

特定の VM サイズは、Batch アカウントを作成したリージョンで使用できない場合があります。 特定のサイズが使用可能かどうかを確認するには、「リージョン別の利用可能な製品」および Batch プールの VM サイズの選択に関するページをご覧ください。

依存関係

Batch のコンピューティング集中型サイズの RDMA または GPU の機能は、特定のオペレーティング システムでのみサポートされます。 (サポートされるオペレーティング システムの一覧は、これらのサイズで作成された仮想マシンでサポートされているオペレーティング システムの一部です。)Batch プールの作成方法によっては、追加のドライバーや他のソフトウェアをノードにインストールまたは構成する必要があります。 以下の表に、これらの依存関係を示します。 詳細については、リンク先の記事をご覧ください。 Batch プールの構成オプションについては、この記事で後述します。

Linux プール - 仮想マシン構成

サイズ 機能 オペレーティング システム 必要なソフトウェア プールの設定
H16r、H16mr
NC24r、NC24rs_v2、NC24rs_v3、ND24rs*
RDMA Ubuntu 22.04 LTS、または
CentOS-based HPC
(Azure Marketplace)
Intel MPI 5

Linux RDMA ドライバー
ノード間通信を有効にし、同時実行タスクの実行を無効にする
NC、NCv2、NCv3、NDv2 シリーズ NVIDIA Tesla GPU (シリーズによって異なります) Ubuntu 22.04 LTS、または
CentOS 8.1
(Azure Marketplace)
NVIDIA CUDA または CUDA Toolkit ドライバー 該当なし
NV、NVv2、NVv4 シリーズ NVIDIA Tesla M60 GPU Ubuntu 22.04 LTS、または
CentOS 8.1
(Azure Marketplace)
NVIDIA GRID ドライバー 該当なし

*RDMA 対応 N シリーズのサイズには NVIDIA Tesla GPU も含まれます

重要

このドキュメントでは、サポート終了 (EOL) が近い、また既にサポートが終了した Linux のリリース バージョンを参照しています。 より新しいバージョンへの更新をご検討ください。

Windows プール - 仮想マシン構成

サイズ 機能 オペレーティング システム 必要なソフトウェア プールの設定
H16r、H16mr
NC24r、NC24rs_v2、NC24rs_v3、ND24rs*
RDMA Windows Server 2016、2012 R2、または
2012 (Azure Marketplace)
Microsoft MPI 2012 R2 以降または
Intel MPI 5

Windows RDMA ドライバー
ノード間通信を有効にし、同時実行タスクの実行を無効にする
NC、NCv2、NCv3、ND、NDv2 シリーズ NVIDIA Tesla GPU (シリーズによって異なります) Windows Server 2016 または
2012 R2 (Azure Marketplace)
NVIDIA CUDA または CUDA Toolkit ドライバー 該当なし
NV、NVv2、NVv4 シリーズ NVIDIA Tesla M60 GPU Windows Server 2016 または
2012 R2 (Azure Marketplace)
NVIDIA GRID ドライバー 該当なし

*RDMA 対応 N シリーズのサイズには NVIDIA Tesla GPU も含まれます

Windows プール - クラウド サービス構成

警告

Cloud Services 構成プールは非推奨とされます。 代わりに、仮想マシン構成プールを使用してください。

サイズ 機能 オペレーティング システム 必要なソフトウェア プールの設定
H16r、H16mr RDMA Windows Server 2016、2012 R2、2012、または
2008 R2 (ゲスト OS ファミリ)
Microsoft MPI 2012 R2 以降または
Intel MPI 5

Windows RDMA ドライバー
ノード間通信を有効にし、
同時実行タスクの実行を無効にする

Note

N シリーズのサイズは、Cloud Services の構成プールではサポートされていません。

プール構成オプション

Batch プール用の特殊な VM サイズを構成するために、必要なソフトウェアやドライバーをインストールするためのいくつかのオプションがあります。

  • 仮想マシン構成のプールの場合、ドライバーとソフトウェアがプレインストールされている構成済みの Azure Marketplace VM イメージを選択します。 例 :

  • インストールされているドライバー、ソフトウェア、またはその VM サイズに必要な他の設定を含む、カスタムの Windows または Linux VM イメージを作成します。

  • zip 形式のドライバーまたはアプリケーションのインストーラーから Batch のアプリケーション パッケージを作成し、パッケージをプール ノードにデプロイするように Batch を構成し、各ノードが作成されたときに 1 回インストールします。 たとえば、アプリケーション パッケージがインストーラーの場合は、プールのすべてのノードにアプリケーションをサイレント インストールする開始タスク コマンド ラインを作成します。 ワークロードが特定のドライバー バージョンに依存する場合は、アプリケーション パッケージとプールの開始タスクの使用を検討してください。

    Note

    開始タスクは管理者特権で実行する必要があり、成功するまで待機する必要があります。 実行時間の長いタスクは、Batch プールをプロビジョニングする時間が長くなります。

例: Windows NC VM プールの NVIDIA GPU ドライバー

Windows NC ノードのプールで CUDA アプリケーションを実行するには、NVDIA GPU ドライバーをインストールする必要があります。 次の手順の例では、アプリケーション パッケージを使用して NVIDIA GPU ドライバーをインストールします。 ワークロードが特定の GPU ドライバー バージョンに依存する場合は、このオプションを選択できます。

  1. NVIDIA の Web サイトから Windows Server 2016 上の GPU ドライバーのセットアップ パッケージをダウンロードします (たとえば、バージョン 411.82)。 GPUDriverSetup.exe のような短い名前を使用して、ファイルをローカルで保存します。
  2. パッケージの zip ファイルを作成します。
  3. パッケージを Batch アカウントにアップロードします。 手順については、アプリケーション パッケージのガイダンスを参照してください。 アプリケーション ID (GPUDriver など) とバージョン (411.82 など) を指定します。
  4. Batch API または Azure portal で、必要な数のノードとスケールを指定して、仮想マシン構成でプールを作成します。 次の表に、開始タスクを使用して NVIDIA GPU ドライバーを自動的にインストールする際の設定の例を示します。
設定
イメージの種類 Marketplace (Linux/Windows)
発行元 MicrosoftWindowsServer
プラン WindowsServer
SKU 2016-Datacenter
ノード サイズ NC6 Standard
アプリケーション パッケージの参照 GPUDriver、バージョン 411.82
開始タスクが有効 True
[コマンド ライン] - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
ユーザー ID - Pool autouser、admin
成功を待機 - True

例: Linux NC VM プールの NVIDIA GPU ドライバー

Linux NC ノードのプールで CUDA アプリケーションを実行するには、CUDA Toolkit から必要な NVIDIA Tesla GPU ドライバーをインストールする必要があります。 次の手順の例では、GPU ドライバーがインストールされたカスタム Ubuntu 22.04 LTS イメージを作成してデプロイします。

  1. Ubuntu 22.04 LTS を実行する Azure NC シリーズ VM をデプロイします。 たとえば、米国中南部リージョンに VM を作成します。
  2. Azure portal、Azure サブスクリプションに接続するクライアント コンピューター、または Azure Cloud Shell を使用して、NVIDIA GPU ドライバー拡張機能を VM に追加します。 または、手順に従って VM に接続し、手動で CUDA ドライバーをインストールします。
  3. 次の手順に従って、Batch 用の Azure Compute Gallery イメージを作成します。
  4. NC VM をサポートするリージョンに Batch アカウントを作成します。
  5. Batch API または Azure Portal で、カスタム イメージを使い、必要な数のノードとスケールを指定して、プールを作成します。 次の表に、イメージのプール設定の例を示します。
設定
イメージの種類 カスタム イメージ
カスタム イメージ イメージの名前
ノード エージェント SKU batch.node.ubuntu 22.04
ノード サイズ NC6 Standard

例: Windows H16r VM プールの Microsoft MPI

Azure H16r VM ノードのプールで Windows MPI アプリケーションを実行するには、HpcVmDrivers 拡張機能を構成し、Microsoft MPI をインストールする必要があります。 必要なドライバーとソフトウェアがインストールされたカスタムの Windows Server 2016 イメージをデプロイする手順の例を次に示します。

  1. Windows Server 2016 を実行する Azure H16r VM をデプロイします。 たとえば、米国西部リージョンに VM を作成します。
  2. Azure サブスクリプションに接続するクライアント コンピューターから Azure PowerShell コマンドを実行して、または Azure Cloud Shell を使用して、HpcVmDrivers 拡張機能を VM に追加します。
  3. VM へのリモート デスクトップ接続を作成します。
  4. 最新バージョンの Microsoft MPI のセットアップ パッケージ (MSMpiSetup.exe) をダウンロードし、Microsoft MPI をインストールします。
  5. 次の手順に従って、Batch 用の Azure Compute Gallery イメージを作成します。
  6. Batch API または Azure portal で、Azure Compute Gallery を使い、必要な数のノードとスケールを指定して、プールを作成します。 次の表に、イメージのプール設定の例を示します。
設定
イメージの種類 カスタム イメージ
カスタム イメージ イメージの名前
ノード エージェント SKU batch.node.windows amd64
ノード サイズ H16r Standard
ノード間通信が有効 True
ノードごとの最大タスク数 1

例: Linux H16r VM プール上の Intel MPI

Linux HB シリーズのノードのプールで MPI アプリケーションを実行するためのひとつの方法として、Azure Marketplace から入手した CentOS-based 8.1 HPC イメージを使用することがあります。 Linux RDMA ドライバーと Intel MPI はプレインストールされています。 このイメージは、Docker コンテナーのワークロードもサポートしています。

Batch API または Azure portal で、このイメージを使い、必要な数のノードとスケールを指定して、プールを作成します。 次の表に、プール設定の例を示します。

設定
イメージの種類 Marketplace (Linux/Windows)
発行元 OpenLogic
プラン CentOS-HPC
SKU 8.1
ノード サイズ H16r Standard
ノード間通信が有効 True
ノードごとの最大タスク数 1

次のステップ

  • Azure Batch プールで MPI ジョブを実行する方法については、Windows または Linux の例を参照してください。