UbuntuにSlurmを自動導入する無料スクリプト|H100・A100でGPU割り当てを検証
CPU・メモリ・GPUを検出して、単一UbuntuサーバーにSlurmを導入。H100×2、A100×4でGPUの割り当てとアクセス制限を確認した無料スクリプトを、動画・コマンド・検証条件とともに紹介します。
GPUサーバーを複数人で使うと、「今どのGPUが空いているか」「ほかの人の計算とぶつからないか」が気になります。Slurmを使うと、必要なCPU・メモリ・GPUを指定してジョブを投入でき、空きがなければ待機させられます。
ただし、パッケージを入れただけでは、そのサーバーのCPU構成やGPU枚数に合う設定は完成しません。そこでServerGearでは、1台のUbuntuサーバーを対象に、構成の検出からSlurmの導入、テストジョブまで進めるスクリプトを作成しました。
ServerGear Slurm Starter 0.2.0 はMIT Licenseで無料配布するソフトウェアです。この記事では、実機で確認した範囲と使い方を紹介します。
無料ダウンロードはこちら — メールアドレスの確認と、更新情報・技術情報・関連サービスのお知らせ配信への同意が必要です。配信はいつでも停止できます。
動画で全体の流れを見る
YouTubeで動画を見る。約6分13秒。実機の検証記録を図解とコマンド例で説明しています。インストール操作の画面録画ではありません。ナレーションはOpenAIのAI音声「Marin」です。
まずは「1台で使えるSlurm」から
今回の対象は、新しく用意したUbuntu 26.04の単一サーバーです。CPUのみの構成に加え、NVIDIA A100・H100を同一モデルで搭載した構成に対応します。MIGは無効とし、GPUドライバーは事前に導入してください。
スクリプトはCPUトポロジー、メモリ容量、GPUの枚数と実デバイスを検出します。OS用のメモリを予約し、CPU・メモリ・GPUをジョブごとに制限する設定を生成します。
既存Slurmの移行、複数ノード、MIG、共有ストレージ、ユーザー管理、会計DBの構築は対象外です。「あらゆる環境を自動で本番運用できる」というツールではありません。
3つのコマンドで導入を確認
ダウンロードページでメールアドレスを登録し、確認メールのリンクから手続きを進めます。メール確認と、更新情報・技術情報・関連する製品/構築サービスのお知らせ配信への同意が必要です。配信はいつでも停止できます。
ZIPを展開し、sg-slurm.pyとtests/を同じ階層に置きます。同梱のREADMEと検証条件を読み、Linux上でチェックサムを確認します。
sha256sum -c SHA256SUMS
初回導入には、x86_64、systemd、cgroup v2、Python 3、sudo権限、UbuntuのAPTリポジトリへの接続が必要です。導入途中のパッケージ・サービス変更をすべて自動で巻き戻す機能はないため、新規検証環境または復元可能な環境で実施してください。
python3 sg-slurm.py inspect
sudo python3 sg-slurm.py apply --yes
python3 sg-slurm.py verify
verifyは一般ユーザーで実行します。rootから実行する場合は、--user ユーザー名を指定してください。
最初のinspectは情報を読むだけです。OS、CPU、メモリ、GPU、既存設定の有無を表示します。
apply --yesでUbuntuのSlurm・MUNGEパッケージを導入し、設定とサービスを準備します。最後のverifyで、一般ユーザーが実際にジョブを投入して完了できるか確認します。
既存の管理外設定を見つけた場合は上書きしません。ドライバーが動かない場合や、対象外のGPU・MIG構成も停止理由として表示します。
「GPUが見える」だけで終わらせない
H100を2枚搭載したサーバーでは、次のように確認できます。
python3 sg-slurm.py verify --gpus 0
python3 sg-slurm.py verify --gpus 1
python3 sg-slurm.py verify --gpus 2
GPUを要求しないジョブはGPUデバイスを開けません。1枚だけ要求したジョブは割り当てられた1枚を利用でき、残りのGPUへのアクセスは拒否されます。2枚を要求した場合は、各GPUで小さなCUDA計算を実行します。
ここでは、環境変数の表示だけでなく、デバイスを実際に開けるかを確認しています。GPU試験はCUDA Driver APIを利用するため、この確認だけのためにPyTorchやCUDA Toolkitを追加する必要はありません。
同時ジョブの「GPU 0」は同じ物理GPUとは限らない

H100で1枚ずつ要求する2ジョブを同時に動かしたところ、一方は/dev/nvidia0、他方は/dev/nvidia1だけを開けました。両方でCUDA_VISIBLE_DEVICES=0と表示されても、各ジョブから見た番号なので矛盾しません。SlurmのGRESとデバイス制限の関係は、Slurm公式のGPU管理の説明にも記載されています。
この制限はSlurmが起動したジョブに対するものです。 SSHから直接起動した全処理を、自動的にSlurmの管理下へ入れる仕組みではありません。CPU・メモリ・デバイス制限の設定項目は、公式のcgroup.conf資料を参照してください。
実機で確認したこと
H100 PCIe×2、Ubuntu 26.04.1の環境で、新規導入、CPU・メモリ制限、GPUの割り当てとアクセス制限、設定変更なしの再実行、再起動後のジョブ実行を確認しました。
A100 80GB PCIe×4、Ubuntu 24.04.4でも、新しい版が生成した設定を一時的な検証環境で動かし、4枚のGPUでの計算と、2枚ずつ使う同時ジョブの分離を確認しました。A100側では既存Slurmを保護し、新規インストーラーで置き換える試験は行っていません。
GPUのないUbuntu VMでも動作を確認しています。これは動作試験であり、性能比較、長時間安定性、MPI・NCCL、GPU間通信の検証ではありません。詳しいOS・Slurmのバージョンと試験範囲は、同梱の検証条件に記載しています。
検証したOS・バージョンと方法
検証日:2026年10月24日。
| 環境 | OS / Slurm | 検証した範囲 |
|---|---|---|
| H100 PCIe×2・32CPU | Ubuntu 26.04.1 / 25.11.2-1ubuntu2 | 0.2.0新規導入、CPU・メモリ制限、GPU 0/1/2枚、同時1枚ずつ、再実行、実機再起動 |
| A100 80GB PCIe×4・64CPU | Ubuntu 24.04.4 / 23.11.4 | 生成設定を別状態領域・一時サービスで検証。GPU 0/1/4枚、同時2枚ずつ。既存Slurmへ復帰 |
| CPU VM・2vCPU / 4GiB | Ubuntu 26.04.1 / 25.11.2-1ubuntu2 | クリーンOSから0.2.0を導入、9項目の統合試験 |
| CPU VM・4vCPU / 3GiB | Ubuntu 24.04.5 / 23.11.4-1.2ubuntu5 | 管理済み0.1.0から0.2.0へ更新、9項目の統合試験 |
H100のドライバーは595.91.07、A100は595.99.02。両機ともMIG無効です。H100では同じ設定のapplyをGPUジョブ実行中に再実行しても、デーモンPIDが変わらず、2ジョブが完了しました。再起動後もサービスが自動起動し、GPUジョブに成功しています。
この版で扱わないこと・既知の注意点
- MIG、混在GPU、H200・B200・RTX、複数ノード、共有ストレージ、ユーザー管理、会計DB、HAは対象外です。
- MPI・PMIx、NCCL、GPU間通信、性能比較、長時間安定性は未検証です。
- Ubuntu 24.04のSlurm 23.11.4では、会計DBなしの構成で一時的に
PENDING (InvalidAccount)となり、バックフィルの周期で実行される事象をCPU版の検証中に確認しました。基本優先順位設定だけでは解消しません。第一弾の導入手順は26.04を基準にしています。 - GPUドライバー、SSH、ネットワーク、ファイアウォールの変更は行いません。ドライバー不調を検出しても、自動で再インストールや再起動はしません。
- GPU名が同じでも、すべての筐体・ドライバーや将来のパッケージ更新を確認したものではありません。
詳細な検証条件と結果も公開しています。
実際の計算を投入する
srun --mpi=none --gres=gpu:1 --mem=1G --time=00:01:00 nvidia-smi
squeue
利用するソフトウェアやPython環境は別途用意します。ジョブには実際の計算に必要なCPU数、メモリ、実行時間を指定してください。
停止したときに確認すること
systemctl status munge slurmctld slurmd
sudo journalctl -u munge -u slurmctld -u slurmd --no-pager -n 100
scontrol show node
nvidia-smi
既存設定の上書きを拒否された場合は、その設定を削除して強行しないでください。現在の構成と移行方法を先に確認します。GPUドライバーとOSの更新は、別の運用計画で扱います。
複数台・本番運用・サーバー選定の相談へ
1台でジョブを動かせたら、次に考えるのは利用者や運用に合う構成です。
- 複数のGPUサーバーを1つの待ち行列で使いたい。
- 共有ストレージとユーザー管理を整えたい。
- 既存環境を維持しながらOSやSlurmを更新したい。
- 使うソフトに合うCPU・GPU・メモリ容量から相談したい。
ServerGearでは、こうした構築相談とサーバー選定の相談を受け付けています。仕様が決まる前でも、用途や現在困っていることからご相談ください。
相談時には「Slurm Starterの記事を見た」と添え、OS、GPU型番・枚数、使いたいソフト、利用人数が分かる範囲であると話を進めやすくなります。ログを送る場合は、秘密鍵・パスワード・トークンを含めないでください。
本スクリプト自体はMIT Licenseです。Slurm、MUNGE、NVIDIAソフトウェア、Ubuntuパッケージには、それぞれのライセンスが適用されます。ServerGearによるツールであり、SchedMDやNVIDIAの認証を示すものではありません。