HPE CRAY 자료 공유

[Build] slurm installation(RHEL 8.6) 본문

Applications/Scheduler

[Build] slurm installation(RHEL 8.6)

CRAY KOREA Blog 2023. 11. 14. 15:26

 

RHEL 8.6 OS에 slurm + pyxis + enroot 설치 기록

 

1. 의존성 패지키 설치

 # yum groupinstall "Development Tools"
 # yum install jna python3-docutils python3-devel kernel-rpm-macros \
 gcc-gfortran golang bzip2-devel pam-devel readline-devel java-1.8.0-openjdk-devel \
 python39 python39-devel python39-pip libatomic libatomic-static \
 mariadb mariadb-server mariadb-devel tcl-devel tk-devel libseccomp-devel \
 perl perl-ExtUtils-MakeMaker.noarch rpmlint \
 tar bzip2 make automake gcc gcc-c++ vim pciutils elfutils-libelf-devel libglvnd-devel iptables

 

2. GPU Driver 설치

 # chmod +x NVIDIA-Linux-x86_64-535.129.03.run 
 # ./NVIDIA-Linux-x86_64-535.129.03.run

 

3. CUDA Toolkit 설치

# chmod +x cuda_12.2.2_535.104.05_linux.run
# ./cuda_12.2.2_535.104.05_linux.run

 

4. 계정 생성

 # export SLURMUSER=5000
 # groupadd -g $SLURMUSER slurm
 # useradd -m -c "SLURM workload manager" -u $SLURMUSER -g slurm -s /bin/nologin slurm
 # export MUNGEUSER=5001
 # groupadd -g $MUNGEUSER munge
 # useradd -m -c "MUNGE authentication service" -u $MUNGEUSER -g munge -s /sbin/nologin munge
 # export DOCKERUSER=5002
 # groupadd -g $DOCKERUSER docker
 # useradd -m -c "DOCKER service" -u $DOCKERUSER -g docker -s /sbin/nologin docker

 

- 생성된 계정 확인

 [root@cray data]# id slurm
 uid=5000(slurm) gid=5000(slurm) groups=5000(slurm)
 [root@cray data]# id munge
 uid=5001(munge) gid=5001(munge) groups=5001(munge)
 [root@cray data]# id docker
 uid=5002(docker) gid=5002(docker) groups=5002(docker)

 

5. munge 빌드 & 설치

 $ rpmbuild -tb --without verify munge-0.5.15.tar.xz
 # cd /home/sylee/rpmbuild/RPMS/x86_64
 # yum localinstall munge-0.5.15*.rpm munge-devel-0.5.15*.rpm munge-libs-0.5.15*.rpm
 # sudo -u munge mungekey --verbose
 mungekey: Info: Created "/etc/munge/munge.key" with 1024-bit key
 # systemctl start munge.service
 # systemctl enable munge.service

※ rpmbuild는 일반 계정에서 실행을 권장 함

 

6. slurm 빌드 & 설치

 $ rpmbuild --define "_with_nvml --with-nvml=/usr/local/cuda" -ta slurm-23.02.5.tar.bz2
 # cd /home/sylee/rpmbuild/RPMS/x86_64
 # rpm -qlp slurm-23.02.5-1.el8.x86_64.rpm | grep -i nvml
 /usr/lib64/slurm/gpu_nvml.so
 #
 # yum localinstall slurm-23.02.5-1.el8.x86_64.rpm \
 slurm-contribs-23.02.5-1.el8.x86_64.rpm \
 slurm-devel-23.02.5-1.el8.x86_64.rpm \
 slurm-example-configs-23.02.5-1.el8.x86_64.rpm \
 slurm-libpmi-23.02.5-1.el8.x86_64.rpm \
 slurm-pam_slurm-23.02.5-1.el8.x86_64.rpm \
 slurm-perlapi-23.02.5-1.el8.x86_64.rpm \
 slurm-slurmctld-23.02.5-1.el8.x86_64.rpm \
 slurm-torque-23.02.5-1.el8.x86_64.rpm \
 slurm-slurmd-23.02.5-1.el8.x86_64.rpm \
 slurm-slurmdbd-23.02.5-1.el8.x86_64.rpm

※ rpmbuild는 일반 계정에서 실행을 권장 함

※ gpu_nvml.so 라이브러리가 포함 되어져 있는지 확인

※ GPU 사용을 위해 --define "_with_nvml --with-nvml=/usr/local/cuda" 옵션을 넣어서 빌드함

  GPU가 장착된 시스템이 아닌경우 제외

 

7. Slurm을 위한 MariaDB 설정

# mysql -u root
> CREATE database slurm_acct_db;
> create user 'slurm'@'localhost' identified by 'password';
> grant all privileges on slurm_acct_db.* to slurm@'localhost';
> flush privileges;
> exit

※ 설치 예제에는 slurm db의 비밀번호를 password로 생성함. 실제 사용할 비밀번호로 설정 필요

설치 예제는 동일 노드에 slurm db사용하나 slurm HA로 구성하는 경우 별도의 DB 노드 사용 권장 함

 

 8. slurm 설정 파일 생성

 # cd /etc/slurm
 # cp slurm.conf.example slurm.conf         
 # cp slurmdbd.conf.example slurmdbd.conf         
 # cp cgroup.conf.example cgroup.conf
 # echo "AutoDetect=nvml" > gres.conf 
 # cat gres.conf 
 AutoDetect=nvml
 # vi slurm.conf
 # vi slurmdbd.conf
 # chown slurm:slurm *.conf
 # mkdir -p /var/log/slurm
 # chown slurm:slurm /var/log/slurm
 # mkdir -p /var/spool/slurm
 # chown slurm:slurm /var/spool/slurm

※ slurm config 파일의 권한은 slurm 계정으로 설정

 

[slurm.conf 예제]

 

 

[slurmdbd.conf 예제]

 

 

'Applications > Scheduler' 카테고리의 다른 글

[PBS] Tip 모음  (0) 2024.05.02
[slurm] debuild with gpu  (1) 2024.01.13
[slurm] rpmbuild with gpu  (0) 2023.11.14
[Ubuntu] Slurm source install  (0) 2021.09.14
PBS vs Slurm  (0) 2021.08.06