【发布时间】:2019-05-15 16:13:27
【问题描述】:
我使用 qsub SubmitJob.sh 将作业提交到集群。它运作良好,但需要很长时间才能完成。在 SubmitJob.sh 内部有一个按顺序运行的 for 循环。我想将我的 for 循环转换为并行作业提交,这样他们每个人都提交一个作业(SubmitJob.sh)。
#!/bin/bash
#$ -S /bin/bash
#$ -V -cwd
#$ -e ./error.$JOB_NAME.$JOB_ID
#$ -o ./outpt.$JOB_NAME.$JOB_ID
#$ -l h_vmem=256g
##$ -q long
##$ -pe smp 4
#$ -l h_rt=24:00:00
cd /mydirectroy/
for ID in $(cat FilID.txt) ; do
Do_Somthing -n $ID -o /OutputDirectory/$ID
done
【问题讨论】:
-
高级思想,将
FiLID.txt的内容分成4部分,将for loop放入一个函数,该函数将使用&在后台运行这些东西。将文件的 4 个部分输入同一个函数 4 次。最后输入wait以确保一切都已完成。这将是异步的。