Microsoft HPC Pack とオンデマンドの Azure PaaS コンピューティング ノードを使用してハイブリッド ハイ パフォーマンス コンピューティング (HPC) クラスターを設定する
Microsoft HPC Pack 2016 Update 1 (またはそれ以降のバージョン) と Azure を使用して、小規模なハイブリッド ハイ パフォーマンス コンピューティング (HPC) クラスターを設定します。 この記事に示すクラスターは、オンプレミスの HPC Pack ヘッド ノードと、Azure クラウド サービスにオンデマンドでデプロイするコンピューティング ノードで構成されています。 その後、ハイブリッド クラスターでコンピューティング ジョブを実行できます。
ハイブリッド HPC クラスター の
このチュートリアルでは、スケーラブルなオンデマンド Azure リソースを使用してコンピューティング集中型アプリケーションを実行するための 1 つのアプローチ ("クラウドへのバースト" とも呼ばれます) を示します。
このチュートリアルでは、コンピューティング クラスターまたは HPC Pack での経験がないことを前提としています。 これは、デモンストレーション目的でハイブリッド コンピューティング クラスターをすばやくデプロイする場合にのみ役立ちます。 運用環境でより大規模なハイブリッド HPC Pack クラスターをデプロイする際の考慮事項と手順については、の詳細なガイダンスを参照してください。 以前のバージョンの HPC Pack を使用する場合は、HPC Pack 2012 R2 のドキュメント
前提 条件
Azure サブスクリプション - Azure サブスクリプションをお持ちでない場合は、わずか数分で 無料アカウント を作成できます。
Windows Server 2012 R2 または Windows Server 2016 を実行しているオンプレミス コンピューター - HPC クラスターのヘッド ノードとしてこのコンピューターを使用します。 Windows Server をまだ実行していない場合は、評価版をダウンロードしてインストールできます。
- コンピューターは Active Directory ドメインに参加している必要があります。 テスト目的で、ヘッド ノード コンピューターをドメイン コントローラーとして構成できます。 Active Directory Domain Services サーバーの役割を追加し、ヘッド ノード コンピューターをドメイン コントローラーとして昇格するには、Windows Server のドキュメントを参照してください。
- HPC Pack をサポートするには、オペレーティング システムを英語、日本語、または中国語 (簡体字) のいずれかの言語でインストールする必要があります。
- 重要な更新プログラムと重要な更新プログラムがインストールされていることを確認します。
HPC Pack 2016 - 最新バージョンのインストール パッケージ 無料でダウンロードし、ヘッド ノード コンピューターにファイルをコピーします。
ドメイン アカウント - HPC Pack をインストールするには、ヘッド ノードのローカル管理者アクセス許可でこのアカウントを構成する必要があります。
ポート 443 でヘッド ノードから Azure への TCP 接続 (アウトバウンド) を
します。
ヘッド ノードに HPC Pack をインストールする
最初に、Windows Server を実行しているオンプレミスコンピューターに Microsoft HPC Pack をインストールします。 このコンピューターがクラスターのヘッド ノードになります。
ローカル管理者アクセス許可を持つドメイン アカウントを使用して、ヘッド ノードにログオンします。
HPC Pack インストール ファイルから Setup.exe を実行して、HPC Pack インストール ウィザードを起動します。
HPC Pack 2016 セットアップ 画面で、[新規インストール クリックするか、既存のインストールに新機能を追加します。
Microsoft ソフトウェア ユーザー契約] ページで、[次へ] クリックします。 [インストールの種類の の選択
] ページで、[ヘッド ノードを作成して新しい HPC クラスターを作成 ] をクリックし、[次 ] をクリックします。 ウィザードでは、いくつかのインストール前テストが実行されます。 すべてのテスト 合格した場合は、インストール規則 ページの [次へ] をクリックします。 それ以外の場合は、提供された情報を確認し、環境に必要な変更を加えます。 次に、テストをもう一度実行するか、必要に応じてインストール ウィザードを再度起動します。
[HPC DB 構成] ページで、すべての HPC データベース [ヘッド ノード] が選択されていることを確認し、[次 ] をクリックします。
ウィザードの残りのページでは、既定の選択をそのまま使用します。 [必要なコンポーネントのインストール
] ページで、[ インストール] をクリックします。 のインストール
インストールが完了したら、[HPC クラスター マネージャーの起動]
チェックを外し、[完了] クリック します。 (HPC クラスター マネージャーは、後の手順で開始します)。
Azure サブスクリプションを準備する
Azure サブスクリプションを使用して Azure portal
手記
また、後で必要になる Azure サブスクリプション ID も書き留めます。 ポータルの サブスクリプション で ID を見つけます。
既定の管理証明書をアップロードする
以前の HPC Pack バージョンでは、Azure 管理証明書としてアップロードできる、既定の Microsoft HPC Azure 管理証明書と呼ばれる自己署名証明書がヘッド ノードにインストールされます。 ただし、HPC Pack 2016 Update 1 では、この証明書は既定では提供されないため、ヘッド ノードでコマンドを使用して自己署名証明書を準備し、証明書を tmpfolder\hpccert.cer
としてエクスポートする必要があります。
New-SelfSignedCertificate -Subject "CN=HPC Pack Management" -KeySpec KeyExchange -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2") -CertStoreLocation cert:\LocalMachine\My -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(5) -NotBefore (get-Date).AddDays(-1)
ヘッド ノード コンピューターから、証明書を
tmpfolder\hpccert.cer
からLocalMachine\My
にインポートします。 以前の HPC Pack バージョンとは似ていません。証明書をインポートしてLocalMachine\Trusted Root
する必要はありません。Azure portalにサインインします。
[サブスクリプションの
your_subscription_name ] をクリックします。 管理証明書>アップロードをクリックし、ファイル
tmpfolder\hpccert.cer
のヘッド ノードで参照します。 次に、[アップロード] をクリックします。
既定の HPC Azure Management 証明書が管理証明書の一覧に表示されます。
Azure クラウド サービスを作成する
手記
パフォーマンスを最大限に高めるには、クラウド サービスとストレージ アカウントを (後の手順で) 同じ地理的リージョンに作成します。
ポータルで、[+
追加] [クラウド サービス (クラシック)] をクリックします。 サービスの DNS 名を入力し、リソース グループと場所を選択して、[の作成]
クリックします。
Azure ストレージ アカウントを作成する
ポータルで、ストレージ アカウント (クラシック)>+[の追加] をクリックします。
アカウントの名前を入力し、クラシック デプロイ モデル
選択します。 リソース グループと場所を選択し、他の設定は既定値のままにします。 次に、[
作成] をクリックします。 ここでは、[新規] または [リソース グループの選択] にプレフィックス Default-Storage-<your_picked_Location>
必要があります。そうしないと、サービスはストレージ アカウントを見つけることができません。
ヘッド ノードを構成する
HPC Cluster Manager を使用して Azure ノードをデプロイし、ジョブを送信するには、最初にいくつかの必要なクラスター構成手順を実行します。
ヘッド ノードで、HPC クラスター マネージャーを起動します。
[ヘッド ノード の選択] ダイアログ ボックスが表示されたら、[ローカル コンピュータークリックします。 展開 To Do リスト が表示されます。 [必要な展開タスク
で、[ネットワークの構成 ] をクリックします。 ネットワーク の構成
ネットワーク構成ウィザードで エンタープライズ ネットワーク 上のすべてのノードのみを選択します (トポロジ 5)。 このネットワーク構成は、デモンストレーション目的で最も簡単です。
ウィザード 残りのページで既定値をそのまま使用するには、[次へ] をクリックします。 次に、[校閲] タブ [ の構成] をクリックして、ネットワーク構成を完了します。
展開 To Do リストで、[インストール資格情報 を指定] をクリックします。
[インストール資格情報] ダイアログ ボックスで、HPC Pack のインストールに使用したドメイン アカウントの資格情報を入力します。 次に、[OK]
クリックします。 インストール資格情報 の
展開 To Do リストで、新しいノードの名前付けの構成をクリックします。
[ノード名前付け系列 の指定] ダイアログ ボックスで、既定の名前付け系列をそのまま使用し、[OK] をクリックします。 このチュートリアルで追加する Azure ノードに自動的に名前が付けられている場合でも、この手順を完了します。
展開 To Do リスト で、[ノード テンプレート作成] をクリックします。 チュートリアルの後半では、ノード テンプレートを使用して、クラスターに Azure ノードを追加します。 ノード テンプレートの作成ウィザードで、次の操作を行います。
ある。 [
ノード テンプレートの種類 の選択] ページで、Windows Azure ノード テンプレートクリックし、[次 ] をクリックします。 b. [次 をクリックして、既定のテンプレート名をそのまま使用します。
c. [サブスクリプション情報の指定] ページで、Azure サブスクリプション ID (Azure アカウント情報で使用可能) を入力します。 次に、
管理証明書 で、既定の Microsoft HPC Azure 管理参照します。 次のクリックします。 d. [サービス情報の提供
] ページで、前の手順で作成したクラウド サービスとストレージ アカウントを選択します。 次 をクリックします。 e. [次へ
をクリックして、ウィザードの [ プロキシ ノードの指定] 、[Worker ロールの の指定] ページ、および[スタートアップ スクリプトの指定] ページの既定値を受け入れます。 このスクリプトは、プロビジョニング中にノードがoffline
として準備される前に実行されることに注意してください。 また、既定の動作を調整するためのレジストリが 2 つあります。 たとえば、管理者がレジストリ キーMicrosoft.Hpc.Azure.AzureStartupTaskFailureEnable
を1
に設定した場合、デプロイはスタートアップ スクリプトの実行が完了するまで待機してから、ジョブに到達可能なノードを設定します(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HPC Name:Microsoft.Hpc.Azure.AzureStartupTaskFailureEnable Type:REG_DWORD; (default is 0)
とHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HPC Name:Microsoft.Hpc.Azure.AzureStartupTaskTimeoutSec Type:REG_DWORD; (default is 1800)
f. [次 ] をクリックして、[Microsoft Azure Virtual Network の設定] ページで既定値をそのまま使用します。 Azure VPN を使用している場合、または強制トンネル 高速ルート を使用する場合は、Azure 内部負荷分散を使用する必要があります。サブネットから有効で無料の静的 IP を 1 つ取得するだけです。
g. [次
] をクリックして、[リモート デスクトップ資格情報の構成] ページ 資格情報を指定します。 [次 をクリックして可用性ポリシーを構成します。 後で自動拡大縮小を有効にする場合は、 Start and stop nodes manually
選択してください。 次に、[レビュー ] タブの [作成] をクリックしてノード テンプレートを作成します。 手記
既定では、Azure ノード テンプレートには、HPC クラスター マネージャーを使用してノードを手動で開始 (プロビジョニング) および停止するための設定が含まれています。これは後で自動拡大圧縮
構成できます。 必要に応じて、Azure ノードを自動的に開始および停止するようにスケジュールを構成できます。
クラスターに Azure ノードを追加する
次に、ノード テンプレートを使用して、Azure ノードをクラスターに追加します。 ノードをクラスターに追加すると、構成情報が格納されるため、クラウド サービスでいつでもノードを開始 (プロビジョニング) できます。 サブスクリプションは、インスタンスがクラウド サービスで実行された後にのみ、Azure ノードに対して課金されます。
次の手順に従って、2 つの小さなノードを追加します。
HPC クラスター マネージャーで、ノード管理
(現在のバージョンの HPC Pack では Resource Management と呼ばれます) をクリックノード を追加します。ノード の追加
ノードの追加ウィザードの 展開方法の選択] ページで、[Windows Azure ノードの追加] をクリックし、[次 ] をクリックします。
Azure Node の追加
[新しいノードの指定] ページで、前に作成した Azure ノード テンプレートを選択します (既定 既定の AzureNode テンプレートで呼び出されます)。 次に、サイズ
小さいの 2 ノード指定し、[次へ] クリック します。[ノードの追加ウィザードの を完了する
] ページで、[完了 ] をクリックします。 AzureCN-0001 と AzureCN-0002という名前の 2 つの Azure ノードが HPC クラスター マネージャーに表示されるようになりました。 どちらも 展開されていない 状態です。
追加されたノード の
Azure ノードを起動する
Azure でクラスター リソースを使用する場合は、HPC クラスター マネージャーを使用して Azure ノードを起動 (プロビジョニング) し、オンラインにします。
HPC クラスター マネージャーで、Node Management (現在のバージョンの HPC Pack では Resource Management と呼ばれます) をクリックし、Azure ノードを選択します。
[スタート
] をクリックし、[OK] クリックします。 ノードは、プロビジョニング 状態に移行します。 プロビジョニング ログを表示して、プロビジョニングの進行状況を追跡します。
ノード のプロビジョニングの
数分後、Azure ノードはプロビジョニングを完了し、オフライン 状態になります。 この状態では、ロール インスタンスは実行中ですが、クラスター ジョブをまだ受け入れることができません。
ロール インスタンスが実行されていることを確認するには、Azure portal で [Cloud Services (クラシック)>your_cloud_service_name] をクリックします。
サービスで実行されている 2 つの HpcWorkerRole インスタンス (ノード) が表示されます。 また、HPC Pack では、ヘッド ノードと Azure 間の通信を処理するために、2 つの HpcProxy インスタンス (サイズ Medium) が自動的にデプロイされます。
実行中のインスタンス の
Azure ノードをオンラインにしてクラスター ジョブを実行するには、ノードを選択して右クリックし、[オンラインにする]
クリックします。 オフライン ノード の
HPC クラスター マネージャーは、ノードが Online 状態であることを示します。
クラスター全体でコマンドを実行する
インストールを確認するには、HPC Pack clusrun コマンドを使用して、1 つ以上のクラスター ノードでコマンドまたはアプリケーションを実行します。 簡単な例として、clusrun を使用して、Azure ノードの IP 構成を取得します。
ヘッド ノードで、管理者としてコマンド プロンプトを開きます。
次のコマンドを入力します。
clusrun /nodes:azurecn* ipconfig
メッセージが表示されたら、クラスター管理者のパスワードを入力します。 次のようなコマンド出力が表示されます。
clusrun を
する
テスト ジョブを実行する
次に、ハイブリッド クラスターで実行されるテスト ジョブを送信します。 この例は、単純なパラメトリック スイープ ジョブ (本質的に並列計算の一種) です。 次の使用例は、set /a コマンドを使用して、整数をそれ自体に追加するサブタスクを実行します。 クラスター内のすべてのノードは、1 から 100 までの整数のサブタスクの完了に寄与します。
HPC クラスター マネージャーで、[新しいパラメトリック スイープ ジョブ
ジョブ管理 ] をクリックします。 新しいジョブ の
[新しいパラメトリック スイープ ジョブ を
] ダイアログ ボックスの [コマンド ライン に、「 」と入力します (表示される既定のコマンド ラインを上書きします)。 残りの設定は既定値のままにし、[送信] クリックしてジョブを送信します。 ジョブが完了したら、マイ スイープ タスク ジョブをダブルクリックします。
[タスク
表示] をクリックし、サブタスクをクリックして、そのサブタスクの計算された出力を表示します。 タスクの結果 を
する そのサブタスクの計算を実行したノードを確認するには、[割り当てられたノード
をクリックします。 (クラスターに別のノード名が表示される場合があります)。 タスクの結果 を
する
Azure ノードを停止する
クラスターを試した後、Azure ノードを停止して、アカウントへの不要な課金を回避します。 この手順では、クラウド サービスを停止し、Azure ロール インスタンスを削除します。
HPC クラスター マネージャーで、Node Management (以前のバージョンの HPC Pack では Resource Management と呼ばれます) で、両方の Azure ノードを選択します。 次に、停止
クリックします。 ノードの停止 の
[Windows Azure ノード
停止] ダイアログ ボックスで、[ 停止] をクリックします。 ノードは、停止 状態に遷移します。 数分後、HPC クラスター マネージャーは、ノードがデプロイされていない
していることを示します。 デプロイされていないノード
ロール インスタンスが Azure で実行されなくなったことを確認するには、Azure portal で [クラウド サービス (クラシック)>your_cloud_service_name] をクリックします。 運用環境にはインスタンスはデプロイされません。
これでチュートリアルは完了です。
Azure worker ロール ノードの自動拡張圧縮を有効にする
Azure worker ロール ノードを手動で開始および停止しない場合は、キューにジョブがあるときにノードを自動的に起動し、アイドル状態のときにノードを自動的に停止するために、自動拡張圧縮を有効にすることができます。
AutoGrowShrink プロパティを有効にするには
Set-HpcClusterProperty –EnableGrowShrink 1
このプロパティを有効にした後、ジョブをもう一度送信し、Azure worker ロール ノードが自動的に開始されるかどうかを確認できます。 HPC Cluster Manager
次の手順
- クラウド ノードにデータを移動するための hpcpack.exe と hpcsync.exe について説明します。
- ハイブリッド HPC Pack クラスターのデプロイをより大規模に設定するには、Microsoft HPC Packを使用した Azure Worker ロール インスタンスへのバースト
に関するページを参照してください。 - Azure Resource Manager テンプレートの使用など、Azure で HPC Pack クラスターを作成するその他の方法については、「Azureでの HPC Pack クラスターの概要」
参照してください。