Skip to main content

作业提交相关

· 4 min read

常见的作业运行失败有以下几种:

  • 作业脚本中参数有错误
  • 作业脚本中带有 windows 系统的编码
  • 提交的作业 cpu 核心数超过了集群总数
  • 作业缺少运行的环境变量,例如缺少 lib*.so、缺少 cudnn 库或者 cudnn 库 版本不正确等。

1. 作业提交失败,没有作业号?

作业提交命令或作业脚本中的参数有误,检查错误,修改为正确参数后重新提交任务。

2. 一直处于排队状态无法计算?

作业提交的资源(cpu核心或GPU卡数)超出整体集群最大资源数或超出分区(队列) 的最大资源数。修改作业资源(CPU核心或GPU卡数)后重新提交任务。

3. 任务失败,提示缺少系统库文件?

缺少lib库文件,在运行软件的安装目录下查找lib,查到后设置lib库文件的调用环境;或 联系管理员进行安装lib库文件; 缺少或找不到cudnn.x库,x为cudann版本;查看cuda版本以及相关cudnn版本,加 载正确版本的CUDA环境。

4. 作业脚本编码问题?

在windows操作系统中编辑的作业脚本,上传到Linux系统,提交作业时出现编码问题,使用dos2unix进行转换编码,转换命令为:dos2unix filename

5. 作业运行失败原因排查?

作业运行失败后会生成-e 参数和-o参数的log文件,通过查看这些log文件判断作业失败 的原因。

6. 某些计算节点有问题,导致计算节点与管理节点通信异常问题?

  1. 环境配置问题,典型问题包括hosts不完整、系统时间不一致、slurm配置文件不一 致。此时,出问题的节点可能是comp节点本身,也可能是其它参与消息转发的其它计算 节点。

解决方法:统一检查所有节点的上述配置,并对出问题的节点进行修正,或者关闭该节点 的slurmd服务。

  1. 网络设备异常,或者配置异常。

解决方法:结合系统日志和其它工具,定位问题并修正。

7. 节点上作业有些进程不能自己退出?

可以执行以下命令恢复节点状态,使得作业完全退出。具体步骤:

  • 设置节点为DOWN状态
scontrol update nodename=<node name> state=down reason=comp
  • 尝试手工处理残留的作业进程,如果失败则需要重启节点;
  • 恢复节点状态,重启slurmd服务
scontrol update nodename=<node name> state=resume
systemctl restsart slurmd

8. 处于完成或失败状态的job如何重新排队?

Slurm支持重新安排处于完成或失败状态的job,可以使用命令:scontrol requeue job_id 然后,该job将被重新排队,回到 PENDING 状态