2013-04-05 5 views
6

जब एक पीबीएस कतार व्यवस्था करने के लिए एक नौकरी स्क्रिप्ट प्रस्तुत करने, एक walltime स्वचालित रूप से या जैसे उपयोगकर्ता द्वारा निर्दिष्ट किया जाता हैएक पीबीएस काम लिपि में walltime जाओ

#PBS -l walltime=1:00:00 

प्रश्न यह है कि अगर इस समय नौकरी स्क्रिप्ट से पहुंचा जा सकता है। क्या इस दीवार के समय को पाने के लिए कोई पर्यावरण चर या कुछ अन्य तरीका है।

अंत में, नौकरी स्क्रिप्ट समय-समय पर तय करना चाहिए कि अगर वहाँ पर्याप्त समय तो यह है कि काम कतार प्रणाली द्वारा मारे नहीं करता कुछ और काम करने के लिए छोड़ दिया है।

अद्यतन:

उपयोगकर्ता संसाधनों की सूची में walltime निर्दिष्ट किया है कम से कम अगर, मैं निम्नलिखित तरीके को प्रस्ताव कर सकते हैं (बैश के लिए काम)

read _ _ PBS_WALLTIME <<< `qstat -f $PBS_JOBID | grep "Resource_List.walltime"` 

जहाँ से walltime पार्स qstat आउटपुट और PBS_WALLTIME चर में मान रखता है। तदनुसार, आदेश

echo $PBS_WALLTIME 

तरह

1:00:00 
+0

पीबीएस 4.2.8 (और संभवतः अन्य संस्करण) में, $ PBS_WALLTIME चर भंडार सेकंड की संख्या में दीवार समय है, तो 'echo' उत्पादन होगा' 3600' के बजाय '1: 00: 00'। – MasterHD

उत्तर

5

यह वातावरण चर $ PBS_WALLTIME में संग्रहित है कुछ निकलेगा।

बेशक

, कि टोक़ के लिए है, मुझे यकीन है कि जो पीबीएस कतार सिस्टम प्रयोग कर रहे नहीं हूँ।

+0

वह, निश्चित रूप से, क्लस्टर पर निर्भर करता है जिसका मैं उपयोग कर रहा हूं। एक टोरक्व और अन्य पीबीएस प्रो चलाता है। दुर्भाग्यवश, टोरक्व क्लस्टर पर भी $ PBS_WALLTIME चर परिभाषित नहीं किया गया है। तो यह मानक नहीं हो सकता है। – dastrobu

+0

टोरक्व का क्या संस्करण है? – dbeer

+0

मुझे यकीन नहीं है, अगर मैं उस प्रश्न का सही उत्तर दे सकता हूं। मैं संस्करण जानकारी कैसे प्राप्त करूं? संभवत: आप पीबीएस संस्करण है जो 2.1.10 के लिए निर्धारित है के लिए पूछ रहे हैं ('qmgr -c" प्रिंट सर्वर "' के उत्पादन से लिया गया)। – dastrobu

1

मैं इस का जवाब के लिए देख रहा था और टिप्पणियों से ऊपर मुझे एक विचार बहुत अच्छी तरह से काम करने के लिए लगता है कि दे दी है। आप qstat का उपयोग करें और sed साथ इसे से प्रासंगिक जानकारी प्राप्त कर सकते हैं:

qstat -f $PBS_JOBID | sed -rn 's/.*Resource_List.walltime = (.*)/\1/p' 

अपने पीबीएस लिपि में इस लाना मूल्य प्रिंट आउट हो जाएगा और आप एक चर में इस के उत्पादन में स्टोर करने के लिए मानक बैश उपयोग कर सकते हैं:

WALLTIME=$(qstat -f $PBS_JOBID | sed -rn 's/.*Resource_List.walltime = (.*)/\1/p') 

आप अन्य जानकारी प्राप्त करने के लिए इसका उपयोग भी कर सकते हैं जो पीबीएस_ * पर्यावरण चर से उपलब्ध नहीं है जैसे नौकरी के लिए आवंटित स्मृति की मात्रा और शायद कुछ अन्य सामान।

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