पर md5sum चेकसम parallelize की सुविधा देता है कहते हैं, मैं एक 64-कोर सर्वर है, और मैं /mnt/data
में सभी फाइलों की md5sum
गणना, और एक पाठ फ़ाइल में परिणाम स्टोर करने के लिए की जरूरत है:बैश: कई फाइलों
find /mnt/data -type f -exec md5sum {} \; > md5.txt
उपरोक्त आदेश के साथ समस्या यह है कि किसी भी समय केवल एक प्रक्रिया चलती है। मैं अपने 64-कोर की पूरी शक्ति का उपयोग करना चाहता हूं। आदर्श रूप से, मैं यह सुनिश्चित करना चाहता हूं कि किसी भी समय, 64 समांतर md5
प्रक्रियाएं चल रही हैं (लेकिन 64 से अधिक नहीं)।
भी। मुझे एक प्रक्रिया में सभी प्रक्रियाओं से आउटपुट की आवश्यकता होगी।
नोट: मैं समानांतर में एक फ़ाइल के md5sum
की गणना करने का कोई तरीका नहीं ढूंढ रहा हूं। मैं समानांतर में 64 विभिन्न फ़ाइलों के 64 एमडी 5 एसएमएस की गणना करने का एक तरीका ढूंढ रहा हूं, जब तक find
से कोई भी फाइल आ रही है।
मुझे यकीन नहीं है कि यह अच्छा होगा। मैं कल्पना कर सकता हूं कि सामान आईओ बहुत जल्द हो गया है और 64 प्रक्रियाओं का उपयोग करने से आईओओ धीमा हो जाएगा जबकि कई कोर निष्क्रिय हो जाएंगे। – glglgl
लेकिन दूसरी तरफ, आधुनिक फाइल सिस्टम रैम में बहुत कैश किए जाते हैं, इसलिए एक समय में एक से अधिक का उपयोग करना समझ में आता है। – Alfe
@Alfe: कर्नेल को अभी भी * RAM * डेटा प्राप्त करना होगा, इसलिए बाधा बनी हुई है। –