我有一个长时间运行的任务,我想在 slurm 上使用作业数组来运行。
我目前用来提交作业的脚本是:
#!/bin/bash
#SBATCH --output=slurm-%A_%a.out
#SBATCH --array=1-30
#SBATCH --ntasks=1
#SBATCH --qos=qos-15d
#SBATCH --partition=large
#SBATCH --mem=4G
srun ./a
这个脚本工作正常,但我的问题是因为它是一个包含 30 个作业的数组,我需要在 X 时间启动第一个,然后在 X 分钟后启动第二个,依此类推。我想这样做是因为我将模拟一个使用 srand (time (0)) 函数生成随机数的 C 编译程序。因此,上面的脚本对 30 次模拟产生了相同的结果,因为生成的随机数是相等的。由于每次模拟都需要很长时间才能运行,因此等待一项工作完成后再开始另一项工作对我来说是不可行的。