slurm/node をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
大事な事っぽい事
-管理ノードと計算ノードのslurmのバージョンはほぼ同じで &s...
-計算ノーへの通信があるようで firewall が有効ならportを開...
-GPUノードの場合は /dev/nvidiaX を使うので「persistence m...
-計算ノードの/etc/hostsに自ノードと管理ノードは入れて置い...
っで各計算ノード毎(OS毎)の構築
[[slurm/node/ubuntu]]
***RockyLinux9 [#l92b3c2a]
[[slurm/rpm]]で作成したパッケージを適用します
#code(nonumber){{
[root@n2 ~]# dnf install epel-release -y
[root@n2 ~]# dnf install libjwt pmix-pmi
[root@n2 ~]# groupadd -g 5000 slurm; useradd -M -d /var/l...
[root@n2 ~]# dnf localinstall ./slurm-25.11.2-1.el9.x86_6...
[root@n2 ~]# echo "D /run/slurm 0755 root root -" > /usr/...
[root@n2 ~]# /usr/bin/systemd-tmpfiles --create /usr/lib/...
[root@n2 ~]# mkdir -p /var/spool/slurm/d /var/log/...
[root@n2 ~]# chown slurm. /var/spool/slurm/d /var/log/...
[root@n2 ~]# echo -e "export PATH=\${PATH}:/opt/slurm/bin...
[root@n2 ~]# echo -e "setenv PATH \${PATH}:/opt/slurm/bin...
[root@n2 ~]# /opt/slurm/sbin/slurmd -C
NodeName=n2 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSoc...
UpTime=0-00:13:31
[root@n2 ~]#
}}
設定ファイルは管理ノードから頂きます
#code(nonumber){{
(管理ノードから「slurm.key」を受領する)
[root@slurm ~]# scp /opt/slurm/etc/slurm.key n2:/opt/slu...
[root@slurm ~]# ssh n2 chown slurm. /opt/slurm/etc/slurm....
}}
もし管理ノードで「Configless 」が未定義なら[[slurm/manage...
firewall. slurm.confの「SlurmdPort」を開けておく. あと sr...
#code(nonumber){{
[root@n2 ~]# firewall-cmd --add-port=6818/tcp --add-port=...
[root@n2 ~]# firewall-cmd --reload
}}
最後にデーモンを起動させます
#code(nonumber){{
[root@n2 ~]# systemctl enable slurmd --now
}}
&color(red){*};&size(10){nvidia関係は「persistence mode」...
***メモ [#z48b9e27]
rshは不要.
しかも 計算ノードの ssh ログインをroot以外拒否でも構わな...
#code(nonumber){{
[root@n2 ~]# vi /etc/ssh/sshd_config
:
:
AllowUsers root
[root@n2 ~]#
[root@n2 ~]# systemctl restart sshd
}}
これはジョブの実行云々に関わらず常にずっとrootしか入れな...
#code(nonumber){{
[root@n2 ~]# dnf localinstall slurm-pam_slurm-24.05.1...
[root@n2 ~]# ls -l /lib64/security/pam_slurm*
-rwxr-xr-x 1 root root 305664 Jul 24 22:50 /lib64/securit...
-rwxr-xr-x 1 root root 201016 Jul 24 22:50 /lib64/securit...
[root@n2 ~]# echo "/opt/slurm/lib64" > /etc/ld.so.conf.d/...
[root@n2 ~]# ldconfig
}}
設定してみる
#code(nonumber){{
(管理ノードでPrologFlagsを付ける)
[root@slurm ~]# vi /opt/slurm/etc/slurm.conf
:
PrologFlags=contain
[root@slurm ~]# scontrol reconfig
(計算ノードでpamの調整)
[root@n2 ~]# vi /etc/pam.d/sshd
:
account required pam_slurm_adopt.so # 末尾に追記
[root@n2 ~]#
[root@n2 ~]# vi /etc/pam.d/password-auth
:
#-session optional pam_systemd.so # pam_syst...
:
[root@n2 ~]#
}}
っでテスト
何もそのノードで自分のジョブが動いていないと
#code(nonumber){{
[illya@slurm ~]$ ssh n2
illya@n2's password:
Access denied by pam_slurm_adopt: you have no active jobs...
Connection closed by 192.168.0.15 port 22
[illya@slurm ~]$
}}
と弾かれる。
っで、ジョブを掴んで
#code(nonumber){{
[illya@slurm ~]$ srun --gres=gpu:1 -w n2 --pty bash
[illya@n2 ~]$ nvidia-smi -L
GPU 0: NVIDIA T600 (UUID: GPU-01226552-df75-5989-c2f3-355...
[illya@n2 ~]$
}}
そのまま別のターミナルからsshを試みると
#code(nonumber){{
[illya@slurm ~]$ ssh n2
illya@n2's password:
Last login: Thu Jul 25 03:50:40 2024 from 192.168.0.69
[illya@n2 ~]$ nvidia-smi -L
GPU 0: NVIDIA T600 (UUID: GPU-01226552-df75-5989-c2f3-355...
[illya@n2 ~]$
}}
GPUデバイスも使えるみたい.
複数のGPUを載せている場合は?
***メモ [#h570f639]
-下記のようなメッセージがでるのは単に「cgroup.conf」を用...
#code(nonumber){{
slurmd: CPU frequency setting not configured for this node
slurmd: error: cgroup namespace 'freezer' not mounted. ab...
slurmd: error: unable to create freezer cgroup namespace
slurmd: error: Couldn't load specified plugin name for pr...
slurmd: error: cannot create proctrack context for proctr...
slurmd: error: slurmd initialization failed
}}
-下記文言が表示される
#code(nonumber){{
slurmd[73076]: fatal: Unable to determine this slurmd's N...
}}
「slurm.conf」のクラスター構成メンツに「NodeName=<ホスト...
-下記文言が表示される
#code(nonumber){{
Unable to register: Zero Bytes were transmitted or received
}}
管理ノードと計算ノードのmungeのUID/GIDが異なる. mungeを止...
-計算ノードで下記エラーが出たなら
#code(nonumber){{
slurmd: error: Couldn't find the specified plugin name fo...
slurmd: error: cannot find cgroup plugin for cgroup/v2
slurmd: error: cannot create cgroup context for cgroup/v2
slurmd: error: Unable to initialize cgroup plugin
}}
これは製作中にdbus-glib-devel(RHEL系)、libdbus-1-dev(Ubun...
-下記文言が表示される
#code(nonumber){{
slurmd: error: resolve_ctls_from_dns_srv: res_nsearch err...
slurmd: error: fetch_config: DNS SRV lookup failed
slurmd: error: _establish_configuration: failed to load c...
slurmd: error: slurmd initialization failed
}}
slurmd.confがないっぽい
-sinfoで「down*」となる
計算ノードの/etc/hostsとか管理ノード、計算ノードの名前解...
あるいは「/usr/lib/systemd/system/slurmd.service」の「Aft...
-GPUノードは「persistence mode」を有効にした方がいいかも
理由は起動とともに「/dev/nvidia0」を有効にさせるために. ...
あと、「/usr/lib/systemd/system/slurmd.service」の「After...
-mungeをnisでアカウント管理していると「/run/munge」の作成...
なので計算ノードの/etc/group,/etc/passwdにmungeのアカウン...
「systemd-tmpfiles-setup.service」を弄って「After=」にypb...
***メモ [#zdb4eecf]
gresが上手く動かないなら直接そのノードとGPUを記載する
#code(nonumber){{
#AutoDetect=nvml
#
#[/opt/slurm/sbin/slurmd -C]
# NodeName=gpu1 CPUs=32 Boards=1 SocketsPerBoard=1 CoresP...
#@slurm.confにて
# NodeName=gpu1 CPUs=32 Boards=1 SocketsPerBoard=1 CoresP...
#
#
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia0
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia1
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia2
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia3
}}
[/opt/slurm/sbin/slurmd -C]の値でGresが「Gres=gpu:nvidia_...
終了行:
大事な事っぽい事
-管理ノードと計算ノードのslurmのバージョンはほぼ同じで &s...
-計算ノーへの通信があるようで firewall が有効ならportを開...
-GPUノードの場合は /dev/nvidiaX を使うので「persistence m...
-計算ノードの/etc/hostsに自ノードと管理ノードは入れて置い...
っで各計算ノード毎(OS毎)の構築
[[slurm/node/ubuntu]]
***RockyLinux9 [#l92b3c2a]
[[slurm/rpm]]で作成したパッケージを適用します
#code(nonumber){{
[root@n2 ~]# dnf install epel-release -y
[root@n2 ~]# dnf install libjwt pmix-pmi
[root@n2 ~]# groupadd -g 5000 slurm; useradd -M -d /var/l...
[root@n2 ~]# dnf localinstall ./slurm-25.11.2-1.el9.x86_6...
[root@n2 ~]# echo "D /run/slurm 0755 root root -" > /usr/...
[root@n2 ~]# /usr/bin/systemd-tmpfiles --create /usr/lib/...
[root@n2 ~]# mkdir -p /var/spool/slurm/d /var/log/...
[root@n2 ~]# chown slurm. /var/spool/slurm/d /var/log/...
[root@n2 ~]# echo -e "export PATH=\${PATH}:/opt/slurm/bin...
[root@n2 ~]# echo -e "setenv PATH \${PATH}:/opt/slurm/bin...
[root@n2 ~]# /opt/slurm/sbin/slurmd -C
NodeName=n2 CPUs=2 Boards=1 SocketsPerBoard=2 CoresPerSoc...
UpTime=0-00:13:31
[root@n2 ~]#
}}
設定ファイルは管理ノードから頂きます
#code(nonumber){{
(管理ノードから「slurm.key」を受領する)
[root@slurm ~]# scp /opt/slurm/etc/slurm.key n2:/opt/slu...
[root@slurm ~]# ssh n2 chown slurm. /opt/slurm/etc/slurm....
}}
もし管理ノードで「Configless 」が未定義なら[[slurm/manage...
firewall. slurm.confの「SlurmdPort」を開けておく. あと sr...
#code(nonumber){{
[root@n2 ~]# firewall-cmd --add-port=6818/tcp --add-port=...
[root@n2 ~]# firewall-cmd --reload
}}
最後にデーモンを起動させます
#code(nonumber){{
[root@n2 ~]# systemctl enable slurmd --now
}}
&color(red){*};&size(10){nvidia関係は「persistence mode」...
***メモ [#z48b9e27]
rshは不要.
しかも 計算ノードの ssh ログインをroot以外拒否でも構わな...
#code(nonumber){{
[root@n2 ~]# vi /etc/ssh/sshd_config
:
:
AllowUsers root
[root@n2 ~]#
[root@n2 ~]# systemctl restart sshd
}}
これはジョブの実行云々に関わらず常にずっとrootしか入れな...
#code(nonumber){{
[root@n2 ~]# dnf localinstall slurm-pam_slurm-24.05.1...
[root@n2 ~]# ls -l /lib64/security/pam_slurm*
-rwxr-xr-x 1 root root 305664 Jul 24 22:50 /lib64/securit...
-rwxr-xr-x 1 root root 201016 Jul 24 22:50 /lib64/securit...
[root@n2 ~]# echo "/opt/slurm/lib64" > /etc/ld.so.conf.d/...
[root@n2 ~]# ldconfig
}}
設定してみる
#code(nonumber){{
(管理ノードでPrologFlagsを付ける)
[root@slurm ~]# vi /opt/slurm/etc/slurm.conf
:
PrologFlags=contain
[root@slurm ~]# scontrol reconfig
(計算ノードでpamの調整)
[root@n2 ~]# vi /etc/pam.d/sshd
:
account required pam_slurm_adopt.so # 末尾に追記
[root@n2 ~]#
[root@n2 ~]# vi /etc/pam.d/password-auth
:
#-session optional pam_systemd.so # pam_syst...
:
[root@n2 ~]#
}}
っでテスト
何もそのノードで自分のジョブが動いていないと
#code(nonumber){{
[illya@slurm ~]$ ssh n2
illya@n2's password:
Access denied by pam_slurm_adopt: you have no active jobs...
Connection closed by 192.168.0.15 port 22
[illya@slurm ~]$
}}
と弾かれる。
っで、ジョブを掴んで
#code(nonumber){{
[illya@slurm ~]$ srun --gres=gpu:1 -w n2 --pty bash
[illya@n2 ~]$ nvidia-smi -L
GPU 0: NVIDIA T600 (UUID: GPU-01226552-df75-5989-c2f3-355...
[illya@n2 ~]$
}}
そのまま別のターミナルからsshを試みると
#code(nonumber){{
[illya@slurm ~]$ ssh n2
illya@n2's password:
Last login: Thu Jul 25 03:50:40 2024 from 192.168.0.69
[illya@n2 ~]$ nvidia-smi -L
GPU 0: NVIDIA T600 (UUID: GPU-01226552-df75-5989-c2f3-355...
[illya@n2 ~]$
}}
GPUデバイスも使えるみたい.
複数のGPUを載せている場合は?
***メモ [#h570f639]
-下記のようなメッセージがでるのは単に「cgroup.conf」を用...
#code(nonumber){{
slurmd: CPU frequency setting not configured for this node
slurmd: error: cgroup namespace 'freezer' not mounted. ab...
slurmd: error: unable to create freezer cgroup namespace
slurmd: error: Couldn't load specified plugin name for pr...
slurmd: error: cannot create proctrack context for proctr...
slurmd: error: slurmd initialization failed
}}
-下記文言が表示される
#code(nonumber){{
slurmd[73076]: fatal: Unable to determine this slurmd's N...
}}
「slurm.conf」のクラスター構成メンツに「NodeName=<ホスト...
-下記文言が表示される
#code(nonumber){{
Unable to register: Zero Bytes were transmitted or received
}}
管理ノードと計算ノードのmungeのUID/GIDが異なる. mungeを止...
-計算ノードで下記エラーが出たなら
#code(nonumber){{
slurmd: error: Couldn't find the specified plugin name fo...
slurmd: error: cannot find cgroup plugin for cgroup/v2
slurmd: error: cannot create cgroup context for cgroup/v2
slurmd: error: Unable to initialize cgroup plugin
}}
これは製作中にdbus-glib-devel(RHEL系)、libdbus-1-dev(Ubun...
-下記文言が表示される
#code(nonumber){{
slurmd: error: resolve_ctls_from_dns_srv: res_nsearch err...
slurmd: error: fetch_config: DNS SRV lookup failed
slurmd: error: _establish_configuration: failed to load c...
slurmd: error: slurmd initialization failed
}}
slurmd.confがないっぽい
-sinfoで「down*」となる
計算ノードの/etc/hostsとか管理ノード、計算ノードの名前解...
あるいは「/usr/lib/systemd/system/slurmd.service」の「Aft...
-GPUノードは「persistence mode」を有効にした方がいいかも
理由は起動とともに「/dev/nvidia0」を有効にさせるために. ...
あと、「/usr/lib/systemd/system/slurmd.service」の「After...
-mungeをnisでアカウント管理していると「/run/munge」の作成...
なので計算ノードの/etc/group,/etc/passwdにmungeのアカウン...
「systemd-tmpfiles-setup.service」を弄って「After=」にypb...
***メモ [#zdb4eecf]
gresが上手く動かないなら直接そのノードとGPUを記載する
#code(nonumber){{
#AutoDetect=nvml
#
#[/opt/slurm/sbin/slurmd -C]
# NodeName=gpu1 CPUs=32 Boards=1 SocketsPerBoard=1 CoresP...
#@slurm.confにて
# NodeName=gpu1 CPUs=32 Boards=1 SocketsPerBoard=1 CoresP...
#
#
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia0
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia1
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia2
NodeName=gpu1 Name=gpu Type=pro4000 File=/dev/nvidia3
}}
[/opt/slurm/sbin/slurmd -C]の値でGresが「Gres=gpu:nvidia_...
ページ名:
1