1:关于slurm的相关资料
slurm任务调度系统,主要应用在HPC集群资源管理和任务调度。
相关知识在网上很容易能够查找,这里就不再赘述.
网上的部署资料有些零碎,要么就要vip...., 本文主要记录如何部署slurm.
2:部署环境
使用的是虚拟机VMware,安装的操作系统是CentsOS7
CentOS8安装会存在一些麻烦,作为练手项目这里选择更简单的CentOS7
此为单机部署,集群下只有本机一个节点作为入门
3:开始部署
首先安装基础操作环境,这部分一般没有什么难点.
转好虚拟机后,确定虚拟机能够联网,以方便接下类的安装
3.1:首先是安装一些必要的环境和库
3.1.1:换源
一般当前的镜像源是找不到包的...所以换国内的源
yum install epel-release
3.1.2:装环境
安装一些后续运行所依赖的环境
yum install -y rpm-build bzip2-devel openssl openssl-devel zlib-devel perl-DBI perl-ExtUtils-MakeMaker pam-devel readline-devel mariadb-devel python3 gtk2 gtk2-devel gcc make
3.2:安装munge
这一步倒是很少出错,
1:移除之前可能错误安装的munge和munge用户,
yum remove -y munge munge-libs munge-devel
userdel -r munge
2:开始安装munge,并启动munge服务
yum -y install munge munge-libs munge-devel -y
/usr/sbin/create-munge-key
systemctl enable munge --now
3.3 :安装PMIX
这里选择源码安装,源码地址https://github.com/openpmix/openpmix/releases
这里下载的是3.2.4版本,下载后放到桌面即可,当然其他位置也行
cd切换到包的目录解压
//解压
tar -zxvf pmix-3.2.4-2.tar.gz
//进入解压后的目录
cd pmix-3.2.4
//安装依赖库
yum install -y hwloc-devel libevent-devel
//安装pmix
./configure && make install -j $(nproc)
3.4:安装slurm
3.4.1 :还是先下载,slurm版本一般没有坑,下载新版的即可,重要的是配置文件slurm.config和service文件位置
这里仍然是放到了桌面解压安装
//如果下载的是不同版本,注意文件名字即可
tar --bzip -x -f slurm*tar.bz2
cd slurm-23.02.3/
./configure && make install -j $(nproc)
3.4.2: 之后就是slurm.conf文件了,这里极易出错,建议去slurm官网生成
进入slurm官网Slurm Workload Manager - Documentation (schedmd.com)
这里关键信息要填写,其他的可以保持默认
ClusterName :集群名子,随便写一个,但是要与后面的对应
SlurmctldHost:这个必须正确,获取方法,打开一个终端框
输入hostname -s 可以看到,通常的主机名为localhost
nodename 因为是单机单节点所以是本机名字,同上
nodeaddr 单节点,这里填本机IP地址, 获取方式:命令框输入ip addr,可以在ens33列后面看到
SlurmUser 最好写root
Default MPI Type 可不选,这里选PMIX
Process Tracking 这里选LinuxProc
Resource Selection 选Cons_res
Job Accounting Gather 选Linux
点最后的submit会跳转到网页生成配置文件的代码
在虚拟机中用命令新建一个文本文件,
touch slurm.conf
chmod 777 slurm.conf
将生成网页中的所有代码粘贴到文本文件中
3.4.3:将填写好的的配置文件放到/usr/local/etc下
cp slurm.conf /usr/local/etc
3.4.4:然后cd切换到之前解压的slurm-23.02.3文件下.执行
cd ./etc/
chmod 755 *.service && cp *.service /etc/systemd/system
cd /etc/systemd/system
3.4.5:启动slurm服务
systemctl enable slurmctld --now
systemctl enable slurmd --now
sinfo
能看到节点up说明安装成功
4:提交一个作业运行测试验证
创建作业job.sh
touch job.sh
vim job.sh
编辑:注意,这里将输出打印到了桌面,每个人虚拟机的桌面路径位置是不同的
应当修改output=/home/mohua/Desektop/output.txt
这里的路径信息,修改为自己的路径即可
#!/bin/bash
#SBATCH --job-name=myjob
#SBATCH --output=/home/mohua/Desektop/output.txt
#SBATCH --time=5:00
echo "This is my job."
echo "The current working directory is: $PWD"
echo "The date is: $(date)"
echo "The hostname is: $(hostname)"
提交作业:
sbatch job.sh
可以看到生成了output.txt
成功^_^