【发布时间】:2019-07-07 23:13:05
【问题描述】:
我在一个 2 节点集群上安装了 Slurm。两个节点都是计算节点,一个也是控制器。我能够一次成功地运行srun 多个作业。我正在运行 GPU 作业,并已确认我可以使用 srun 在多个 GPU 上运行多个作业,最多可达系统中的 GPU 数量。
但是,当我尝试使用相同的测试文件运行 sbatch 时,它只会运行一个批处理作业,并且它只在也是控制器的计算节点上运行。其他失败,sacct 摘要中的 ExitCode 为 1:0。如果我尝试强制它在不是控制器的计算节点上运行,它将不会运行并显示 1:0 退出代码。但是,只要使用 srun 就可以在任何计算节点上运行。
我已确保 /etc/slurm/slurm.conf 文件与机器规格相符。这是我正在使用的 sbatch .job 文件:
#!/bin/bash
#SBATCH --job-name=tf_test1
#SBATCH --output=/storage/test.out
#SBATCH --error=/storage/test.err
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=2000
##SBATCH --mem=10gb
#SBATCH --gres=gpu:1
~/anaconda3/bin/python /storage/tf_test.py
也许我不知道的 sbatch 存在一些限制?
【问题讨论】:
-
至少不要在没有评论的情况下投票并投票关闭。我被 Slurm 困住了,需要帮助运行批处理作业。我应该如何改进帖子?
-
也许您可以检查作业的输出。标准输出和错误输出。
-
它甚至没有创建输出和错误文件。只是给我非常无信息的错误代码。