为每个进程使用不同的脚本参数运行mpiexec

时间:2018-09-14 04:08:57

标签: bash parallel-processing mpi

道歉,但我无法在Google上找到解决方案。我想通过MPI使用并行化为列表中的每个染色体(在下面的代码中称为CHROMS)分别运行一个脚本。我正在调用的脚本(some_script.sh)具有一个我要为每个调用更改的染色体参数,以及另一个我想在所有调用中保持不变的参数。基本上,我想要下面的代码做什么,但是要使用mpiexec而不是后台进程。

#Run the pipeline for each chromosome separately.
#run_chromosome_iteration.sh
SOME_OTHER_PARAM="blah blah"
for c in $CHROMS;
    do 
        $SCRIPTS/some_script.sh $c $SOME_OTHER_PARAM &
    done

编辑:我的项目实际上有两个并行化级别:我使用100个作业运行我的模型100次,并且我想在一组染色体上并行化每个作业(在这种情况下为11个)。请参见下面的代码:

#Submit all jobs.
for i in {1..100};
    do 
        qsub -v ITER=${i} run_chromosome_iteration.sh
    done 

因此,我可以在较低的并行化级别使用作业数组,但是它将导致1100个独立的作业,并且与在并行进程之间共享内存相比,内存效率较低。我也不能简单地使用后台进程,因为要使用的内存量需要集群中有两个计算节点。这就是为什么我要使用MPI。

0 个答案:

没有答案