ローカルで運用しているUbuntu20.04にジョブスケジューラを入れよう、ということで最初Torqueを入れようとした。
sudo apt install torque-server torque-mom
しかしそんなものはないと言われる。aptのほうでももうメンテナンスされてないんだね。
ということでAlma Linuxに入れたSlurmを入れることにする。
まずは下ごしらえでユーザー設定など。
sudo groupadd -g 5000 slurm sudo useradd -M -d /var/lib/slurm -s /sbin/nologin -u 5000 -g slurm slurm sudo groupadd -g 5001 munge sudo useradd -M -d /var/lib/munge -s /bin/bash -u 5001 -g munge munge sudo mkdir -p /var/lib/slurm/spool sudo mkdir -p /var/log/slurm sudo chown -R slurm:slurm /var/log/slurm sudo chown -R slurm:slurm /var/lib/slurm
そしてmungeのインストール
sudo apt install -y munge libmunge-dev
Alma Linuxのほうではここでmunge-keyをゴニョゴニョしたと思うんだけど、
qiita.com
参考にさせていただいたこちらのページではそんなことはやっていないので、要らないんだろうか。
で、Slurmはソースを取ってきてビルド。
sudo apt install -y build-essential wget https://download.schedmd.com/slurm/slurm-23.02.3.tar.bz2 tar -jxvf slurm-23.02.3.tar.bz2 cd slurm-23.02.3/ ./configure make sudo make install
次にslurm.confを作る。
slurm.schedmd.com
こちらのページに必要事項を入力するといい感じにconfigファイルを作ってくれるらしい。
できたファイルを以下にコピーして、ちょっとだけ追加修正してやる。
sudo nano /usr/local/etc/slurm.conf # slurm.conf file generated by configurator easy.html. # Put this file on all nodes of your cluster. # See the slurm.conf man page for more information. # ClusterName=guilty8 SlurmctldHost=guilty8-e5800t110fe # #MailProg=/bin/mail MpiDefault=none #MpiParams=ports=#-# ProctrackType=proctrack/cgroup ReturnToService=1 SlurmctldPidFile=/var/run/slurmctld.pid #SlurmctldPort=6817 SlurmdPidFile=/var/run/slurmd.pid #SlurmdPort=6818 SlurmdSpoolDir=/var/spool/slurmd SlurmUser=slurm #SlurmdUser=root StateSaveLocation=/var/spool/slurmctld SwitchType=switch/none TaskPlugin=task/affinity,task/cgroup # # # TIMERS #KillWait=30 #MinJobAge=300 #SlurmctldTimeout=120 #SlurmdTimeout=300 # # # SCHEDULING SchedulerType=sched/backfill SelectType=select/cons_tres # # # LOGGING AND ACCOUNTING AccountingStorageType=accounting_storage/none #JobAcctGatherFrequency=30 JobAcctGatherType=jobacct_gather/none #SlurmctldDebug=info SlurmctldLogFile=/var/log/slurmctld.log #SlurmdDebug=info SlurmdLogFile=/var/log/slurmd.log # # # COMPUTE NODES NodeName=guilty8-e5800t110fe CPUs=8 Sockets=1 CoresPerSocket=4 ThreadsPerCore=2 State=UNKNOWN PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP
これでいいはずなので
sudo cp etc/slurmctld.service /etc/systemd/system sudo cp etc/slurmd.service /etc/systemd/system sudo systemctl start slumctld slums
と起動してやったがどちらもActive: failed と言われる。
slumctldのほうは権限がなくて/var/spool/slurmctldが作れないとのことなので
sudo mkdir -p /var/spool/slurmctld sudo chmod 777 /var/spool/slurmctld/
としてやることで無事起動した。
一方、slurmdは
sudo systemctl status slurmd × slurmd.service - Slurm node daemon Loaded: loaded (/etc/systemd/system/slurmd.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2023-07-02 13:40:10 JST; 5min ago Process: 6779 ExecStart=/usr/local/sbin/slurmd -D -s $SLURMD_OPTIONS (code=exited, status=1/FAILURE) Main PID: 6779 (code=exited, status=1/FAILURE) CPU: 4ms 7月 02 13:40:10 guilty8-e5800t110fe systemd[1]: Started Slurm node daemon. 7月 02 13:40:10 guilty8-e5800t110fe slurmd[6779]: slurmd: error: Couldn't find the specified plugin name for cgroup/v2 looking at all files 7月 02 13:40:10 guilty8-e5800t110fe slurmd[6779]: slurmd: error: cannot find cgroup plugin for cgroup/v2 7月 02 13:40:10 guilty8-e5800t110fe slurmd[6779]: slurmd: error: cannot create cgroup context for cgroup/v2 7月 02 13:40:10 guilty8-e5800t110fe slurmd[6779]: slurmd: error: Unable to initialize cgroup plugin 7月 02 13:40:10 guilty8-e5800t110fe slurmd[6779]: slurmd: error: slurmd initialization failed 7月 02 13:40:10 guilty8-e5800t110fe systemd[1]: slurmd.service: Main process exited, code=exited, status=1/FAILURE 7月 02 13:40:10 guilty8-e5800t110fe systemd[1]: slurmd.service: Failed with result 'exit-code'.
で、Stackoverflowあたりをさまようとlibdbus-1-devを入れとけや、と言われるので
sudo apt install libdbus-1-dev
としたけど変わらない。
結局、libdbus-1-devをインストールしたあとmakeからやり直さないとだめなようで、
./configure make sudo make install
とすると
sudo systemctl status slurmd ● slurmd.service - Slurm node daemon Loaded: loaded (/etc/systemd/system/slurmd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-07-02 13:45:56 JST; 30min ago Main PID: 26767 (slurmd) Tasks: 1 Memory: 1.1M CPU: 15ms CGroup: /system.slice/slurmd.service └─26767 /usr/local/sbin/slurmd -D -s 7月 02 13:45:56 guilty8-e5800t110fe systemd[1]: Started Slurm node daemon. 7月 02 13:45:56 guilty8-e5800t110fe slurmd[26767]: slurmd: slurmd version 23.02.3 started 7月 02 13:45:56 guilty8-e5800t110fe slurmd[26767]: slurmd: slurmd started on Sun, 02 Jul 2023 13:45:56 +0900 7月 02 13:45:56 guilty8-e5800t110fe slurmd[26767]: slurmd: CPUs=8 Boards=1 Sockets=1 Cores=4 Threads=2 Memory=15931 TmpDisk=936080 Uptime=5890 CPUSpec>
と無事に起動した。めでたし。