2010-09-23 10 views
7

मैं अपनी पर्ल स्क्रिप्ट में LSF commandbsub के लिए जॉब सीमाएं प्रोग्राम करना चाहता हूं जो हुड के तहत एलएसएफ नौकरियों को लॉन्च करता है। अगर मेरे पास 2000 नौकरियों की तरह कुछ है, तो मैं किसी भी समय अधिकतम 20 नौकरियों में भाग लेना चाहता हूं। मैं स्क्रिप्ट है कि 20 नौकरियों का शुभारंभ और फिर उन सभी Parallel::ForkManager और Forks::Super (जिनमें से मैं लेखक हूँ) सहित अन्य 20पर्ल में एक ही समय में एक बड़ी कतार से मैं कई नौकरियां कैसे चला सकता हूं?

उत्तर

11

कई मौजूदा पर्ल मॉड्यूल, शुरू करने से पहले समाप्त होने की प्रतीक्षा यह सुविधा प्रदान करते देखा है।

एक LSF::JobManager मॉड्यूल भी है जिसके बारे में मुझे कुछ और पता नहीं है।


समानांतर :: ForkManager कंकाल

use Parallel::ForkManager; 
$pm = new Parallel::ForkManager(20); 
foreach $job (@jobsToRun) { 
    $pm->start and next; 
    system("bsub -K $job"); # bsub -K job to wait until job finishes, right? 
    $pm->finish; 
} 


और Forks :: सुपर

use Forks::Super MAX_PROC => 20; 
foreach $job (@jobsToRun) { 
    fork { cmd => "bsub -K $job" }; 
} 


में
+0

यह बहुत अच्छा है! बहुत धन्यवाद – Gordon

+0

एलएसएफ का उपयोग करने के इन सभी वर्षों के बाद, मैंने अभी 'bsub-k' के बारे में सीखा है। धन्यवाद! –

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

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