欢迎浏览我的CSND博客 Blockbuater-drug …点击进入文章目录前言一、Slurm是什么二、安装步骤Step 1. 安装依赖的软件包Step 2. 找到slurm-wlm-configurator.html文件进入该目录下Step 3. 生成配置文件Step 4. 手动创建slurm的输出文件目录Step 5. 启动 slurm 服务三、Slurm作业调度Slurm 3种作业提交模式sbatch模式总结参考资料前言作业调度开源软件Slurm的安装与使用。一、Slurm是什么SlurmSimple Linux Utility for Resource Management。可以用于集群或者单机上作为任务管理程序。Slurm安装简单使用便捷以下介绍在Ubuntu 22.04上安装slurm并进行配置。二、安装步骤Step 1. 安装依赖的软件包sudoaptupdatesudoaptinstallslurm-wlmsudoaptinstallslurmd#启动、监控任务、分层通信sudoaptinstallslurmctld#管理任务、故障切换、资源监控、队列管理、作业调度Step 2. 找到slurm-wlm-configurator.html文件进入该目录下代码如下示例dpkg-Lslurmctld|grepslurm-wlm-configurator.html#/usr/share/doc/slurmctld/slurm-wlm-configurator.htmlsudochmodr /usr/share/doc/slurmctld/slurm-wlm-configurator.htmlStep 3. 生成配置文件cd/usr/share/doc/slurmctld python3-mhttp.server#Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...浏览器打开点击进入 slurm-wlm-configurator.html 按照配置需求填写以下必要设置。SlurmctldHost: 计算机名用hostname命令查看PartitionName: 分区名比如设置为computingcpuscpu数量线程数Sockets: 指定cpu插槽数CoresPerSocket: 每个插槽有多少coreThreadsPerCore: 2slurmuserrootProcess Tracking选择 LinuxProc或者pgid点击submit生成slurm.conf网页。将内容保存到 /etc/slurm/slurm.conf修改 sudo vim /etc/slurm/slurm.conf修改 GresTypesgpu加入以下内容保存NodeNameXXXGresgpu:1RealMemory32000Sockets1CoresPerSocket8ThreadsPerCore2StateUNKNOWNPartitionNamecomputingNodesALLDefaultYESMaxTimeINFINITEStateUPXXX为hostname输出本机名称Gresgpu:1 ##GPU数量RealMemory32000 Sockets1 CoresPerSocket8 ThreadsPerCore2 #表示32G内存单颗CPU8核16线程修改sudo vim /etc/slurm/gres.conf################################################################### Slurms Generic Resource (GRES) configuration file# Define GPU device, with AutoDetect sanity checking###################################################################AutoDetectnvmlNodeNameXXXNamegpuTypeK40File/dev/nvidia0TypeK40 ## GPU型号Step 4. 手动创建slurm的输出文件目录sudomkdir/var/spool/slurmdsudomkdir/var/spool/slurmctldStep 5. 启动 slurm 服务依次启动程序sudosystemctl start slurmdsudosystemctlenableslurmdsudosystemctl status slurmdsudosystemctl start slurmctldsudosystemctlenableslurmctldsudosystemctl status slurmctld#赋予可读取写入权限sudochmod-R755/var/lib/slurm/slurmdsudochmod-R755/var/lib/slurm/slurmctldsudochmod755/var/log/slurm/slurmd.logsudochmod755/var/log/slurm/slurmctld.log#如果需要修改/etc/slurm/slurm.conf配置需要依次重新启动sudoscontrol reconfigsudosystemctl restart slurmdsudosystemctl restart slurmctld#如果启动失败如下查看问题sudoslurmd-Dvvv三、Slurm作业调度Slurm 3种作业提交模式分别为交互srun批处理sbatch分配salloc可使用的主要参数-c, --cpu-per-taskNCPUs#指定每个进程使用核数不指定默认为1-J, --job-nameJOBNAME#指定作业名称-n,--ntaskNTASKs#指定总进程数不使用cpus-per-task可理解为进程数即为核数--ntask-per-nodeN#指定每个节点进程数/核数使用-n参数后变为每个节点最多运行的进程数-N,--nodesN#指定节点数量-o,--outputout_filename#指定输出文件输出-p,--partioncomputing#指定分区-t,--timedd-hh:mm:ss#作业最大运行时间--mem-per-cpuMB#指定计算cpu最大占用内存大小--mail-typeEND/FAIL/ALL#邮件提醒可选:END,FAIL,ALL--mail-usermail_address#通知邮箱地址sbatch模式批处理模式是指用户编写作业脚本指定资源需求约束提交后台执行作业。运行提交任务后工作目录中会生成以 slurm 开头的.out 文件为输出文件。作业提交命令sbatch filename#!/bin/bash#批处理脚本#SBATCH --job-nameJOBNAME %指定作业名称#SBATCH --partitioncomputing %指定分区#SBATCH --nodes2 %指定节点数量#SBATCH --cpus-per-task1 %指定每个进程使用核数不指定默认为1#SBATCH -n 32 %指定总进程数不使用cpus-per-task可理解为进程数即为核数#SBATCH --ntasks-per-node16 %指定每个节点进程数/核数,使用-n参数优先级更高变为每个节点最多运行的任务数#SBATCH --timedd-hh:mm:ss %作业最大运行时长参考格式填写#SBATCH --mail-typeALL %邮件提醒,可选:END,FAIL,ALL#SBATCH --mail-useraddress %通知邮箱地址###task###Slurm 命令Sinfo命令: sinfo#查看所有分区状态sinfo-a#查看所有分区状态sinfo-N#查看节点状态sinfo-nnode-name#查看指定节点状态sinfo--help#查看sinfo的说明节点状态 STATE恢复和设置节点状态sudoscontrol updateNodeNameXXXStateRESUME查看运行信息scontrol show job JOBID#查看作业的详细信息scontrol shownode#查看所有节点详细信息scontrol shownodenode-name#查看指定节点详细信息scontrol shownode|grepCPU#查看各节点cpu状态scontrol shownodenode-name|grepCPU#查看指定节点cpu状态作业提交后可使用slurm命令查看取消修改作业。总结作业调度开源软件Slurm的安装与使用。参考资料https://blog.csdn.net/r1141207831/article/details/125272108https://blog.csdn.net/weixin_45277161/article/details/129908143https://zhuanlan.zhihu.com/p/571973164欢迎浏览我的CSND博客 Blockbuater-drug …点击进入