मल्टीप्रोसेसिंग हे पायथन प्रोग्रामिंगमधील एक लोकप्रिय तंत्र आहे जे तुम्हाला एकाच वेळी अनेक प्रक्रिया चालवण्यास अनुमती देते, ज्यामुळे बर्याचदा कार्यक्षमता सुधारते आणि सिस्टम संसाधनांचा अधिक कार्यक्षम वापर होतो. या लेखात वापरण्यात आले आहे मल्टीप्रोसेसिंग पायथनमधील लायब्ररी, विशेषत: वर लक्ष केंद्रित करते नकाशा कार्य नकाशा फंक्शन तुम्हाला प्रत्येक आयटमवर पुनरावृत्ती करण्यायोग्य फंक्शन लागू करू देते, जसे की सूची, आणि परिणामांसह नवीन सूची परत करू देते. मल्टीप्रोसेसिंगचा फायदा घेऊन, आम्ही अधिक कार्यक्षमता आणि स्केलेबिलिटीसाठी या प्रक्रियेला समांतर करू शकतो.
या लेखात, आम्ही समस्येचे अन्वेषण करू ज्यासाठी नकाशा फंक्शनसह मल्टीप्रोसेसिंग हा एक उत्कृष्ट उपाय असू शकतो, संबंधित लायब्ररी आणि फंक्शन्सची चर्चा करू, कोडचे चरण-दर-चरण स्पष्टीकरण देऊ आणि पाठीच्या कण्यावर आधारित संबंधित विषयांचा शोध घेऊ. मल्टीप्रोसेसिंग आणि नकाशा कार्य.
मल्टीप्रोसेसिंग नकाशा: समस्या आणि समाधान
आम्ही ज्या समस्येचे निराकरण करण्याचे उद्दिष्ट ठेवतो तो म्हणजे सूची, ट्यूपल किंवा पुनरावृत्तीला समर्थन देणारी कोणतीही वस्तू यासारख्या मोठ्या पुनरावृत्तीमध्ये प्रत्येक आयटमवर फंक्शन लागू करण्याची कार्यक्षमता आणि कार्यक्षमता सुधारणे. अशा कार्यांना सामोरे जाताना, अंगभूत नकाशा फंक्शन किंवा सूची आकलन वापरणे खूपच मंद आणि अकार्यक्षम असू शकते.
पायथनमधील मल्टीप्रोसेसिंग लायब्ररी वापरणे हा उपाय आहे, विशेषतः, पूल वर्ग आणि त्याचे नकाशा पद्धत वापरून मल्टीप्रोसेसिंग Pool.map() फंक्शन, आम्ही आमच्या फंक्शनची अंमलबजावणी अनेक प्रक्रियांमध्ये वितरित करू शकतो.
संहितेचे चरण-दर-चरण स्पष्टीकरण
चला कोड खंडित करू आणि मल्टीप्रोसेसिंग मॅप फंक्शन प्रभावीपणे कसे वापरायचे ते स्पष्ट करू:
import multiprocessing import time def square(n): time.sleep(0.5) return n * n # Create the list of numbers numbers = list(range(10)) # Initialize the multiprocessing Pool pool = multiprocessing.Pool() # Use the map function with multiple processes squared_numbers = pool.map(square, numbers) print(squared_numbers)
- प्रथम, आयात करा मल्टीप्रोसेसिंग मॉड्यूल, ज्यामध्ये Python मध्ये समांतर प्रक्रिया वापरण्यासाठी आवश्यक साधने आहेत.
- नावाचे फंक्शन तयार करा चौरस जे फक्त अर्धा सेकंद झोपते आणि नंतर त्याच्या इनपुट युक्तिवादाचा वर्ग परत करते. हे कार्य एका गणनेचे अनुकरण करते जे पूर्ण होण्यासाठी वाजवी वेळ घेते.
- नावाची यादी तयार करा संख्या, ज्यामध्ये 0 ते 9 (समाविष्ट) पूर्णांक असतात.
- आरंभ करणे ए पूल मल्टीप्रोसेसिंग मॉड्यूलमधील ऑब्जेक्ट. पूल ऑब्जेक्ट कार्यकर्ता प्रक्रिया व्यवस्थापित करण्यासाठी एक साधन म्हणून कार्य करते ज्याचा वापर तुम्ही तुमची कार्ये समांतर करण्यासाठी कराल.
- कॉल करा नकाशा पूल ऑब्जेक्ट वर पद्धत, आणि मध्ये पास चौरस कार्य आणि संख्या यादी नकाशा पद्धत नंतर पूलमध्ये उपलब्ध कामगार प्रक्रियांचा वापर करून, संख्या सूचीमधील प्रत्येक आयटमवर एकाचवेळी स्क्वेअर फंक्शन लागू करते.
- वर्ग_संख्यांची परिणामी सूची मुद्रित करा, ज्यामध्ये संख्या सूचीमधील वर्ग मूल्ये असावीत.
पायथन मल्टीप्रोसेसिंग लायब्ररी
अजगर मल्टीप्रोसेसिंग लायब्ररी तुमच्या प्रोग्राममध्ये समांतरता लागू करण्यासाठी एक अंतर्ज्ञानी माध्यम प्रदान करते. हे उच्च-स्तरीय अॅब्स्ट्रॅक्शन ऑफर करून सामान्यत: समांतर प्रोग्रामिंगशी संबंधित काही जटिलता लपवते पूल. पूल क्लास अनेक प्रक्रियांमध्ये कामाचे वितरण सुलभ करते, वापरकर्त्याला कमीत कमी त्रासासह समांतर प्रक्रियेचे फायदे अनुभवण्यास सक्षम करते.
Python Itertools मॉड्यूल आणि संबंधित कार्ये
अनेक समांतर कार्यांसाठी मल्टीप्रोसेसिंग हा एक उत्कृष्ट उपाय आहे, हे लक्षात घेण्यासारखे आहे की पायथन इतर लायब्ररी आणि साधने देखील प्रदान करते जे समान गरजा पूर्ण करतात. उदाहरणार्थ, itertools मॉड्यूल, पुष्कळ फंक्शन्स ऑफर करते जे इटेरेबल्सवर चालतात, अनेकदा सुधारित कार्यक्षमतेसह. काही itertools कार्ये जसे imap() आणि imap_unordered() पुनरावृत्ती करण्यायोग्य फंक्शन लागू करण्याच्या प्रक्रियेला समांतर करू शकते. तथापि, हे लक्षात घेणे महत्त्वाचे आहे की itertools मुख्यत्वे इटरेटर-आधारित उपायांवर लक्ष केंद्रित करते, तर मल्टीप्रोसेसिंग लायब्ररी समांतरतेसाठी अधिक व्यापक दृष्टीकोन ऑफर करते, नकाशासारख्या कार्यांपलीकडे अतिरिक्त साधने आणि क्षमता प्रदान करते.