在HPC slurm中并行化bash脚本



我有一个这样的文件:

bash scripts/1-Call_HC.sh Uni_Mont_1_3 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_1_3.e 2> logs/HC_Uni_Mont_1_3.o
bash scripts/1-Call_HC.sh Uni_Mont_27_1 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_27_1.e 2> logs/HC_Uni_Mont_27_1.o
bash scripts/1-Call_HC.sh Uni_Mont_27_2 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_27_2.e 2> logs/HC_Uni_Mont_27_2.o
bash scripts/1-Call_HC.sh Uni_Mont_29_1 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_29_1.e 2> logs/HC_Uni_Mont_29_1.o
bash scripts/1-Call_HC.sh Uni_Mont_29_3 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_29_3.e 2> logs/HC_Uni_Mont_29_3.o
bash scripts/1-Call_HC.sh Uni_Mont_30_1 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_30_1.e 2> logs/HC_Uni_Mont_30_1.o
bash scripts/1-Call_HC.sh Uni_Mont_30_2 /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_30_2.e 2> logs/HC_Uni_Mont_30_2.o

在普通机器中,我将使用nohup parallel -j 3 < file.sh来并行执行。我想在使用Slurm的HPC服务器上使用服务器的队列执行同样的操作。我该怎么做?非常感谢,Denise

作业数组应该在这里完成任务。

编写这样的提交脚本:

#! /bin/bash
#SBATCH --ntask=1
#SBATCH --cpus-per-task=...
#SBATCH --mem-per-cpu=...
#SBATCH --array=0-6
OPTIONS=(1_3 27_1 27_2 29_1 29_3 30_1 30_2)
CURROPT=${OPTIONS[$SLURM_ARRAY_TASK_ID]}
bash scripts/1-Call_HC.sh Uni_Mont_$CURROPT /home/db/fagiolo/config_fagiolo_Pvulgaris.sh > logs/HC_Uni_Mont_$CURROPT.e 2> logs/HC_Uni_Mont_$CURROPT.o

并与CCD_ 2一起提交。这将创建6个并行安排的独立作业。

最新更新