यह मानते हुए कि आपके पास एक से अधिक कोर हैं, और प्रत्येक आह्वान स्वतंत्र रूप से बाकी हिस्सों से चल सकता है, आप समानांतर रन के साथ काफी गति प्राप्त करेंगे।
ऐसा करने का एक अपेक्षाकृत सरल तरीका है - के -P
पैरामीटर के माध्यम से xargs
- उदाहरण के लिए, यदि आपके पास 4 कोर हैं:
echo xyz{1..5025} | \
xargs -n 1 -P 4 -I{} /path/to/transeq xyz{} xyz{}.faa -table 11
-n 1
बताता xargs
प्रत्येक मंगलाचरण के लिए सूची में से केवल एक तर्क लेने के लिए (डिफ़ॉल्ट रूप से यह बहुत से होकर गुजरेगा) , और -P 4
यह बताता है एक ही समय में 4 प्रक्रियाओं अंडे देने के लिए - जब एक मरता, एक नया पैदा की है।
IMHO, आपको इस सरल मामले के लिए GNU समानांतर स्थापित करने की आवश्यकता नहीं है - xargs
पर्याप्त है।
for file in xyz*; do ./transeq "$file" "${file}.faa" -table 11; done
:। मैं हर समय इस तरह की चीज टाइप करता हूं। और अगर आप यह सत्यापित करना चाहते हैं कि फ़ाइल नाम, आदि आपके इच्छित तरीके का विस्तार कर रहे हैं, तो बस पहली बार केecho
बाद एक अधिकार डालेंdo
, और फिर अपने शेल इतिहास में वापस जाएं और इसे दूसरी बार हटाएं।