2010-12-23 9 views
5

पर एकाधिक कोर असाइन करना मुझे लगता है कि जब मैं अपने भारी CPU निर्भर पायथन प्रोग्राम चलाता हूं, तो यह केवल एक कोर का उपयोग करता है। जब मैं इसे चलाता हूं तो प्रोग्राम में एकाधिक कोर असाइन करना संभव है?एक पायथन प्रोग्राम

उत्तर

12

आपको एकाधिक कोर के लिए स्पष्ट रूप से प्रोग्राम करना है। पाइथन में कई समानांतर प्रोसेसिंग समाधानों के लिए this page पर सममित मल्टीप्रोसेसिंग विकल्प देखें। Parallel Python एक अच्छा विकल्प है यदि आपको विकल्पों की तुलना करने के लिए परेशान नहीं किया जा सकता है, तो उदाहरण here पर देखें।

कुछ समस्याएं हालांकि कई कोर का लाभ नहीं उठा सकती हैं। इस बारे में सोचें कि आप तीन दोस्तों की मदद से सीढ़ियों को तेजी से कैसे चला सकते हैं। ऐसा नहीं होगा!

4

आपकी समस्या के किसी भी हिस्से समानांतर में चलाया जा सकता है, तो आप multiprocessing module

4

मुझे आश्चर्य है कि क्यों कोई CPython के जीआईएल (ग्लोबल दुभाषिया लॉक) का उल्लेख अभी तक इस पर गौर करना चाहिए। इसका मूल रूप से मतलब है कि एक पायथन दुभाषिया के अंदर कई धागे एकाधिक कोर की शक्ति का उपयोग नहीं कर सकते हैं क्योंकि थ्रेड-सुरक्षित होने के लिए कई संचालन वैश्विक लॉक द्वारा संरक्षित होते हैं। यह केवल कुछ ही अनुप्रयोगों पर लागू होता है - सीपीयू-बाध्य वाले। अधिक जानकारी के लिए, बस "जीआईएल" शब्द की खोज करें, इस पर पहले से ही कई प्रश्न हैं (उदाहरण के लिए that one)।

इस उत्तर का यह मानना ​​है कि आप वास्तव में कई धागे का उपयोग कर रहे हैं, अन्यथा आप कई कोर का उपयोग करने में सक्षम नहीं होंगे (multiprocessing एक और संभावना होगी)।

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