この記事の目次
「AWS ParallelCluster」とは?
「AWS ParallelCluster」とは、AWSが提供しているオープンソースのクラスター管理ツールです。
AWS上での「ハイパフォーマンス・コンピューティング・クラスター(HPC)」を構築し管理することが簡単にできるようになります。
「AWS ParallelCluster」の概要や利点について、解説していきます。
「AWS ParallelCluster」の概要
「AWS ParallelCluster」の概要としては、「MPI(Message Passing Interface、※並列コンピューティング利用するための標準化された規格)」等を利用した並列計算の実行環境について、コマンドだけで簡単にAWS上に構築してくれるツールです。
計算ノードは、計算開始時に自動で生成され、計算が完了したら自動的に削除されます。そのため、AWS上のリソースを効率よく運用できます。
また「AWS ParallelCluster」は、従来は「CfnCluster」という名称で開発されていました。
そこに「AWS Batch integration」、「Multiple EBS volumes」、「Better scaling performance – faster, with updates AutoScaling all at once」、「Support for “bring your own AMI” Custom AMI」、「Private cluster using proxy」といった機能が追加されました。
オープンソースとしての「AWS ParallelCluster」
「AWS ParallelCluster」の開発は、著名なオープンソースの 「CfnCluster」プロジェクトがベースです。
なおオープンソースのリリースの際には、「Python Package Index(PyPI)」を経由して実施されています。
また「AWS ParallelCluster」は、シンプルなテキスト形式の設定ファイルを利用して、自動化されたセイフティな方法によって、HPCアプリケーションに必要なリソースをモデル化し、プロビジョニングしてくれます。
加えて、サポートしているものは複数のインスタンスタイプ、ジョブ送信キュー、ジョブ・スケジューラ(「AWS Batch」、「Slurm」等)です。
ちなみに、「AWS ParallelCluster」のソースコードは、AWSのGitHubリポジトリにて公開されています。
「AWS ParallelCluster」の利点
「AWS ParallelCluster」の利点としては、「自動リソーススケーリング」、「簡単なクラスター管理」、「クラウドへのシームレスな移行」が挙げられます。
これらの利点について、詳細に解説していきます。
「AWS ParallelCluster」の利点1:自動リソーススケーリング
「AWS ParallelCluster」の利点1として、「自動リソーススケーリング」があります。
具体的な内容としては、「AWS ParallelCluster」を利用すると、シンプルな設定を行うだけで、HPCアプリケーションを処理の負荷増に応じて自動的にスケーリングしてくれます。
スケーリングする際に必要なリソースについても、安全な方法でモデル化やプロビジョニングが実施されるため、スケーリングで煩雑な設定や準備が不要となるという点が利点です。
「AWS ParallelCluster」の利点2:簡単なクラスター管理
「AWS ParallelCluster」の利点2としては、「簡単なクラスター管理」があります。
一般的に、HPCアプリケーションの実行環境を構築する際には、各種設定作業が煩雑になりがちです。しかし、「AWS ParallelCluster」を使用することで、安定して繰り返し実行可能な方法により、簡単にリソースをプロビジョニングすることができます。
また手動による作業やカスタムスクリプトの使用を必要とせずに、インフラ基盤を構築することも可能になります。
「AWS ParallelCluster」の利点3:クラウドへのシームレスな移行
「AWS ParallelCluster」の利点3として、「クラウドへのシームレスな移行」が挙げられます。
具体的な内容としては、「AWS ParallelCluster」は、多くの種類の「オペレーティングシステム(OS)」及び「バッチスケジューラ」をサポートしているので、既存の「HPCアプリケーション」をほぼそのまま変更せずに移行することが可能となっています。
「AWS ParallelCluster」の仕組みについて
「AWS ParallelCluster」の仕組みの説明としては、全体的な概要と、仕組みの中心となる「ジョブ・スケジューラ」となります。
上記の「ジョブ・スケジューラ」の具体例として、「jobwatcher」、「sqswatcher」、「nodewatcher」、「clustermgtd」、「computemgtd」について解説していきます。
「AWS ParallelCluster」の仕組みの概要
「AWS ParallelCluster」の仕組みの概要としては、クラスターの「ライフサイクル」に着目します。
具体的には、ユーザーによってクラスターが作成された後にライフサイクルは始まり、クラスターは「コマンドラインインターフェイス (CLI)」によってコマンド実行され、クラスター作成後には、削除が実行されるまで存在します。
なお「AWS ParallelCluster」のデーモン(※常駐プロセス)は、主にHPCクラスターのスケーリングを管理しているクラスターノード上で実行されています。
続いて、「AWS ParallelCluster」のデーモンについて解説します。
AWS ParallelCluster デーモン:jobwatcher
「AWS ParallelCluster」デーモンの一つである「jobwatcher」は、クラスターが実行中の場合に、「ルートユーザー」が所有しているプロセスとして、設定されたスケジューラ (Slurm、SGE、Torque)を監視しています。
またスケールアップを実行するタイミングを判定するために、毎分でキューを評価しています。
AWS ParallelCluster デーモン:sqswatcher
AWS ParallelCluster デーモンである「sqswatcher」は、自動スケーリング実行によって送信される「sqswatcher」メッセージをモニタリングしていて、クラスター内の状態が変化したら通知してくれます。
「Amazon SQS」のインスタンスがオンラインになった場合に、「instance ready」メッセージが「Amazon SQS」に送られ、これらのメッセージは、先頭ノード上で実行されている「sqswatcher」に送信されます。
上記メッセージは、新規インスタンスがオンラインになった時点や終了した時点で、キューマネージャーに通知するために使用されます。
AWS ParallelCluster デーモン:nodewatcher
AWS ParallelCluster デーモンである「nodewatcher」は、計算処理を実行するシステムの各ノード上にて実行されます。
そして、ユーザーが定義した「scaledown_idletime」期間が経過すると、稼働していたインスタンスは終了します。
AWS ParallelCluster デーモン:clustermgtd
「AWS ParallelCluster」デーモンである「clustermgtd」は、異種モードで実行されるクラスター(「queue_settings」値を指定)において、先頭ノードで実行されます。
そして、非アクティブなパーティションをクリーンアップしたり、静的なキャパシティー管理を常時実行して正常であることを確認したりします。
「AWS ParallelCluster」でHPC コンピューティング環境をすばやく構築する
「AWS ParallelCluster」に関して、その概要や利点、そして実行時の具体的な仕組みについて解説してきました。
こちらの記事を参考にして、「AWS ParallelCluster」を活用することで、HPCコンピューティング環境を迅速に構築してみてはいかがでしょうか。
この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年11月21日キャリア・転職ITエンジニアへのキャリアチェンジに多い理由は?
- 2023年11月20日キャリア・転職フリーターからの就職でおすすめの職業は?
- 2023年11月20日キャリア・転職経理へのキャリアチェンジ転職・志望動機は?
- 2023年11月20日キャリア・転職法務からのキャリアチェンジおすすめの業界は?