Amazon Web Services ブログ

事実上あらゆる規模で HPC ワークロードを実行できる AWS Parallel Computing Service の発表

8月28日、AWS Parallel Computing Service (AWS PCS) が発表されました。これは、お客様によるハイパフォーマンスコンピューティング (HPC) クラスターのセットアップおよび管理をサポートし、AWS で事実上あらゆるスケールでシームレスにシミュレーションを実行できるようにする、新しいマネージドサービスです。Slurm スケジューラを使用すると、使い慣れた HPC 環境で作業できるため、インフラストラクチャについて心配することなく、結果が出るまでの時間を短縮できます。

2018 年 11 月、弊社は AWS がサポートするオープンソースクラスター管理ツール、AWS ParallelCluster を発表しました。これは、AWS クラウドでの HPC クラスターのデプロイと管理に役立つツールです。AWS ParallelCluster を使用すると、お客様は概念実証や本稼働の HPC コンピューティング環境を迅速に構築およびデプロイすることもできます。また、AWS ParallelCluster コマンドラインインターフェイスAPIPython ライブラリ、オープンソースパッケージからインストールされたユーザーインターフェイスを使用できます。これらは、クラスターの解体や再デプロイを含む更新の責任を負います。しかし、多くのお客様は、HPC 環境の構築と運用における作業を削減したいと考え、フルマネージド型の AWS サービスを求めていました。

AWS PCS は、AWS が管理する HPC 環境を簡素化します。また、AWS マネジメントコンソール、AWS SDK、AWS コマンドラインインターフェイス (AWS CLI) からアクセスすることが可能です。システム管理者は、コンピューティングとストレージの設定、ID、ジョブ割り当て設定を使用するマネージド Slurm クラスターを作成できます。AWS PCS は、シミュレーションのスケジューリングとオーケストレーションに、さまざまな HPC のお客様に使用されている拡張性と耐障害性に優れたジョブスケジューラ、Slurm を使用しています。科学者、研究者、エンジニアなどのエンドユーザーは、AWS PCS クラスターにログインして、HPC ジョブの実行と管理、仮想デスクトップでのインタラクティブソフトウェアの使用、データへのアクセスを行うことができます。コードの移植に多大な労力を費やすことなく、ワークロードをすばやく AWS PCS に持ち込めます。

フルマネージドの NICE DCV リモートデスクトップを使用してリモートで視覚化したり、ジョブテレメトリやアプリケーションログにアクセスしてスペシャリストが HPC ワークフローを 1 か所で管理できるようにしたりできます。

AWS PCS は、シミュレーションと計算を準備、実行、分析するための使い慣れた方法を使用して、数値流体力学、気象モデリング、有限要素解析、電子設計自動化、貯留層シミュレーションなどの分野にわたり、従来型と新型、コンピューティング集約型またはデータ集約型の幅広いエンジニアリングおよび科学ワークロードに対処できるよう設計されています。

AWS Parallel Computing Service の開始方法
AWS PCS を試すには、AWS ドキュメントの「簡単なクラスターの作成に関するチュートリアル」をご確認ください。まず、AWS PCS を試す AWS リージョンにあるアカウント内の Amazon Elastic File System (Amazon EFS) で、AWS CloudFormation テンプレートと共有ストレージを使用して、仮想プライベートクラウド (VPC) を作成します。詳細については、AWS ドキュメントの「VPC の作成」と「共有ストレージの作成」を参照してください。

1.クラスターの作成
AWS PCS コンソールで、リソースを管理しワークロードを実行するための永続的リソースである [Create cluster (クラスターを作成)] を選択します。

次にクラスター名を入力し、Slurm スケジューラのコントローラーサイズを選択します。クラスターワークロードの上限として、[Small (小規模)] (最大 32 ノード、256 ジョブ)、[Medium (中規模)] (最大 512 ノード、8,192 ジョブ)、または [Large (大規模)] (最大 2,048 ノード、16,384 ジョブ) を選択できます。ネットワーキングセクションで、作成した VPC、クラスターを起動するサブネット、クラスターに適用するセキュリティグループを選択します。

オプションで、コンピューティングノードがスケールダウンするまでのアイドル時間、起動したコンピューティングノード上の Prolog および Epilog スクリプトディレクトリ、Slurm が使用するリソース選択アルゴリズムパラメータなどの Slurm 設定を設定できます。

[Create cluster (クラスターを作成)] を選択します。クラスターがプロビジョニングされるまでにはしばらく時間がかかります。

2.コンピューティングノードグループの作成
クラスターを作成した後、コンピューティングノードグループを作成できます。これは、AWS PCS がクラスターへのインタラクティブなアクセスを提供したり、クラスターでジョブを実行したりするために使用する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの仮想コレクションです。コンピューティングノードグループを定義するときは、EC2 インスタンスタイプ、最小インスタンス数と最大インスタンス数、ターゲット VPC サブネット、Amazon マシンイメージ (AMI)、購入オプション、カスタム起動設定などの共通特性を指定します。コンピューティングノードグループでは、AWS Identity and Access Management (IAM) ロールを EC2 インスタンスに渡すインスタンスプロファイルと、AWS PCS が起動する EC2 インスタンスの設定に使用する EC2 起動テンプレートが必要です。詳細については、AWS ドキュメントの「起動テンプレートの作成」と「インスタンスプロファイルの作成」を参照してください。

コンソールでコンピューティングノードグループを作成するには、クラスターに移動し、[Compute node groups (コンピューティングノードグループ)] タブと [Create compute node group (コンピューティングノードグループを作成)] ボタンを選択します。

2 種類のコンピューティングノードグループを作成できます。1 つはエンドユーザーがアクセスするログインノードグループ、もう 1 つは HPC ジョブを実行するジョブノードグループです。

HPC ジョブを実行するコンピューティングノードグループを作成するには、コンピューティングノード名を入力し、以前作成した EC2 起動テンプレート、IAM インスタンスプロファイル、クラスター VPC でコンピューティングノードを起動するサブネットを選択します。

次に、コンピューティングノードを起動するときに使用したい EC2 インスタンスタイプと、スケーリング用の最小インスタンス数および最大インスタンス数を選択します。ここでは hpc6a.48xlarge インスタンスタイプを選択し、スケールの上限を 8 インスタンスに設定しました。ログインノードでは、1 つの c6i.xlarge インスタンスなど、より小さいインスタンスを選択できます。インスタンスタイプがサポートしている場合は、オンデマンドまたはスポット EC2 購入オプションを選択することも可能です。オプションで、特定の AMI を選択できます。

[Create (作成)] をクリックします。コンピューティングノードグループがプロビジョニングされるまでにはしばらく時間がかかります。詳細については、AWS ドキュメントの「ジョブを実行するためのコンピューティングノードグループの作成」と「ログインノード用のコンピューティングノードグループの作成」を参照してください。

3.HPC ジョブの作成と実行
コンピューティングノードグループを作成したら、ジョブをキューに送信して実行します。利用可能なプロビジョニング済み容量に基づきコンピューティングノードグループで実行されるように AWS PCS がスケジュールするまで、ジョブはキューに残ります。各キューは、処理を行うために必要な EC2 インスタンスを提供する、1 つ以上のコンピューティングノードグループに関連付けられています。

コンソールでキューを作成するには、クラスターに移動し、[Queues (キュー)] タブと [Create queue (キューを作成)] ボタンを選択します。

キュー名を入力し、キューに割り当てられたコンピューティングノードグループを選択します。

[Create (作成)] を選択し、キューが作成されるまで待ちます。

ログインコンピューティングノードグループがアクティブな場合、AWS Systems Manager を使用して、作成された EC2 インスタンスに接続できます。Amazon EC2 コンソールに移動し、ログインコンピューティングノードグループの EC2 インスタンスを選択します。詳細については、AWS ドキュメントの「ジョブを送信および管理するためのキューの作成」と「クラスターへの接続」を参照してください。

Slurm を使用してジョブを実行するには、ジョブ要件を指定する送信スクリプトを用意し、sbatch コマンドを使用してキューに送信します。通常、これは共有ディレクトリから行われるため、ログインノードとコンピューティングノードには、ファイルにアクセスするための共通のスペースがあります。

Slurm を使用して AWS PCS でメッセージパッシングインターフェイス (MPI) ジョブを実行することもできます。詳細については、AWS ドキュメントの「Slurm を使用した単一ノードジョブの実行」または「Slurm を使用したマルチノードの MPI ジョブの実行」を参照してください。

フルマネージドの NICE DCV リモートデスクトップを接続して視覚化できます。開始するには、AWS GitHub リポジトリの HPC レシピにある CloudFormation テンプレートを使用してください。

この例では、OpenFOAM MotorBike シミュレーションを使用して、オートバイとライダーの周りの定常流を計算しました。このシミュレーションは、3 つの hpc6a インスタンスの 288 コアを使用して実行されました。DCV インスタンスのウェブインターフェイスにログインした後、ParaView セッションで出力を視覚化できます。

作成したクラスターとノードグループで HPC ジョブを実行した後、不必要な課金を避けるために、作成したリソースを削除する必要があります。詳細については、AWS ドキュメントの「AWS リソースの削除」を参照してください。

知っておくべきこと
この機能について知っておきたい事柄には、次のようなものがあります。

  • Slurm バージョン – AWS PCS はもともと Slurm 23.11 をサポートしており、新しいバージョンが追加された際にお客様が Slurm のメジャーバージョンをアップグレードできるよう設計されたメカニズムを提供しています。さらに、AWS PCS はパッチバージョンを使用して Slurm コントローラーを自動的に更新するよう設計されています。詳細については、AWS ドキュメントの「Slurm バージョン」を参照してください。
  • キャパシティ予約 – オンデマンドキャパシティ予約を使用して、特定のアベイラビリティーゾーンおよび特定期間の EC2 キャパシティを予約し、必要なときに必要なコンピューティングキャパシティを確保できます。詳細については、AWS ドキュメントの「キャパシティ予約」を参照してください。
  • ネットワークファイルシステムAmazon FSx for NetApp ONTAPAmazon FSx for OpenZFSAmazon File Cache、Amazon EFS、Amazon FSx for Lustre など、データやファイルを書き込んだりアクセスしたりするネットワークストレージボリュームをアタッチできます。NFS サーバーなどのセルフマネージドのボリュームを使用することもできます。詳細については、AWS ドキュメントの「ネットワークファイルシステム」を参照してください。

今すぐご利用いただけます
AWS Parallel Computing Service は、現時点で米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ストックホルム) の各リージョンで使用可能です。

AWS PCS は AWS アカウントのすべてのリソースを起動します。また、これらのリソースに対して適切な料金が請求されます。詳細については、AWS PCS の料金ページを参照してください。

ぜひお試しいただき、AWS re:Post for AWS PCS 宛てに、または通常の AWS サポートの連絡先を通じて、フィードバックをお寄せください。

Channy

P.S.HPC テスト環境の作成に寄与してくれた AWS の Principal Developer Advocate である Matthew Vaughn に感謝します。

原文はこちらです。