0

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

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

我似乎不知道如何告诉它运行所有 168 个文件,一次 9 个。我可以让它运行所有 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/

谢谢!马特

4

1 回答 1

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/
于 2015-02-11T14:55:54.097 回答