计算化学公社

标题: Slurm在centos7单机上的安装经验 [打印本页]

作者
Author:
wood    时间: 2023-2-14 23:34
标题: Slurm在centos7单机上的安装经验
本帖最后由 wood 于 2023-2-15 00:07 编辑

slurm是常见的一种作业管理软件,这里只记录在一台8核心、2颗GPU的centos7的PC上的安装过程。

#操作步骤依次如下
################################
yum -y install hwloc-devel libevent-devel
yum -y install munge munge-libs munge-devel
yum -y install install s-nail
/usr/sbin/create-munge-key
systemctl enable munge --now

#解压并编译安装
#下载地址为:https://pan.baidu.com/s/1auvTvgqS10G6ibBLhd4PCw 提取码: 1209
tar -xvf  pmix-4.2.3rc2.tar.gz  && cd pmix-4.2.3rc2
./configure && make install -j $(nproc)  && cd /opt

#slurm解压并编译安装
#下载地址为:https://pan.baidu.com/s/1yr6eZzbA6wxohVWYjWgYrw 提取码: 1209  
tar -xvf  slurm-22.05.8.tar.bz2  && cd slurm-22.05.8
./configure && make install -j $(nproc) && cd /opt

#输出机器的配置信息
find / -name slurm.conf && find / -name gres.conf  && hostname  && lscpu  && free -m  &&  nvidia-smi

#配置邮箱,用以发送作业状态的邮件
#vi /etc/s-nail.rc
#set from="你的qq邮箱"
#set smtp="smtps://smtp.qq.com:465"
#set smtp-auth-user="你的qq邮箱"
#set smtp-auth-password="qq邮箱授权码"
#set smtp-auth=login
#测试,看看qq邮箱是否得到消息
#echo "邮件内容" | s-nail -s "邮件主题" 你的qq邮箱地址


#配置slurm
在/opt/slurm-22.05.8/doc/html/configurator.easy.html 有自动生成的网页,拷贝一份到本地,用浏览器打开,填写相应信息
        ClusterName、SlurmctldHost、NodeName 都填hostname的值
        CPUs、Sockets、CoresPerSocket 根据lscpu 填
        RealMemory 根据free -m 填
        SlurmUser 方便起见用root,生产环境建议用权限小的用户
        Default MPI Type 可不选,这里选pmix
        Process Tracking 这里选LinuxProc
        Resource Selection 选Cons_res  \ cons_tres
        SelectTypeParameters 选CR_Memory
        Job Accounting Gather 选Linux
然后点击sumbit 得到一份配置文件,如下方所示的,后写入到/usr/local/etc/slurm.conf

vi /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=VM-0-5-centos
SlurmctldHost=VM-0-5-centos
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/linuxproc
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=root
#SlurmdUser=root
StateSaveLocation=/var/spool/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
#
# 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/linux
#SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurmctld.log
#SlurmdDebug=info
SlurmdLogFile=/var/log/slurmd.log
#
# COMPUTE NODES
#NodeName=VM-0-5-centos CPUs=8 RealMemory=39469 Sockets=1 CoresPerSocket=8 ThreadsPerCore=1 State=UNKNOWN
PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP
GresTypes=gpu
NodeName= VM-0-5-centos Gres=gpu:2  CPUs=8  RealMemory=39469 Sockets=1 CoresPerSocket=8 ThreadsPerCore=1 State=UNKNOWN

#GPU设备配置#(对于此设置抱有疑问,我的测试中只能启用其中一块GPU,没有找到两颗GPU同时计算一个作业的配置与脚本设置,在此求教大佬!)

vi /usr/local/etc/gres.conf
#####################################################################################
NodeName=VM-0-5-centos  Name=gpu File=/dev/nvidia0
NodeName=VM-0-5-centos  Name=gpu File=/dev/nvidia1

#配置
cd ./slurm-22.05.8//etc/ && chmod 755 *.service && cp *.service /etc/systemd/system

#开机启动
systemctl enable slurmctld --now
systemctl enable slurmd --now

#测试,显示主机名
sinfo && srun -n 2 hostname

#节点信息查看
scontrol show node

#作业脚本run.sh的编写
################################################################
#!/bin/bash
#SBATCH --job-name example               # 任务名叫 example
#SBATCH --time 1-1:00:00                   # 子任务 1 天 1 小时就能跑完        
#SBATCH -o test.out                            # 屏幕上的输出文件重定向到 test.out
#SBATCH -N 1                                     # 作业申请 1 个节点
#SBATCH --ntasks-per-node=1              # 单节点启动的进程数为 1
#SBATCH --cpus-per-task=8                 # 单任务使用的 CPU 核心数为 8
#SBATCH -t 1:00:00                            # 任务运行的最长时间为 1 小时
#SBATCH --gres=gpu:2                       # 单个节点使用 2 块 GPU 卡【很奇怪这里,在已有的计算里只拉起了一颗GPU进行计算,问题?】
#SBATCH --gpu-bind=none
#SBATCH --mem-per-gpu=7611
#SBATCH --gpu-bind=none

export I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.1.1
export MPICH_GPU_SUPPORT_ENABLED=1   # needed for CUDA-aware MPI supportexport JDFTX_LAUNCH=""
export JDFTX_SUFFIX="_gpu"
#export JDFTX_MEMPOOL_SIZE=7611  # adjust as needed (in MB)
export SLURM_CPU_BIND="cores"
export PATH="/opt/build:$PATH"

#srun  (进行作业计算的软件)
srun   jdftx_gpu   -i Ion_opt.in > Ion_opt.out

#测试
#某个测试作业的输出报告gpuInit: Found compatible cuda device 0 'Tesla P4'gpuInit: Found compatible cuda device 1 'Tesla P4'
gpuInit: Selected device 0
Resource initialization completed at t:      0.46
Run totals: 1 processes, 8 threads, 1 GPUs





作者
Author:
abin    时间: 2023-2-15 09:15
https://gitee.com/hpc4you/hpc/blob/master/doc/README.md
这里的PDF文档,
有一章节内容是,
Slurm 自我修养,里面有好多参考资料,
可能有帮助。
作者
Author:
azurebayer    时间: 2023-2-15 12:59
我在Ubuntu上装的时候,还需要改一些文件夹的权限。Centos不存在这个问题么?
作者
Author:
交大小周    时间: 2023-2-24 20:55
本帖最后由 交大小周 于 2023-2-24 21:41 编辑

老师您好,感谢您的安装教程,按照网上其他安装方法按了2天都没按上,您这个方法目前是最顺利的,之前许多错误都没有出现了,但是在测试sinfo的时候,出现了如下错误,请问这个怎么解决呢?谢谢
sinfo
srun: error: Unable to allocate resources: Unable to contact slurm controller (connect failure)

[root@dafeng etc]# systemctl status slurmctld -l
● slurmctld.service - Slurm controller daemon
   Loaded: loaded (/etc/systemd/system/slurmctld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2023-02-24 20:52:29 CST; 46min ago
Main PID: 82490 (code=exited, status=1/FAILURE)

Feb 24 20:52:29 dafeng systemd[1]: Started Slurm controller daemon.
Feb 24 20:52:29 dafeng slurmctld[82490]: slurmctld: fatal: Unable to process configuration file
Feb 24 20:52:29 dafeng systemd[1]: slurmctld.service: main process exited, code=exited, status=1/FAILURE
Feb 24 20:52:29 dafeng systemd[1]: Unit slurmctld.service entered failed state.
Feb 24 20:52:29 dafeng systemd[1]: slurmctld.service failed.


作者
Author:
yhy98    时间: 2023-3-25 20:28
交大小周 发表于 2023-2-24 20:55
老师您好,感谢您的安装教程,按照网上其他安装方法按了2天都没按上,您这个方法目前是最顺利的,之前许多 ...

您好,我是在启动slurmctld进程的时候出现这样的报错,请问最后解决了吗?
作者
Author:
乐平    时间: 2023-4-11 11:54
azurebayer 发表于 2023-2-15 12:59
我在Ubuntu上装的时候,还需要改一些文件夹的权限。Centos不存在这个问题么?

他应该是用 root 管理员账号来安装的。

很多所谓的“教程”其实忽略了很重要的细节,比如,代码前面的用户环境 [root@main location]#
作者
Author:
luzujia    时间: 2023-8-17 19:01
感谢大佬!我在虚拟机上安装成功了,但在相同系统的服务器上安装提示错误:[sh5util] Error 1,可能是什么原因呢

作者
Author:
Weldingspock    时间: 2023-8-18 18:05
乐平 发表于 2023-4-11 11:54
他应该是用 root 管理员账号来安装的。

很多所谓的“教程”其实忽略了很重要的细节,比如,代码前面的 ...

请问大佬,这个该注意什么呢

作者
Author:
TeaNotFavorite    时间: 2023-10-26 14:04
luzujia 发表于 2023-8-17 19:01
感谢大佬!我在虚拟机上安装成功了,但在相同系统的服务器上安装提示错误:[sh5util] Error 1,可能是什么 ...

我遇到这个报错,是因为开了conda环境,你检查一下你的环境
作者
Author:
luzujia    时间: 2023-10-27 15:27
TeaNotFavorite 发表于 2023-10-26 14:04
我遇到这个报错,是因为开了conda环境,你检查一下你的环境

噢噢是这样,谢谢~




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3