大量の計算を高速に処理したい
そんなニーズに応えるのが、HPC(ハイパフォーマンスコンピューティング)の世界です。
普通のサーバー1台では到底まかなえないような処理を、数百・数千のマシンを束ねて一気に片付けてくれます。
AWSはそのHPC環境をマネージドで提供するサービスとして、AWS PCS(Parallel Computing Service)を展開しています。
クラスターの構築・管理・スケールをAWSが引き受けてくれるので、エンジニアは計算処理そのものに集中できます。
そのAWS PCSが、今回のアップデートで、ジョブスケジューラ「Slurm 25.11」に対応しました。
など、運用面で嬉しい改善が揃っています。
「PCSもSlurmも初めて聞いた」という方でも理解できるよう、用語の説明から順を追って解説していきますね。
AWS PCSとは?まず言葉を整理しよう
💡 HPC(ハイパフォーマンスコンピューティング)って何?
HPC(High Performance Computing)とは、膨大な計算を高速に処理するコンピューティングのことです。
このような「普通のパソコンでは何年かかるかわからない」膨大なデータの計算を、大量のコンピュータを並べて一気にこなす技術です。
「並列コンピューティング(Parallel Computing)」という言葉もここから来ています。
たくさんのCPUやGPUが並列に(同時に)動くことで、処理を高速化するわけです。
💡 AWS PCSとは
AWS PCS(Parallel Computing Service)は、AWSでHPCワークロードを簡単に実行・スケールできるマネージドサービスです。
研究機関やエンジニアリングチームが「大規模な計算処理をAWS上でやりたい」というとき、インフラ構築の手間なく使えるのがPCSの強みです。
クラスターの管理・更新・監視まで、AWSが面倒を見てくれます。
💡 Slurm(スラーム)とは
Slurm は、HPCの世界で広く使われているジョブスケジューラです。
「ジョブスケジューラ」はご存知の通り、複数の計算ジョブ(処理の依頼)をどのノード(コンピュータ)でいつ実行するかを管理するソフトウェアのことですね。
たとえば「100個の計算タスクをなるべく早く全部終わらせたい」というとき、Slurmが「このタスクはこのマシン、あのタスクはあのマシン」と交通整理してくれます。
AWS PCSは、このSlurmを使ってHPCクラスターを動かしています。
今回のアップデート:Slurm 25.11対応で何が変わった?
AWS PCSがSlurm 25.11をサポートするようになり、いくつかの便利な機能が使えるようになりました。
迅速な再キュー(Rapid Requeue)
ノード(処理を担当するサーバー)に問題が起きたとき、そのノードで実行中だったジョブを自動的に優先して再スケジュールしてくれる機能です。
これまでは、ノード障害があるとジョブが止まったまま順番待ちの列に並び直しになっていました。
迅速な再キューを使うと、影響を受けたジョブがキューの先頭に自動で割り込むので、ワークロードの回復がずっと早くなります。
OpenMetricsエンドポイントでリアルタイム監視
Prometheus(プロメテウス)という監視ツールと互換性のある OpenMetricsエンドポイント が新たにサポートされました。
Prometheusは、サーバーやアプリケーションの状態をリアルタイムで収集・可視化するために広く使われているオープンソースツールです。
すでにPrometheusを使っている環境なら、追加の専用ツールなしでジョブ・ノード・スケジュールの状況を一目で確認できるようになります。
ログの送信先が増えた
SlurmのデータベースデーモンやREST APIデーモンのログを、以下の送信先に出力できるようになりました。
これにより、ジョブの会計(課金・利用履歴)の問題や、API連携のデバッグがずっと楽になりますね。
スケジューラ監査ログが独立
これまで運用ログにまとめて含まれていたスケジューラの監査ログが、専用のログタイプとして分離されました。
ログの種類ごとに取り込みコスト・ストレージコストを個別にコントロールできるようになるので、必要なログだけ詳細に残して、不要なものはコストを抑えるという運用が可能になります。
ログは地味にコストがかさむので、これは嬉しい機能ですね。
誰が使うサービス?こんな場面で活躍する
AWS PCSは、一般のWebアプリ開発とは少し異なる用途で活躍します。
「大量のデータを短時間で計算したい」というニーズがある分野では、必ずといっていいほど登場するサービスでしょう。
AWS PCSの基本的な使い方
AWS PCSを使い始めるときの流れをざっくりと説明します。
① クラスターを作成する
AWSマネジメントコンソールからAWS PCSを開き、クラスターを作成します。
使いたいインスタンスタイプ(コンピュータのスペック)やネットワーク設定をウィザードに沿って選ぶだけで、Slurmが動く環境が自動で用意されます。
毎度のことながら、AWSの設定はシンプルで良いですね。
② キューとコンピュートノードを設定する
ジョブ(処理の依頼)を受け付けるキューと、実際に計算を担うコンピュートノードを設定します。
のように、用途別にキューを分けることも可能です。
オートスケーリングを設定しておけば、ジョブが増えたときに自動でノードが増減するので、コストの無駄が出にくくなります。
③ ジョブスクリプトを書いて投入する
Slurmのジョブスクリプト(シェルスクリプトに少し設定を追加したもの)を書いて、sbatchコマンドでキューに投入します。
Slurmが空いているノードを探して自動で割り当ててくれるので、「どのマシンで動かすか」を手動で指定する必要はありません。
④ 実行状況を確認する
squeueコマンドでジョブの進行状況を確認ができます。
今回のSlurm 25.11対応で OpenMetricsエンドポイント がサポートされたので、PrometheusやGrafanaと連携してダッシュボードで可視化するのもスムーズになりました。
ジョブが終わったら結果ファイルをS3に保存、というパターンが一般的のようです。
AWSがHPC運用の”面倒ごと”をまとめて引き受けてくれる
今回のアップデートをひと言でまとめると、「障害に強く・見えやすく・管理しやすくなった」です。
HPCは「計算さえ速ければいい」ではなく、安定した運用と可視化が重要です。
今回のSlurm 25.11対応は、その部分をしっかり強化してくれるアップデートでした。


