- 目的:在初步学习之后,已了解slurm平台工作流程,slurm实则是一个计算节点之间的管理工具,其本身并无计算能力,要实现计算的功能还需另外安装mpi的实现,此处安装openMPI。
- 准备:注意版本,slurm-17.02.11;openmpi-4.0.5,这套配置能够解决依赖问题。
一:准备工作
1.前三步骤见 https://giganticray.github.io/2020/07/13/%E7%94%A8ubuntu%E6%90%AD%E5%BB%BAslurm%E5%B9%B3%E5%8F%B0/
二:配置slurm
2.配置slurm
在slurm官方下载页面下载slurm(注意版本),在/opt下新建Slurm文件夹,默认是在/usr/local下的,但这样容易与其他程序搞混,故放在/opt下。二者差别可看这里。将下载的包解压,在解压目录执行
1 | 1. # 安装依赖 |
配置文件解释可在这里
注意,见slurm.conf中有两个slurmctld.log与slurmd.log日志文件,需要自己手动创建。到这里slurm配置完成。
另外,可以在/opt/Slurm/sbin下执行sudo ./slurmctld -D(主节点)。sudo ./slurmd -D(计算节点)来验证是否成功。
三:配置openmpi
这就是为啥要选用slurm17版本的原因,slurm17x之后(具体多少搞忘了),其吧pmi.h分离了出去,我原先用slurm20版本的始终无法安装openmpi成功,吐了。
在openmpi官方下载包,新建/opt/OpenMPI
1
2
3 1. 解压后在解压目录执行
2. sudo ./configure --with-pmi=/opt/Slurm/include/slurm --with-pmi-libdir=/opt/Slurm/lib --prefix=/opt/OpenMPI CPPFLAGS=-I/opt/Slurm/include/slurm LDFLAGS=-L/opt/Slurm/lib
3. sudo make install
四: 问题汇总
版本不匹配问题
在slurm17以后,安装之后在/*/include/slurm下总是没有pmi.h,这样在安装openmpi的时候就会找不到pmi.h文件,安装失败,遂降低版本,查阅文件发现在slurm17以后,slurm官方就把pmi.h分离出来了,需要的话要另外编译,此处为了偷懒,就直接用以前的版本了。
openmpi编译成功后,但是在intall阶段处,出现缺少pmi.h的错误,查资料,在这里发现在编译openmpi的时候要另外加两个参数,遂加上,编译成功。