последовательный канал в сценарии оболочки - PullRequest
0 голосов
/ 23 апреля 2019

У меня довольно длинный 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 - исполняемый файл, и у меня нет исходного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...