我已将作业提交给具有LSF平台的多核群集。它看起来像最后的代码。两个可执行文件exec1和exec2同时启动。在我的意图中,它们由列逗号分隔,第二个应在第一个完成后开始。当然,这导致了无法正确终止的作业的几个问题。现在我已经发现了这种行为,我正在为每个可执行文件编写单独的作业提交文件。任何人都可以解释为什么这些可执行文件同时运行吗?
#!/bin/bash -l
#
# Batch script for bash users
#
#BSUB -L /bin/bash
#BSUB -n 10
#BSUB -J jobname
#BSUB -oo output.log
#BSUB -eo error.log
#BSUB -q queue
#BSUB -P project
#BSUB -R "span[hosts=1]"
#BSUB -W 4:0
source /etc/profile.d/modules.sh
module purge
module load intel_comp/c4/2013.0.028
module load hdf5/1.8.9
module load platform_mpi/8.2.1
export OMP_NUM_THREADS=1
export MP_TASK_AFFINITY=core:$OMP_NUM_THREADS
OPT="-aff=automatic:latency"
mpirun $OPT exec1; mpirun $OPT exec2
答案 0 :(得分:1)
我假设exec1和exec2都是MPI应用程序?
理论上它应该可以工作,但是LSF可能正在做一些奇怪的事情,mpirun
exec1
在exec1实际退出之前就会退出。你可以尝试:
mpirun $OPT exec1 && mpirun $OPT exec2
但是,从这样的相同脚本运行两个MPI作业可能不是一个好主意,因为例如MPI环境变量设置可能会引入冲突。你应该做的是使用作业链,以便exec2在exec1之后运行,如this。