SLURM 安装与配置
2015-09-02 09:06
405 查看
SLURM 安装与配置
SLURM 介绍
SLURM 是一个可用于大型计算节点集群的高度可伸缩的集群管理器和作业调度系统。SLURM 维护着一个待处理工作的队列并管理此工作的整体资源利用。SLURM 将作业分发给一组已分配的节点来执行。本质上,SLURM 是一个强健的集群管理器,它高度可移植、可伸缩至大型节点集群、容错好,而且更重要的是它是开源的。
关于 SLURM 的架构可以参考 http://slurm.schedmd.com/
安装 SLURM
这里安装都是以在CentOS6.5上安装为例。并且因为 SLURM 是在集群中使用,所以我们这里假定有三台相同版本的linux,机器名分别为mycentos6x,mycentos6x1和mycentos6x2,其中 mycentos6x 作为控制节点。安装 MUNGE
首先 SLURM 需要使用 MUNGE 来认证,所以我们要先来安装 MUNGE。从 MUNGE(https://github.com/dun/munge) 的官方网站下载安装包,这里使用 munge-0.5.11.tar.bz2 文件。使用 root 用户运行下面命令
编译并安装 munge 包
# rpmbuild -tb --clean munge-0.5.11.tar.bz2 # cd /root/rpmbuild/RPMS/x86_64 # rpm --install munge*.rpm
在编译rpm包和安装的过程中可能会提示需要一些第三方的软件包,此时可以使用 “yum install -y xxx” 来安装,我在安装的时候就是先安装了下面的软件包
# yum install -y rpm-build rpmdevtools bzip2-devel openssl-devel zlib-devel
安装完成后,需要修改下面这些文件的权限
# chmod -Rf 700 /etc/munge # chmod -Rf 711 /var/lib/munge # chmod -Rf 700 /var/log/munge # chmod -Rf 0755 /var/run/munge
另外需要注意的是检查一下/etc/munge/munge.key文件,文件的 owner 和 group 必须是 munge,否则启动会失败。
安装完成后,就可以启动 munge 服务了
# /etc/init.d/munge start
最后,需要把 /etc/munge/munge.key 复制到另外两台机器上,并确保文件权限和属主都相同。
安装 SLURM
首先创建slurm用户# useradd slurm # passwd slurm
访问 SLURM(http://slurm.schedmd.com/)下载安装包,这里使用 slurm-14.11.8.tar.bz2 安装包。
编译并安装 slurm 包
# rpmbuild -ta --clean slurm-14.11.8.tar.bz2 # cd /root/rpmbuild/RPMS/x86_64 # rpm --install slurm*.rpm
在编译rpm包和安装的过程中提示我安装了下面的软件包
# yum install -y readline-devel pam-devel perl-DBI perl-ExtUtils-MakeMaker
安装完成后,修改下面命令的属组
# sudo chown slurm:slurm /var/spool
到这里,SLURM的安装就完成了,但是还不能启动,我们还需要做一下配置才可以启动slurm服务并提交作业。
配置 SLURM
进入/etc/slurm/目录,复制slurm.conf.example文件成slurm.conf,然后编辑/etc/slurm/slurm.conf文件下面是我的文件中修改的部分
ControlMachine=mycentos6x ControlAddr=192.168.145.100 SlurmUser=slurm SelectType=select/cons_res SelectTypeParameters=CR_Core SlurmctldDebug=3 SlurmctldLogFile=/var/log/slurmctld.log SlurmdDebug=3 SlurmdLogFile=/var/log/slurmd.log NodeName=mycentos6x,mycentos6x1,mycentos6x2 CPUs=4 RealMemory=500 Sockets=2 CoresPerSocket=2 ThreadsPerCore=1 State=IDLE PartitionName=control Nodes=mycentos6x Default=YES MaxTime=INFINITE State=UP PartitionName=compute Nodes=mycentos6x1,mycentos6x2 Default=NO MaxTime=INFINITE State=UP
注:这里需要将此配置文件部署到集群里的每台机器上。
保存文件,然后使用下面命令启动slurm服务
# /etc/init.d/slurm start
测试
在启动了slurm服务之后,我们可以使用下面一些命令来查看集群状态并提交作业# sinfo PARTITION ***AIL TIMELIMIT NODES STATE NODELIST control* up infinite 1 idle mycentos6x compute up infinite 2 idle mycentos6x1,mycentos6x2
# scontrol show slurm reports Active Steps = NONE Actual CPUs = 2 Actual Boards = 1 Actual sockets = 1 Actual cores = 2 Actual threads per core = 1 Actual real memory = 1464 MB Actual temp disk space = 29644 MB Boot time = 2015-07-22T09:50:34 Hostname = mycentos6x Last slurmctld msg time = 2015-07-22T09:50:37 Slurmd PID = 27755 Slurmd Debug = 3 Slurmd Logfile = /var/log/slurmd.log Version = 14.11.8
# scontrol show config # scontrol show partition # scontrol show node # scontrol show jobs
提交作业
# srun hostname mycentos6x
# srun -N 3 -l hostname 0: mycentos6x 1: mycentos6x1 2: mycentos6x2
# srun sleep 60 &
查询作业
# squeue -a JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 77 debug sleep kongxx R 0:06 1 mycentos6x
取消作业
# scancel <job_id>
参考:
SLURM:http://slurm.schedmd.com/MUNGE: https://github.com/dun/munge
转载请以链接形式标明本文地址
本文地址:/article/1415932.html
相关文章推荐
- select into from和insert into select from两种表复制语句区别
- ue4和u3d术语对照
- linux 在系统启动过程
- android开源项目学习
- UVA 1610
- PL/SQL与SQL(Oracle)Case语句
- Java基础学习对象、封装第二章实验练习三
- 一种加快在苹果app store中上架的方法
- Error configuring application listener of class org.springframework.web.context.ContextLoaderListene
- CListCtrl 的相关实现方式
- HDU 5305 Friends(dfs)
- 隐写术入门篇——bmp
- HTML头部
- 移动设备的界面
- shell中的特殊符号
- HDU 5301 Buildings(机智)
- 浙江大学PAT_甲级_1048. Find Coins (25)
- OGRE manual 读后感悟
- GIF
- LeetCode之Remove Linked List Elements