2015-02-09 64 views
0

我正在嘗試使用slurm 14.03.0版在我們的HPC上對齊168個序列文件。我只允許一次最多使用9個計算節點,以便爲其他人保留一些節點。以指定數量的節點啓動slurm陣列作業

我改變了文件名,所以我可以在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/ 

謝謝! 馬特

回答

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/