Ubuntu20.04单机安装slrum教程
Ubuntu20.04单机安装slrum教程
type
status
date
slug
summary
tags
category
icon
password
Property
Dec 5, 2022 11:00 AM
URL
本人系统:Ubuntu20.04 64位,建议和我的一样,不然可能会不行
 
最终效果:
 
notion image
 
视频教程

1. 前言

配置 slurm 的主要目的是为了用他的这个作业的邮件通知,我平时使用 Gaussian 09 软件,运行的时候不知道啥时候运行完成了,每次都需要自己去看,就很烦,所以我的需求是当我的作业完成的时候可以邮件提醒我啥时候完成了,效率就会提高很多。
网上全是些坑爹教程,照着他们的来做,根本搞不出来,不少文章都是抄的外网的教程,很多都过时了,或者少了某些重要步骤和一些细节都没说,你照着他们的来做一辈子都搞不出来!真的坑!!!
 
准备工作
  • 安装MobaXterm(点我下载)此软件 ssh 和 sftp 在同一页面,所以操作起来非常简单

2. 正式安装

2.1 安装 slurm

sudo apt install slurm-wlm slurm-wlm-doc -y
检查安装是否成功
slurmd --version
会得到:slurm-wlm 19.05.5

2.2 配置slurm

配置文件是放在 /etc/slurm-llnl/ 下面的,使用命令
sudo vi /etc/slurm-llnl/slurm.conf
建立一个 slurm.conf 文件,里面的内容如何填写呢?
像我下面一样
ClusterName=cool ControlMachine=master #ControlAddr= #BackupController= #BackupAddr= # MailProg=/usr/bin/s-nail SlurmUser=root #SlurmdUser=root SlurmctldPort=6817 SlurmdPort=6818 AuthType=auth/munge #JobCredentialPrivateKey= #JobCredentialPublicCertificate= StateSaveLocation=/var/spool/slurmctld SlurmdSpoolDir=/var/spool/slurmd SwitchType=switch/none MpiDefault=none SlurmctldPidFile=/var/run/slurmctld.pid SlurmdPidFile=/var/run/slurmd.pid ProctrackType=proctrack/pgid #PluginDir= #FirstJobId= ReturnToService=0 #MaxJobCount= #PlugStackConfig= #PropagatePrioProcess= #PropagateResourceLimits= #PropagateResourceLimitsExcept= #Prolog= #Epilog= #SrunProlog= #SrunEpilog= #TaskProlog= #TaskEpilog= #TaskPlugin= #TrackWCKey=no #TreeWidth=50 #TmpFS= #UsePAM= # # TIMERS SlurmctldTimeout=300 SlurmdTimeout=300 InactiveLimit=0 MinJobAge=300 KillWait=30 Waittime=0 # # SCHEDULING SchedulerType=sched/backfill #SchedulerAuth= #SelectType=select/linear #PriorityType=priority/multifactor #PriorityDecayHalfLife=14-0 #PriorityUsageResetPeriod=14-0 #PriorityWeightFairshare=100000 #PriorityWeightAge=1000 #PriorityWeightPartition=10000 #PriorityWeightJobSize=1000 #PriorityMaxAge=1-0 # # LOGGING SlurmctldDebug=info SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log SlurmdDebug=info SlurmdLogFile=/var/log/slurm-llnl/slurmd.log JobCompType=jobcomp/none #JobCompLoc= # # ACCOUNTING #JobAcctGatherType=jobacct_gather/linux #JobAcctGatherFrequency=30 # #AccountingStorageType=accounting_storage/slurmdbd #AccountingStorageHost= #AccountingStorageLoc= #AccountingStoragePass= #AccountingStorageUser= # # COMPUTE NODES PartitionName=master Nodes=master Default=NO MaxTime=INFINITE State=UP #NodeName=master State=UNKNOWN NodeName=master Sockets=2 CoresPerSocket=16 ThreadsPerCore=1 State=UNKNOWN
上面的代码中的
ControlMachine=master
PartitionName=master Nodes=master Default=NO MaxTime=INFINITE State=UP #NodeName=master State=UNKNOWN NodeName=master Sockets=2 CoresPerSocket=16 ThreadsPerCore=1 State=UNKNOWN
标红 标绿 的地方需要修改,这两部分是是需要修改的,其他的别动。
红色部分的修改
使用 hostname 命令可以查看到你的名字,然后把你的到的名字替换上面的 master
绿色部分的修改
这部分稍微有点复杂,首先来解释各个名字的意思
Sockets 代表你服务器cpu的个数
CoresPerSocket 代表每个cpu的核数
ThreadsPerCore 代表是否开启超线程,如果开启了超线程就是2,没有开启就是1
 
查看cpu个数使用命令:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看每个cpu的核数使用命令:cat /proc/cpuinfo| grep "cpu cores"| uniq
查看是否开启超线程:使用vi cxc.sh 编写以下脚本
#!/bin/bash cpunum=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l` echo "CPU 个数: $cpunum"; cpuhx=`cat /proc/cpuinfo | grep "cores" | uniq | awk -F":" '{print $2}'` echo "CPU 核心数:$cpuhx" ; cpuxc=`cat /proc/cpuinfo | grep "processor" | wc -l` echo "CPU 线程数:$cpuxc" ; if [[ `expr $cpunum\*$[cpuhx*2] ` -eq $cpuxc ]]; then echo "开启了超线程" else echo "未开启超线程" fi
然后使用命令 bash cxc.sh 运行脚本,看看线程数是不是核心数的两倍,如果是就开启了,没有就没开启。
 
完成上面的之后吧对应的数字填写上去就可以了。
 
完成上述所有的设置之后就能启动服务了
sudo systemctl enable slurmctld --now sudo systemctl enable slurmd --now
查看slurm队列信息
sinfo
notion image
如果这部分是 idle 就说明是可以的,如果不是 idle 请看这个
至此就已经安装完成了
 

3. 配置邮件通知

ubuntu 18.04 以后都用 s-nail 而不是mailx或mailutils,安装的时候绘会弹出gui窗口提示选择内核版本,一路回车默认即可

3.1 安装 s-nail

sudo apt install s-nail

3.2 配置 s-nail

使用命令
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邮箱地址
 
配置好之后,重启 slrum 服务
sudo systemctl restart slurmctld

3.3 测试 sbatch 服务

使用 vi test.slurm
#!/bin/bash #SBATCH -J dog #SBATCH -p master #SBATCH -N 1 #SBATCH -n 1 #SBATCH --mail-user=你的qq邮箱 #SBATCH --mail-type=ALL sleep 5 whoami
上面的 master 是你的机器名称,每个人都不一样,需要你修改,上面以及说了,是运行 hostname 之后得到的名字,替换 master。
然后使用 sbatch test.slurm ,看看自己是否收到邮件
 
更多的slrum系统的命令可以看这个
 
关于N化合物的一个说明Mathematica 安装和激活