Advance with you
株式会社ジーデップ・アドバンス

NVIDIA エリートパートナー

Fullcalendar上でSlurmのジョブを予約する仕組みの作成方法

2025.10.07 テックブログ

最近はAI向けのGPUクラスタやサーバのジョブ管理システムとしてSlurmが多く選ばれています。私はこれまでCAEユーザ向けにPBS Professionalを導入する案件にかかわることが多かっのですが、ジーデップ・アドバンスに転職してGPUシステム案件に携わることになり、Slurmの勉強とメモを兼ねてブログに残していければと思っています。

 

予約システムを作成するに至ったまで


Slurmでジョブを管理する場合、利用者がsbatchやsrunといったコマンドでジョブをキューに登録し、なるべく効率よく多くのジョブを実行するようにするのが一般的です。しかしGPUサーバを購入されたお客様から「ユーザが事前にGPUサーバを時間指定で予約し、その予約時間内で独占的にジョブを実行できるようにしたい」という要望がありました。会議室の予約システムに近い利用イメージです。

SlurmにはReservationという機能があり、予約時間とノード(あるいはパーティション)と利用ユーザ(あるいはグループ)を指定することで、予約の取得が可能です。

ただし、お客様の利用要件を満たすにはいくつか問題がありました。

予約の作成/変更/削除は管理権限で行われ、一般ユーザが直接予約できないため運用が複雑になる。

scontrolコマンド(CLI)で予約管理を行うが、コマンドの入力と結果出力の見方が複雑で分かりづらい。

そこで今回はFullcalendarを使って、Webブラウザからカレンダー形式でユーザが予約を作成/削除できる仕組みを作ることになりました。

 

Fullcalendar上でジョブ実行時間を予約

 

 

 

 

 

 

 

 

 

 

 

 

予約システムの実施イメージ

 

 

ユーザが予約を取得/削除するためのフロントエンドにFullcalendar(React)を使いました。

Fullcalendarのイベントデータ(予約一覧)をJSONで生成したり、予約の取得・削除処理のためにFastAPI(Python)を使いました。

予約の取得・削除処理をSlurmに指示するためにscontrolではなく、Slurm REST APIをたたくことで管理者権限での実行を回避し、一般ユーザでの予約を可能にしました。

 

 

予約取得後のジョブ実行

 

 

おわりに

 

ジーデップ・アドバンスでは、本件のようにSlurmを使ったGPUリソース管理をお客様のご要望に沿って設定・導入をお手伝い致します。是非お問い合わせ下さい。 

また採用も鋭意強化中です。最新のGPUを触ってみたい、本事事例のようなアイディアを一緒に具現化してみたい。そんなエンジニアさんもお気軽にお問い合わせください! 

 

 

trending_flat