使用指定数量的节点启动slurm数组作业

时间:2015-02-09 22:38:44

标签: hpc slurm sbatch

我正在尝试使用slurm版本14.03.0在我们的HPC上对齐168个序列文件。我只允许一次最多使用9个计算节点,以便为其他人保留一些节点。

我更改了文件名,因此我可以在sbatch中使用数组函数。序列文件如下所示: Sequence1.fastq.gz,Sequence2.fastq.gz,... Sequence168.fastq.gz

我似乎无法弄清楚如何告诉它一次运行所有168个文件。我可以让它运行所有168个文件,但它使用所有可用的节点,这将使我遇到麻烦,因为这将运行几天。

我已经找到了我应该能够使用“--array = 1-168%9”来指定一次运行的数量,但这是在比我们的群集更新的slurm版本中实现的。有没有其他方法来获得此功能?我一直在尝试着把头发拉了几个星期。

我试图运行它的方式是:

#!/bin/bash
#SBATCH --job-name=McSeqs
#SBATCH --nodes=1
#SBATCH --array=1-168
srun alignmentProgramHere Sequence${SLURM_ARRAY_TASK_ID}.fastq.gz -o outputdirectory/

谢谢! 马特

1 个答案:

答案 0 :(得分:0)

所以我想出了一种让我觉得有效的方法。诀窍是sbatch选项全部传递给每个数组实例。我使用--exclude选项告诉每个数组实例不要使用一半的计算节点。所以现在我一次运行了9个文件,让计算节点对其他人开放。

#!/bin/bash
#SBATCH --job-name=McSeqs
#SBATCH --nodes=1
#SBATCH --array=1-168
#SBATCH --exclude=cluster[10-20]

srun alignmentProgramHere Sequence${SLURM_ARRAY_TASK_ID}.fastq.gz -o outputdirectory/