Applications/Scheduler

[slurm] debuild with gpu

CRAY KOREA Blog 2024. 1. 13. 15:44

1. Dependency Packages 설치

 # apt install gcc gfortran make
 # apt install build-essential fakeroot devscripts
 # apt install -y munge libmunge-dev libmunge2 rng-tools python3 python3-pip libpython3-dev libssl-dev bzip2 libbz2-dev \
 gcc openssl numactl hwloc lua5.3 man2html mariadb-server libmariadb-dev \
 make ruby ruby-dev libmunge-dev libpam0g-dev libreadline8 libreadline-dev lz4 liblz4-dev \
 libgtk2.0-0 libgtk2.0-dev zlib1g zlib1g-dev libpam-dev
 # apt install -y libperl-dev liblua5.3-dev libhwloc-dev dh-exec librrd-dev libipmimonitoring-dev hdf5-helpers \
 libfreeipmi-dev libhdf5-dev libcurl4-openssl-dev libpmix-dev libhttp-parser-dev libyaml-dev libjson-c-dev libjwt-dev \
 libdbus-1-dev librdkafka-dev

 

2. CUDA toolkit & GPU driver 설치

 # wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
 # mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
 # wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
 # dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
 # cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
 # apt-get update
 # apt-get -y install cuda

- 참고: https://developer.nvidia.com/cuda-12-1-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local

 

3. Slurm ubuntu package build

$ wget https://download.schedmd.com/slurm/slurm-23.11.1.tar.bz2
$ tar xvf slurm-23.11.1.tar.bz2
$ cd slurm-23.11.1
$ vi debian/rules
 - - - "override_dh_auto_configure" 항목에 "--with-nvml=/usr/local/cuda" 추가 - - -
$ debuild -b -uc -us

- 참고: https://slurm.schedmd.com/quickstart_admin.html

 

$ ls -rlt ~ | grep deb
-rw-r--r--  1 sylee sylee    15342 Jan 13 15:22 slurm-smd-libpmi2-0_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee    22670 Jan 13 15:22 slurm-smd-libpam-slurm-adopt-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee     7292 Jan 13 15:22 slurm-smd-openlava_23.11.1-1_all.deb
-rw-r--r--  1 sylee sylee     7012 Jan 13 15:22 slurm-smd-libnss-slurm_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee    40828 Jan 13 15:22 slurm-smd-slurmrestd_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee    10872 Jan 13 15:22 slurm-smd-libpam-slurm-adopt_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee    11992 Jan 13 15:22 slurm-smd-libpmi0_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee    15032 Jan 13 15:22 slurm-smd-libnss-slurm-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee    27074 Jan 13 15:22 slurm-smd-sackd-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee    10100 Jan 13 15:22 slurm-smd-sackd_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee    27006 Jan 13 15:22 slurm-smd-libpmi0-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee    43984 Jan 13 15:22 slurm-smd-libpmi2-0-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee    97408 Jan 13 15:22 slurm-smd-slurmrestd-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee   115924 Jan 13 15:22 slurm-smd-slurmdbd-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee    27292 Jan 13 15:22 slurm-smd-torque_23.11.1-1_all.deb
-rw-r--r--  1 sylee sylee    48966 Jan 13 15:22 slurm-smd-slurmdbd_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee   326138 Jan 13 15:22 slurm-smd-sview-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee   436428 Jan 13 15:22 slurm-smd-libslurm-perl-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee  1263170 Jan 13 15:22 slurm-smd-slurmctld-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee   584008 Jan 13 15:22 slurm-smd-slurmd-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee   196882 Jan 13 15:22 slurm-smd-slurmd_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee   123126 Jan 13 15:22 slurm-smd-sview_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee   157950 Jan 13 15:22 slurm-smd-libslurm-perl_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee  1421896 Jan 13 15:22 slurm-smd-client-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee   520820 Jan 13 15:22 slurm-smd-slurmctld_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee   726548 Jan 13 15:22 slurm-smd-client_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee  1988514 Jan 13 15:22 slurm-smd-doc_23.11.1-1_all.deb
-rw-r--r--  1 sylee sylee  8343628 Jan 13 15:22 slurm-smd-dbgsym_23.11.1-1_amd64.ddeb
-rw-r--r--  1 sylee sylee  2475834 Jan 13 15:22 slurm-smd_23.11.1-1_amd64.deb
-rw-r--r--  1 sylee sylee 23232750 Jan 13 15:23 slurm-smd-dev_23.11.1-1_amd64.deb

 

4. 확인

nvml 라이브러리가 slurm package에 포함되었는지 확인

dpkg -c ./slurm-smd_23.11.1-1_amd64.deb | grep nvml
-rw-r--r-- root/root     47952 2023-09-13 04:54 ./usr/lib/x86_64-linux-gnu/slurm/gpu_nvml.so