2012-08-23 17 views
8

कहें कि मैं bsub pwd जैसे कुछ का उपयोग करके नौकरी जमा करता हूं। अब मैं अगले नौकरी के लिए निर्भरता बनाने के लिए उस नौकरी की नौकरी आईडी प्राप्त करना चाहता हूं। क्या कोई तरीका है कि मैं नौकरी आईडी वापस करने के लिए bsub प्राप्त कर सकता हूं?एलएसएफ - सबमिट की गई नौकरी की आईडी प्राप्त करें

उत्तर

5

बस एक संदर्भ के रूप में, यह अब तक का सबसे अच्छा समाधान हो सकता है। यह इस तथ्य का लाभ उठाता है कि bsub STDOUT को आईडी वाली एक पंक्ति लिखता है।

function nk_jobid { 
    output=$($*) 
    echo $output | head -n1 | cut -d'<' -f2 | cut -d'>' -f1 
} 

उपयोग:

jobid=$(nk_jobid bsub pwd) 
+0

यह कौन सी भाषा है? –

+0

@AndreyRubshtein thats bash। – jsmedmar

+0

मैं सोच रहा हूं कि $ (nk_jonid bsub $ VARIABLE) – jsmedmar

0
$jobid = "0" 
bsub pwd > $jobid 
cat $jobid 
4

मामले में आप सी का उपयोग कर रहे ++, आप कार्य सबमिट करने lsblib, LSF सी एपीआई का उपयोग कर सकते हैं। इनपुट और आउटपुट structs हैं। विशेष रूप से, आउटपुट स्ट्रक्चर में जॉब आईडी होती है।

#include <lsf/lsbatch.h>  
LS_LONG_INT lsb_submit (struct submit *jobSubReq, struct submitReply *jobSubReply) 
7

निल्स और एंड्री के पास क्रमशः खोल और सी/सी ++ वातावरण में इस विशिष्ट प्रश्न का उत्तर है। इमारत निर्भरता के प्रयोजनों के लिए, आप भी अपनी नौकरी नाम कर सकते हैं साथ -J तो नौकरी के नाम के आधार निर्भरता का निर्माण:

bsub -J "job1" <cmd1> 
bsub -J "job2" <cmd2> 
bsub -w "done(job1) && done(job2)" <cmd> 

वहाँ थोड़ा अधिक जानकारी here है।

यह भी काम सरणियों के साथ काम करता है:

bsub -J "ArrayA[1-10]" <cmd1> 
bsub -J "ArrayB[1-10]" <cmd2> 
bsub -w "done(ArrayA[3]) && done(ArrayB[5])" <cmd> 

तुम भी तत्व-दर-तत्व निर्भरता कर सकते हैं। निम्नलिखित काम के मैं वें तत्व केवल चलेंगे जब ArrayB में इसी तत्व DONE स्थिति तक पहुँच जाता है:

bsub -w "done(ArrayB[*])" -J "ArrayC[1-10]" <cmd3> 

आप विभिन्न चीजों के बारे में अधिक जानकारी आप -where में निर्दिष्ट कर सकते हैं पा सकते हैं।

+0

(+1) के अंदर एक चर को कैसे पास किया जाए, अच्छी बात यह है कि आपने प्रश्न का वास्तविक इरादा देखा है। –

+1

यह अच्छा है लेकिन यह नौकरी के सरणी के साथ काम नहीं करता है ... – jsmedmar

+0

@jsmedmar वास्तव में, यह करता है। मैं जवाब में कुछ विवरण जोड़ूंगा। – Squirrel

0

यदि आप जमा करने के बाद जॉबआईड देखना चाहते हैं, तो अधिकांश समय मैं दौड़ने वाली नौकरियों और विवरणों को देखने के लिए बसिस्ट या बिस्ट-एल का उपयोग करूंगा।

$ bhist 
Summary of time in seconds spent in various states: 
JOBID USER JOB_NAME PEND PSUSP RUN  USUSP SSUSP UNKWN TOTAL 
8664 F14r3 sample  2  0 187954 0  0  0  187956 
संबंधित मुद्दे