当前位置: 首页 > news >正文

服务器上用Slurm 管理训练bash 脚本任务,申明使用GPU

首先写配置

# slurm.conf - 单机A800服务器配置
ClusterName=a800_cluster
ControlMachine=localhost
SlurmctldPort=6817
SlurmdPort=6818
SlurmUser=slurm
AuthType=auth/munge# 日志配置
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdLogFile=/var/log/slurm/slurmd.log
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
StateSaveLocation=/var/spool/slurmctld
SlurmdSpoolDir=/var/spool/slurmd# 调度参数
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core
MpiDefault=none
TaskPlugin=task/affinity,task/cgroup# 超时设置
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0# 性能优化参数
FastSchedule=1
MessageTimeout=10
TCPTimeout=2# GPU相关配置
GresTypes=gpu
AutoDetect=none# 任务管理
JobCompType=jobcomp/none
AccountingStorageType=accounting_storage/none# 定义计算节点NodeName=localhost NodeAddr=127.0.0.1   CPUs=128 Sockets=2 CoresPerSocket=32 ThreadsPerCore=2   Gres=gpu:8    State=UNKNOWN # 定义分区(队列)
PartitionName=gpu Nodes=localhost Default=YES MaxTime=INFINITE State=UP    OverSubscribe=NO PartitionName=gpu-debug Nodes=localhost Default=NO MaxTime=02:00:00 State=UP   OverSubscribe=NO DefMemPerGPU=24576PartitionName=cpu Nodes=localhost Default=NO MaxTime=24:00:00 State=UP   OverSubscribe=YES
# 内存管理
#DefMemPerCPU=8192
#MaxMemPerCPU=16384
#DefMemPerNode=1048576
ProctrackType=proctrack/pgid

根据配置

  • 确认GRES类型:在 slurm.conf 文件的开头部分,应该有类似下面的全局配置,声明支持的GRES类型:
    GresTypes=gpu
    
  • 统一GPU资源类型:为了简化请求,建议将节点配置中的GRES类型改为通用的 gpu。这样用户只需请求 --gres=gpu:1
    # 修改后
    NodeName=localhost ... Gres=gpu:8 ...
    
    如果确实需要区分A800和其他型号的GPU,可以在 gres.conf 中通过 Type 字段指定。
2. 创建并配置 gres.conf 文件

这是最关键的一步。请在您的计算节点(本例中是localhost)上创建或编辑 /etc/slurm/gres.conf 文件。

# 示例 /etc/slurm/gres.conf 配置
NodeName=localhost Name=gpu  File=/dev/nvidia0
NodeName=localhost Name=gpu  File=/dev/nvidia1
NodeName=localhost Name=gpu  File=/dev/nvidia2
NodeName=localhost Name=gpu  File=/dev/nvidia3
NodeName=localhost Name=gpu  File=/dev/nvidia4
NodeName=localhost Name=gpu  File=/dev/nvidia5
NodeName=localhost Name=gpu  File=/dev/nvidia6
NodeName=localhost Name=gpu  File=/dev/nvidia7
  • File=/dev/nvidia[0-7] 指明了GPU设备的路径,Slurm通过它们与物理GPU交互。请根据您系统上实际的GPU设备文件进行修改,可以使用 ls /dev/nvidia* 命令查看。
3. 验证调度插件配置

确保 slurm.conf 中配置了支持GRES的调度插件:

SelectType=select/cons_tres
SelectTypeParameters=CR_Core
4. 重启服务并验证配置

完成所有配置修改后,必须重启Slurm服务以使更改生效,然后验证配置是否正确。

# 重新加载或重启服务(在控制节点和计算节点上执行)
sudo systemctl restart slurmctld
sudo systemctl restart slurmd# 验证节点是否正确识别了GPU资源
scontrol show node localhost | grep Gres

命令输出应明确显示该节点有8个GPU资源可用,例如 Gres=gpu:8

验证分区和节点状态

sinfo -o “%N %G %P %T” # 查看节点名称、GRES、分区和状态

5. 测试GPU作业提交

配置正确后,再次尝试提交作业:

srun -p gpu --gres=gpu:1 nvidia-smi

如果配置完全正确,此命令应能成功执行并输出NVIDIA-SMI的信息。

⚠️ 注意事项

  • 配置文件权限:确保 slurm.confgres.conf 文件对所有相关节点上的Slurm用户(通常是 slurm)可读。
  • 配置一致性:集群中所有节点上的Slurm配置文件必须保持一致。
  • 查看日志:如果问题依旧,请检查Slurm的日志文件(如 /var/log/slurm/slurmd.log/var/log/slurm/slurmctld.log),通常能找到具体的错误信息。
http://www.dtcms.com/a/540595.html

相关文章:

  • 上海小程序网站开发公司wordpress国外主题下载地址
  • 新城镇建设官方网站kali建设网站
  • 便携式el检测仪:确保光伏组件的质量与性能稳定
  • 英一2015年真题学习笔记
  • Docker 部署银河麒麟(Kylin Linux)全流程教程
  • GPT、DeepSeek等大语言模型应用
  • 大语言模型基础LLM:Transformer和大模型
  • 本地用docker开发的php 程序如何部署到阿里云的ecs上
  • html css js网页制作成品——一念关山HTML+CSS网页设计(5页)附源码
  • BuildingAI二开 Coze套餐管理页面PRD
  • 加强学院网站的建设与管理一个完整的外贸流程
  • 大屏开发,在线歌词舆情分析系统demo,基于python,flask,web,echart,nlp,自然语言数据库mysql。
  • 网站后台上传缩略图高端网站开发哪家强
  • SAP GUI 800进行品牌化设置
  • unity打包安卓设置为横屏
  • final是干嘛的
  • 马赛克数据增强与 Tensor、TensorFlow 区别学习总结
  • 【Node】win 10 / win 11:node.js 长期维护版下载、安装与 npm 配置
  • 青岛公司网站建设开发南京网站建设与维护
  • 宠物系统功能演示
  • 具身智能的平民化浪潮:从表演秀到产业变革临界点
  • Geoserver漏洞图形化利用工具
  • 沈阳公司网站设计类似58的推广平台有哪些平台
  • 最小二乘问题详解6:梯度下降法
  • Linux内核RDMA计数器机制:深入解析与实现原理
  • iOS 反编译防护工具与实战组合 从静态侦察到 IPA 成品加固的工程化路径
  • 微信小程序组件中二维码生成问题解决方案
  • 网站文件解压北仑装修公司哪家最好
  • 《微信小程序》第八章:“我的“设计
  • 基于 Launcher3 的 iOS 风格桌面 04 拖拽和移位