PBSPro qsub не блокирует работу - PullRequest
0 голосов
/ 30 марта 2019

Я отправляю код, используя qsub из python3, поскольку ( здесь - полный код):

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) код, ожидающий завершения кода vasp_std, прежде чем перейти к строке sdir = optstate.index(sstate).

Но это не так, и получениеошибка, поскольку 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...