Ну, я пытаюсь запустить серийные задания MPI, замаскированные как одно задание на нашем суперкомпьютере. Основное представление script в основном выглядит следующим образом:
#!/bin/bash -l
#PBS -l nodes=4:ppn=8,walltime=24:00:00
cat $PBS_NODEFILE | uniq | tr '\\012' ' ' > tmp-$PBS_JOBID
read -a NODE < tmp-$PBS_JOBID
rm tmp-$PBS_JOBID
inode=-1
ijob=0
for ((K=1;K<=8;K++))
do
[ $((ijob++ % 2)) -eq 0 ] && ((inode++))
ssh ${NODE[inode]} _somepath_/RUN$K/sub.script &
done
wait
exit 0
Каждый sub.script выглядит так:
#!/bin/bash -l
#PBS -l walltime=24:00:00,nodes=1:ppn=4
module load intel
module load ompi
export FORT_BUFFERED=1
*run executable*
wait
exit 0
И иногда я сталкиваюсь с ошибкой для каждого sub.script(задания сразу умирают):
/bin/bash: -
: invalid option
Usage: /bin/bash [GNU long option] [option] ...
/bin/bash [GNU long option] [option] script-file ...
*etc.*
Самое интересное, что это случайная ошибка, означающая, что если я запустил тот же script для второго (или третьего и т.д.) времени, он будет работать без каких-либо проблем. Иногда мне повезло, иногда я не... Удаление -l не поможет, потому что в этом случае модули не могут быть загружены, а mpirun не будет работать. Любые предложения по его исправлению?
Большое спасибо!