एक ही मशीन के कई कोर का उपयोग करने के लिए पृष्ठभूमि में कई काम करना एक अच्छा तरीका है। parallel
हालाँकि, आपको अपने नेटवर्क के कई सर्वरों पर नौकरी फैलाने की अनुमति देता है। से man parallel
:
जीएनयू समानांतर एक या अधिक कंप्यूटरों का उपयोग करके समानांतर में नौकरियों को निष्पादित करने के लिए एक शेल उपकरण है । विशिष्ट इनपुट फ़ाइलों की एक सूची है, मेजबानों की एक सूची, उपयोगकर्ताओं की एक सूची, URL की सूची या तालिकाओं की एक सूची है।
यहां तक कि जब एक ही कंप्यूटर पर चल रहा है, parallel
तो आपको अपनी नौकरी को समानांतर रखने के तरीके पर अधिक नियंत्रण देता है। इस उदाहरण को man
पृष्ठ से लें :
To convert *.wav to *.mp3 using LAME running one process per CPU core
run:
parallel lame {} -o {.}.mp3 ::: *.wav
ठीक है, आप भी ऐसा ही कर सकते हैं
for i in *wav; do lame "$i" -o "${i%.wav}.mp3" & done
हालांकि, यह अधिक लंबा और अधिक बोझिल है और, इससे भी महत्वपूर्ण बात यह है कि जितनी भी .wav
फाइलें होंगी, उतने ही नौकरियों में लॉन्च होंगी । यदि आप इसे कुछ हज़ार फाइलों पर चलाते हैं, तो इसके घुटनों पर एक सामान्य लैपटॉप लाने की संभावना है। parallel
दूसरी ओर, सीपीयू कोर के अनुसार एक नौकरी शुरू करेगा और सब कुछ अच्छा और सुव्यवस्थित रखेगा।
मूल रूप से, parallel
आपको ठीक धुन करने की क्षमता प्रदान करता है कि आपकी नौकरियां कैसे चलती हैं और उन्हें कितने उपलब्ध संसाधनों का उपयोग करना चाहिए। यदि आप वास्तव में इस उपकरण की शक्ति को देखना चाहते हैं, तो इसके मैनुअल के माध्यम से या, बहुत कम से कम, इसके उदाहरण प्रस्तुत करते हैं।
समानांतर की तुलना में सरल पृष्ठभूमि वास्तव में परिष्कार के स्तर के पास कहीं नहीं है। जैसा कि इस बात से parallel
भिन्न है कि xargs
, GNU भीड़ यहाँ एक अच्छा ब्रेकडाउन देती है । कुछ और अधिक मुख्य बिंदु हैं:
- xargs विशेष पात्रों (जैसे अंतरिक्ष, 'और ") के साथ बुरी तरह से व्यवहार करता है।
- xargs दी गई संख्या को समानांतर रूप से चला सकता है, लेकिन समानांतर में नंबर-ऑफ-सीपीयू-कोर जॉब्स चलाने के लिए कोई समर्थन नहीं है।
- xargs के पास आउटपुट को समूहीकृत करने के लिए कोई समर्थन नहीं है, इसलिए आउटपुट एक साथ चल सकता है, जैसे कि लाइन का पहला आधा भाग एक प्रक्रिया से है और लाइन का अंतिम आधा भाग दूसरी प्रक्रिया से है।
- आउटपुट के क्रम को बनाए रखने के लिए xargs का कोई समर्थन नहीं है, इसलिए यदि xargs का उपयोग करके समानांतर में कार्य चलाना दूसरी नौकरी का आउटपुट तब तक स्थगित नहीं किया जा सकता है जब तक कि पहली नौकरी नहीं की जाती है।
- दूरस्थ कंप्यूटर पर जॉब चलाने के लिए xargs का कोई समर्थन नहीं है।
- xargs के पास संदर्भ प्रतिस्थापन के लिए कोई समर्थन नहीं है, इसलिए आपको तर्क बनाने होंगे।
parallel
वाक्य रचना से नफरत है , फिर भी याद रखने के लिए कीबोर्ड-फैरोल का एक और नया ब्रांड। लेकिन मुझे लगता है कि कोर / नौकरियों में ऑटो संतुलन इसके लायक है ...?