2013-06-16 8 views
8

Nun, ich versuche serielle MPI-Jobs als einen Auftrag auf unserem Supercomputer maskiert auszuführen. Das Haupt Vorlage Skript sieht im Grunde wie folgt aus:"/ bin/bash -l" Ungültige Option

#!/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 

Jeder sub.script wie folgt aussieht:

#!/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 

Und manchmal habe ich für jeden sub.script ein Fehler auftritt (Jobs sterben sofort):

/bin/bash: - 
: invalid option 
Usage: /bin/bash [GNU long option] [option] ... 
     /bin/bash [GNU long option] [option] script-file ... 
*etc.* 

Die interessanteste Sache ist, dass es ein zufälliger Fehler ist, was bedeutet, wenn ich das gleiche Skript für die zweite (oder 3. usw.) Zeit läuft es ohne Probleme läuft. Manchmal habe ich Glück, manchmal bin ich nicht ... Entfernen -l wird nicht helfen, weil in diesem Fall Module nicht geladen werden können und mpirun wird nicht funktionieren. Irgendwelche Vorschläge, wie man es repariert?

Vielen Dank im Voraus!

Antwort

13

Sie Skript hat wahrscheinlich Zeichen darin, die Sie nicht sehen können. Vielleicht wurde es mit der falschen Zeichensatz-Übersetzung kopiert/eingefügt oder ist im DOS-Format. Im letzteren Fall können Sie das Paket tofrodos oder dos2unix verwenden, um es zu korrigieren.

In jedem Fall könnten Sie es in 'vi' oder einer anderen Anwendung hochziehen, die normalerweise merkwürdige Zeichen wie^@ oder^M zeigt. Sie könnten versuchen cat -v filename, die helfen könnte, diese Kuriositäten zu sehen. Push kommt zu versuchen, hexdump (oder hd oder od).

+1

Oh, vielen Dank! Sie waren tatsächlich im DOS-Format. Aber es ist seltsam für mich, dass sie manchmal arbeiteten, manchmal nicht. Was auch immer .. – Eofet

+0

'apt-get update' ' apt-get installieren tofrodos' 'fromdos file.sh' oder ' todos archive.sh' –

Verwandte Themen