Slurm集群搭建的教程
本篇内容主要讲解“Slurm集群搭建的教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Slurm集群搭建的教程”吧!
创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为原阳企业提供专业的成都网站设计、做网站、成都外贸网站建设公司,原阳网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
一、系统环境
a) Centos 7.8 b) 两台机器规划IP 分别为10.10.0.20 与10.10.0.21 c) 机器主机名分别为node1、node2 d) 均关闭了防火墙以及selinux e) 已经配置好SSH 免密、NIS、NFS
二、配置munge 及Slurm
a) 安装依赖 yum install -y epel-release yum install -y gtk2 gtk2-devel munge munge-devel python python3 b) 配置munge #两台机器均要配置 chown slurm:slurm /etc/munge chown slurm:slurm /var/run/munge chown slurm:slurm /var/lib/munge chown slurm:slurm /var/log/munge create-munge-key #此步骤只在node1 节点做即可 scp /etc/munge/munge.key node2:/etc/munge/ chown slurm:slurm /etc/munge/munge.key su - slurm #所有节点使用slurm 用户启动munged munged c) 配置Slurm #所有节点配置相同 tar xvf slurm-20.11.5.tar.bz2 cd slurm-20.11.5/ ./configure make -j3 make install -j3 cp etc/{slurmctld.service,slurmdbd.service,slurmd.service} /usr/lib/systemd/system vi /usr/local/etc/slurm.conf #配置文件附在PS 中 scp /usr/local/etc/slurm.conf node2:/usr/local/etc/ chown slurm:slurm /var/spool/ systemctl start slurmctld #主节点启动slurmctld、slurmd systemctl start slurmd #从节点只需启动slurmd 即可
三、测试
a) 系统命令测试 [root[@node1](https://my.oschina.net/u/4273199) ~]# sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST control up infinite 1 idle node1 compute* up infinite 2 idle node[1-2] [root[@node1](https://my.oschina.net/u/4273199) ~]# srun -N 2 -l hostname # -N 2 执行的节点数 0: node1 1: node2 至此Slurm 集群搭建完成 b) mpi 测试 vi test.c #测试程序在PS 中 mpicc -o test test.c #编译mpi 程序 vi tj.sh #作业脚本在PS 中 sbatch tj.sh #提交作业 squeue #查看作业状态 [root[@node1](https://my.oschina.net/u/4273199) ~]# cat test.out #查看作业结果 node2: Hello world from process 2 number of processes: 4 ...node1: Hello world from process 0 node2: Hello world from process 3 node1: Hello world from process 1
四、PS
a) tj.sh 作业脚本 #!/bin/sh #SBATCH -o /root/test.out #结果输出到test.out #SBATCH --nodes=2 #节点数:2 #SBATCH --ntasks-per-node=2 mpirun /root/test b) slurm.conf 配置文件 SlurmctldHost=node1 #主节点 MpiDefault=none ProctrackType=proctrack/pgid #通过网站配置注意修改 ReturnToService=1 SlurmctldPidFile=/var/run/slurmctld.pid SlurmctldPort=6817 SlurmdPidFile=/var/run/slurmd.pid SlurmdPort=6818 SlurmdSpoolDir=/var/spool/slurmd SlurmUser=slurm #slurm 管理用户 StateSaveLocation=/var/spool SwitchType=switch/none TaskPlugin=task/affinity InactiveLimit=0 KillWait=30 MinJobAge=300 SlurmctldTimeout=120 SlurmdTimeout=300 Waittime=0 SchedulerType=sched/backfill SelectType=select/cons_tres SelectTypeParameters=CR_Core AccountingStorageType=accounting_storage/none AccountingStoreJobComment=YES ClusterName=siton #集群名 JobCompType=jobcomp/none JobAcctGatherFrequency=30 JobAcctGatherType=jobacct_gather/none SlurmctldDebug=info SlurmdDebug=info NodeName=node1,node2 CPUs=4 RealMemory=2 Sockets=4 CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN /*节点名称,CPUs 核数,corepersocket,threadspersocket,使用lscpu 查看,realmemory 实际分配给slurm 内存,procs 是实际CPU 个数,/proc/cpuinfo 里查看state=unknown是启动集群的时候为unknown,之后会变成idle*/ PartitionName=control Nodes=node1 Default=YES MaxTime=INFINITE State=UP PartitionName=compute Nodes=node1,node2 Default=YES MaxTime=INFINITE State=UP /*partitionname 是分成control 和compute,default=yes 是说这个用来计算*/ 可以通过https://slurm.schedmd.com/configurator.html 生成配置文件 c) mpi 测试程序 #include#include #include #include int main(int argc, char* argv[]) { int myid, numprocs, namelen; char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Get_processor_name(processor_name, &namelen); if (myid == 0) printf("number of processes: %d\n...", numprocs); printf("%s: Hello world from process %d \n", processor_name, myid); MPI_Finalize(); return 0; }
五、进阶(GPU)
修改slurm.conf 文件 GresTypes=gpu NodeName=slave3 Sockets=2 Procs=32 CoresPerSocket=8 ThreadsPerCore=2 RealMemory=3000 Gres=gpu:tesla:2 State=UNKNOWN NodeAddr=10.135.12.29 此外,slave3 这个机器需配置GPU 信息,编辑/usr/local/etc/gres.conf 文件 Name=gpu Type=tesla File=/dev/nvidia0 Name=gpu Type=tesla File=/dev/nvidia1 slurm 脚本中添加gres 指定gpu 资源 #SBATCH --gres=gpu:tesla:2
到此,相信大家对“Slurm集群搭建的教程”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
分享名称:Slurm集群搭建的教程
链接URL:http://azwzsj.com/article/ijpcjc.html