2013-06-16 5 views
8

ठीक है, मैं अपने सुपरकंप्यूटर पर एक नौकरी के रूप में मुखौटा धारावाहिक एमपीआई नौकरियों को चलाने की कोशिश कर रहा हूं। मुख्य प्रस्तुत करने स्क्रिप्ट मूल रूप से इस तरह दिखता है:"/ bin/bash -l" अमान्य विकल्प

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

सबसे दिलचस्प बात यह है कि यह एक यादृच्छिक त्रुटि है जिसका अर्थ है कि यदि मैं दूसरे (या तीसरे आदि) समय के लिए एक ही स्क्रिप्ट चलाता हूं तो यह बिना किसी समस्या के चलाएगा। कभी-कभी मैं भाग्यशाली हूं, कभी-कभी मैं नहीं हूं ... हटाने-एल मदद नहीं करेगा क्योंकि उस मामले में मॉड्यूल लोड नहीं किए जा सकते हैं और mpirun काम नहीं करेगा। कोई सुझाव यह कैसे ठीक करें?

बहुत पहले से धन्यवाद!

उत्तर

13

आपकी स्क्रिप्ट में शायद इसमें वर्ण हैं जो आप नहीं देख सकते हैं। शायद यह गलत वर्ण सेट अनुवाद का उपयोग करके प्रतिलिपि/चिपकाया गया था या डॉस प्रारूप में है। उत्तरार्द्ध के मामले में आप सही करने के लिए tofrodos या dos2unix पैकेज का उपयोग कर सकते हैं।

किसी भी मामले में आप इसे 'vi' या अन्य एप्लिकेशन में खींच सकते हैं जो आम तौर पर^@ या^एम जैसे अजीब पात्र दिखाएगा। आप cat -v filename आज़मा सकते हैं जो इन विषमताओं को देखने में मदद कर सकता है। पुश हेक्सडम्प (या एचडी, या ओडी) कोशिश करने के लिए आता है।

+1

ओह, बहुत बहुत धन्यवाद! वे वास्तव में डॉस प्रारूप में थे। लेकिन यह मेरे लिए अजीब बात है कि कभी-कभी उन्होंने काम किया, कभी-कभी उन्होंने नहीं किया। जो कुछ भी .. – Eofet

+0

'apt-get update' ' apt-get install tofrodos ' ' fromdos file.sh' या 'todos archive.sh' –

संबंधित मुद्दे