今後は公開記事の表題を AI Aided HPC Cluster 設計と改めて、日々のサポート中で、AI に助けてもらった結果何を得たのかを記載してこう思います。

今日のお題は Slurm のインストールをUbuntuをデプロイしただけのマシンから、簡単にテストジョブを投げるところまでやってみます。結果は下記の通り、


#!/bin/bash
set -euo pipefail
VER=25.11.3
WORK=~/build/slurm
mkdir -p "$WORK"
cd "$WORK"

sudo apt update
sudo apt install -y build-essential devscripts debhelper dh-autoreconf \
  equivs fakeroot ca-certificates gnupg pkg-config curl

curl -O "https://download.schedmd.com/slurm/slurm-${VER}.tar.bz2"   # 公式
tar -xaf "slurm-${VER}.tar.bz2"
cd "slurm-${VER}"

# Build-Depends を自動解決
sudo mk-build-deps -i -t "apt-get -y" debian/control

# 署名なしでバイナリ DEB を生成
debuild -b -uc -us

# 単機検証:最低限の導入
cd ..
sudo dpkg -i slurm-smd_*amd64.deb slurm-smd-client_*amd64.deb \
             slurm-smd-slurmctld_*amd64.deb slurm-smd-slurmd_*amd64.deb || sudo apt -f install -y

# MUNGE 準備
sudo apt install -y munge libmunge-dev
#sudo /usr/sbin/create-munge-key
sudo systemctl enable --now munge

#

sudo groupadd -g 1100 slurm
sudo useradd -m -c "Slurm User" -d /var/lib/slurm -u 1100 -g slurm -s /bin/bash slurm


# 最小構成の slurm.conf
sudo mkdir -p /etc/slurm /var/spool/slurm /var/spool/slurmd
sudo chown -R slurm:slurm /var/spool/slurm /var/spool/slurmd

cat <<'EOF' | sudo tee /etc/slurm/slurm.conf
ClusterName=single-test
ControlMachine=localhost
NodeName=localhost CPUs=1 State=UNKNOWN
PartitionName=main Nodes=ALL Default=YES MaxTime=INFINITE State=UP
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
SlurmUser=slurm
StateSaveLocation=/var/spool/slurm
SlurmdSpoolDir=/var/spool/slurmd
SelectType=select/cons_tres
TaskPlugin=task/none
EOF


HN=$(hostname -s)
sudo sed -i "s/ControlMachine=.*/ControlMachine=$HN/" /etc/slurm/slurm.conf
sudo sed -i "s/NodeName=.*/NodeName=$HN CPUs=1 State=UNKNOWN/" /etc/slurm/slurm.conf


sudo systemctl enable --now slurmctld
sudo systemctl enable --now slurmd

echo "==== sanity check ===="
sinfo || true
srun -p main -N1 -n1 /bin/hostname || true


Slurm の小難しい設計はここでは触れません。(それはまた別の話なので)
単純に Ubuntu のパッケージを作りインストールして、ジョブが流れるということだけの話です。
ここまでは、ちょっとの手間で書いてくれます。ミスがあったら直すかもしれません