2015-03-13 9 views

उत्तर

10

प्रयोगशालाओं और कार्यकर्ताओं MathWorks शब्दावलियों हैं में अधिक जानकारी वितरित करेंगे, और उनका मतलब मोटे तौर पर एक ही बात है।

एक प्रयोगशाला या एक कार्यकर्ता अनिवार्य रूप से MATLAB का एक उदाहरण (सामने के अंत के बिना) है। आप उनमें से कई को चलाते हैं, और आप उन्हें अपनी मशीन पर चला सकते हैं (केवल समानांतर कंप्यूटिंग टूलबॉक्स की आवश्यकता है) या दूरस्थ रूप से क्लस्टर पर (वितरित कंप्यूटिंग सर्वर की आवश्यकता है)। जब आप समानांतर कोड निष्पादित करते हैं (जैसे parfor लूप, spmd ब्लॉक, या parfeval कमांड), कोड को आपके मुख्य MATLAB के बजाए श्रमिकों द्वारा समानांतर में निष्पादित किया जाता है।

समांतर कंप्यूटिंग टूलबॉक्स ने हाल ही में रिलीज के दौरान अपनी कार्यक्षमता को काफी बदल दिया है और विकसित किया है, और यह जिस तरह से काम करता है उसका वर्णन करने के लिए उपयोग की जाने वाली शब्दावली को भी बदल और विकसित किया है। किसी बिंदु पर spmd ब्लॉक चलाते समय उन्हें प्रयोगशालाओं के रूप में संदर्भित करना सुविधाजनक था, लेकिन parfor लूप चलाने या कार्यकर्ताओं और कार्यों पर काम करते समय श्रमिकों को सुविधाजनक बनाना था। मेरा मानना ​​है कि वे अब उन्हें workers पर कॉल करने की ओर अग्रसर हैं (हालांकि labSend, labReceive, labBroadcast, labindex और numlabs) में आदेशों में विरासत है।

कोर और प्रक्रियाओं अलग हैं, और खुद को MATLAB से कोई लेना देना नहीं हैं।

कोर आपके प्रोसेसर का एक भौतिक हिस्सा है - आपके डेस्कटॉप कंप्यूटर में एक ड्यूल-कोर या क्वाड-कोर प्रोसेसर हो सकता है, या आपके पास इसके अलावा बहुत से कंप्यूटर के साथ एक बहुत बड़ा कंप्यूटर हो सकता है। एकाधिक कोर होने से, आपका प्रोसेसर एक साथ कई चीजें कर सकता है।

प्रक्रिया (लगभग) एक प्रोग्राम है जो आपका ऑपरेटिंग सिस्टम चल रहा है। हालांकि ओएस एक साथ कई कार्यक्रम चलाता है, लेकिन यह आमतौर पर प्रत्येक प्रक्रिया से संचालन को अंतःस्थापित करके करता है। लेकिन अगर आपके पास एकाधिक कोर मशीन तक पहुंच है, तो उन परिचालनों को समानांतर में किया जा सकता है।

तो आप आम तौर पर अपनी मशीन पर मौजूद प्रत्येक कोर के लिए एक कार्यकर्ता शुरू करने के लिए MATLAB को बताना चाहते हैं। उन श्रमिकों में से प्रत्येक को ओएस द्वारा एक प्रक्रिया के रूप में चलाया जाएगा, और समानांतर में प्रति कोर एक कार्यकर्ता चलाने के लिए समाप्त हो जाएगा।

उपर्युक्त काफी सरल है, लेकिन मुझे उम्मीद है कि यह लगभग सटीक तस्वीर देता है।


संपादित: जवाब के लिए एक टिप्पणी से धागे के विवरण ले जाया गया।

थ्रेड कुछ अलग हैं। MATLAB के साथ करने के लिए थ्रेड भी कुछ भी नहीं हैं।

चलो एक पल के लिए प्रक्रियाओं पर वापस जाएं। एक बात जिस पर मैंने उपरोक्त उल्लेख नहीं किया है वह यह है कि ओएस प्रत्येक प्रक्रिया को स्मृति के एक विशिष्ट ब्लॉक को आवंटित करता है, जो अन्य प्रक्रियाओं को स्पर्श करने में सक्षम नहीं होना चाहिए, ताकि उनके लिए एक दूसरे के साथ बातचीत करना और गड़बड़ करना मुश्किल हो।

धागा प्रक्रिया के भीतर एक प्रक्रिया की तरह है - यह प्रक्रियाओं की एक धारा है जो प्रक्रिया चलती है। आम तौर पर, प्रत्येक धागे से संचालन को अंतःस्थापित किया जाएगा, लेकिन यदि आपके पास एकाधिक कोर हैं, तो उन्हें कोर में समानांतर भी किया जा सकता है।

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

नियमित MATLAB स्वचालित रूप से कई अंतर्निहित आपरेशन (जैसे आव्यूह गुणन, svd, eig, रेखीय बीजगणित आदि) parallelize करने से अधिक थ्रेड का उपयोग करता है - यह है कि आप कुछ भी करने के बिना है, और चाहे या नहीं आप पैरलल कंप्यूटिंग उपकरण बॉक्स है।

हालांकि, MATLAB श्रमिक प्रत्येक एक एकल थ्रेड के साथ एक प्रक्रिया के रूप में चलाए जाते हैं, इसलिए आपके समानांतर करने के तरीके पर पूर्ण नियंत्रण होता है।

+0

मुझे लगता है कि आपको बस उस स्थान पर मिल गया है - मैं श्रमिकों को केवल 'spmd' ब्लॉक के संदर्भ में "प्रयोगशालाओं" के रूप में संदर्भित करता हूं। यद्यपि निश्चित रूप से उस शब्दकोष को आर 2006 ए में पेश किया गया था जिसे तब "समांतर नौकरियों" के नाम से जाना जाता था, और जब कोई 'spmd' ब्लॉक अभी तक नहीं था - यह R2008b तक नहीं आया था। – Edric

+0

क्या प्रयोगशालाएं और धागे समानार्थी हैं? – user2574723

+0

धागे के विवरण के लिए, मेरे उत्तर में संपादन देखें। –

1

मुझे लगता है कि श्रमिक प्रक्रियाओं के लिए समानार्थी हैं। "कोर" शब्द हार्डवेयर से संबंधित है। लैब्स एक तंत्र है जो श्रमिकों को एक दूसरे के साथ संवाद करने की अनुमति देता है। प्रत्येक कार्यकर्ता में कम से कम एक प्रयोगशाला होती है लेकिन अधिक स्वामित्व हो सकती है।

एक चर्चा का यह टुकड़ा उपयोगी हो सकता है

http://www.mathworks.com/matlabcentral/answers/5529-mysterious-behavior-in-parfor-i-know-sounds-basic-but

मुझे आशा है कि किसी को यहाँ एक और अधिक कठोर रास्ता