好吧,我试图在我们的超级计算机上运行作为一个工作掩盖的串行MPI工作.主提交脚本基本上看起来像这样:
#!/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
Run Code Online (Sandbox Code Playgroud)
每个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
Run Code Online (Sandbox Code Playgroud)
有时我会遇到每个sub.script的错误(作业立即死亡):
/bin/bash: -
: invalid option
Usage: /bin/bash [GNU long option] [option] ...
/bin/bash [GNU long option] [option] script-file ...
*etc.*
Run Code Online (Sandbox Code Playgroud)
最有趣的是它是一个随机错误意味着如果我在第二个(或第三个等)时间运行相同的脚本它将运行没有任何问题.有时我很幸运,有时我不是......删除-l将无济于事,因为在这种情况下模块无法加载,mpirun将无法正常工作.任何建议如何解决?
非常感谢提前!
cog*_*mos 19
您的脚本可能包含您无法看到的字符.也许是使用错误的字符集翻译进行复制/粘贴或者是DOS格式.对于后者,您可以使用tofrodos或dos2unix包进行更正.
在任何一种情况下,你都可以在'vi'或其他应用程序中提取它,这些应用程序通常会显示奇怪的字符,如^ @或^ M. 你可以尝试cat -v filename哪些可能有助于看到这些奇怪的事情.推动尝试hexdump(或高清,或od).