PBSPro qsub不会阻止工作

时间:2019-03-30 04:47:38

标签: python-3.x subprocess pbs qsub

我正在使用来自python3的qsub提交代码,{here是完整代码):

scfc = ["qsub", "-Wblock=true", "script.sh"]

optstate = ["opt1", "opt2", "opt3"]

          for sstate in optstate:
            subprocess.call(scfc)
            sdir = optstate.index(sstate)
            print(sstate)
            genincar2(sdir)
            shutil.copy2("INCAR", "INCAR"+"."+str(sstate))
            shutil.copy2("CONTAR", "CONTCAR"+"."+str(sstate))

和script.sh是:

#!/bin/bash
#PBS -S /bin/bash
#PBS -N Test
#PBS -l select=2:ncpus=24:mpiprocs=24
#PBS -q workq
#PBS -joe
#PBS -V
export I_MPI_FABRICS=shm:tmi
export I_MPI_PROVIDER=psm2
export I_MPI_FALLBACK=0
export KMP_AFFINITY=verbose,scatter
module load intel/2018
module load vasp/5.4.4
cd $PBS_O_WORKDIR
cat $PBS_NODEFILE > pbs_nodes
echo Working directory is $PBS_O_WORKDIR
NPROCS=`wc -l < $PBS_NODEFILE`
NNODES=`uniq $PBS_NODEFILE | wc -l`
mpirun -np $NPROCS --machinefile $PBS_NODEFILE vasp_std

我期望-Wblock=true(还有subprocess.call)的代码在进入sdir = optstate.index(sstate)行之前要等待完成vasp_std代码。

事实并非如此,并且由于CONTCAR尚未产生错误。

如果我直接从命令行提交qsub,则阻止工作正常。

在python中,我也尝试过check_call,但运程没有变化。

有人可以帮忙吗?

我正在使用的系统具有:

pbsnodes --version
pbs_version = 18.1.3

python3 --version
Python 3.4.9

uname -a
Linux master1.clusternet 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

0 个答案:

没有答案