我希望能在多个不同的输入文件上运行相同的程序。 我可以将每个文件作为单独的 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秒钟的时间。有没有可能让多个作业步骤并行执行?
#SBATCH --mem=0 export DAEMON_MEM=${SLURM_MEM_PER_CPU:=4096} export SPARK_MEM=$((${DAEMON_MEM}*(${SPARK_WORKER_CORES} -1)))
- Tolga