【发布时间】:2016-05-31 15:21:39
【问题描述】:
我想在大量不同的输入文件上运行相同的程序。我可以将每个作为单独的 Slurm 提交提交,但我不想通过一次在其上倾倒 1000 个作业来淹没队列。我一直试图弄清楚如何通过首先创建分配来处理相同数量的文件,然后在该分配中使用 srun 循环遍历所有文件,为每次调用提供分配中的单个核心。问题是无论我做什么,一次只能运行一个作业步骤。我能想到的最简单的测试用例是:
#!/usr/bin/env bash
srun --exclusive --ntasks 1 -c 1 sleep 1 &
srun --exclusive --ntasks 1 -c 1 sleep 1 &
srun --exclusive --ntasks 1 -c 1 sleep 1 &
srun --exclusive --ntasks 1 -c 1 sleep 1 &
wait
我分配多少核心并不重要:
time salloc -n 1 test
time salloc -n 2 test
time salloc -n 4 test
它总是需要 4 秒。难道不能让多个作业步骤并行执行吗?
【问题讨论】:
标签: slurm