for 循环的并行作业提交

for 循环的并行作业提交

我编写了for循环并将其并行化并限制了一次&运行作业的阈值。3下面是我的脚本。我通过命令来保留32 cores256 GB记忆BSUB。 I在循环sample_pipe内运行需要内核和内存。for32256 GB

我在某些工作中遇到内存故障错误。我认为我只保留32核心并256 GB尝试3一次运行作业,这可能会导致某些作业出现内存故障错误。

我的问题是如何并行化,以便所有3作业都使用相同数量的内核和内存。

我使用命令提交bsub < example.sh

#!/bin/bash
#BSUB -J cnt_job            # LSF job name
#BSUB -o cnt_job.%J.out     # Name of the job output file
#BSUB -e cnt_job.%J.error   # Name of the job error file
#BSUB -n 32                 # 32 cores
#BSUB -M 262144             # 256 GB
#BSUB -R "span[hosts=1] rusage [mem=262144]"

n=0
maxjobs=3
for sample in $main ; do
     for run in $nested ; do
             sample_pipe count --id="$run_name" \
             --localcores=32 \
             --localmem=256 &
     done
     cd ..
     # limit jobs
    if (( $(($((++n)) % $maxjobs)) == 0 )) ; then
        wait # wait until all have finished
        echo $n wait
    fi
done

相关内容