Shell脚本中的顺序管道

时间:2019-04-23 13:59:36

标签: shell pipe mpi

我有一个相当长的pipe,使用mpirun执行作业,然后复制文件。现在,cp发生在mpirun完成之前。我认为该错误是由于某些线程可能已完成,并且被下一个作业覆盖(正确复制了*.opt3,而不是*.opt1*.opt2)。如何让cp等到工作真的完成?

mpirun -np $NPROCS --machinefile $PBS_NODEFILE vasp_std; cp INCAR INCAR.opt1; cp CONTCAR POSCAR.opt1; cp OUTCAR OUTCAR.opt1; mv CONTCAR POSCAR; sed -i 's/EDIFF = 1.00e-04/EDIFF = 1.00e-05/g' INCAR; mpirun -np $NPROCS --machinefile $PBS_NODEFILE vasp_std; cp INCAR INCAR.opt2; cp CONTCAR POSCAR.opt2; cp OUTCAR OUTCAR.opt2; mv CONTCAR POSCAR; sed -i 's/ISIF = 3/ISIF = 2/g' INCAR;mpirun -np $NPROCS --machinefile $PBS_NODEFILE vasp_std; cp INCAR INCAR.opt3; cp CONTCAR POSCAR.opt3; cp OUTCAR OUTCAR.opt3

vasp_std是可执行文件,我没有源代码。

0 个答案:

没有答案
相关问题