簡體   English   中英

向 slurm 數組添加異常

[英]Add exception to slurm array

我有以下slurm腳本:

#!/bin/bash

#SBATCH -A XXX-CPU
#SBATCH --mail-type=BEGIN,END,FAIL
#SBATCH -p cclake
#SBATCH -D analyses/
#SBATCH -c 12
#SBATCH -t 01:00:00
#SBATCH --mem=10G
#SBATCH -J splitBAM
#SBATCH -a 1-12
#SBATCH -o analyses/splitBAM_%a.log

sed -n ${SLURM_ARRAY_TASK_ID}p analyses/slurm/commands1.csv | bash
sed -n ${SLURM_ARRAY_TASK_ID}p analyses/slurm/commands2.csv | bash
sed -n ${SLURM_ARRAY_TASK_ID}p analyses/slurm/commands3.csv | bash

通常我會使用單個 bash 命令運行另一個slurm腳本,以使用選項#SBATCH --dependency=afterok:job_id(first job)刪除一些文件。
我想要做的是將它包含在上面的腳本中,但是當我添加行rm file1 file2 file3時,它顯然會為數組中的每個作業執行此操作,但我只想在所有作業之后運行一次命令陣列已經完成。
有沒有辦法標記此命令,使其不屬於數組? 這將允許我用一個腳本而不是兩個來完成所有的事情。

沒有特定的 Slurm 語法可以做到這一點,但您可以在腳本末尾添加一個if語句,查找該數組中的任何其他作業。

if [[ $(squeue  -h -j $SLURM_JOB_ID  | wc -l) == 1 ]] ; then
rm file1 file2 file3
fi

如果該作業數組中沒有其他作業在運行,則刪除這些文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM