मल्टीथ्रेडिंग और हाइपरथ्रेडिंग के बीच अंतर क्या है? [बन्द है]


10

मैंने हाइपर-थ्रेडिंग और मल्टी-थ्रेडिंग शब्द सुना है, लेकिन वास्तव में उनके बीच अंतर क्या है? इंटेल प्रोसेसर किस तरह का उपयोग करता है?


2
आप उन चीजों की तुलना करने की कोशिश कर रहे हैं जो सीधे तुलनीय नहीं हैं; बस संबंधित। यह पूछने जैसा है कि "एक पैर और एक जूते के बीच अंतर क्या है?" इसके अलावा, अब तक आपके शोध से क्या पता चला है? इंटरनेट से आसानी से चमकने वाली परिभाषाओं के आधार पर अंतर को निर्धारित करने में आपको कहाँ तक नुकसान हो रहा है?
14c atιᴇ007


1
मुझे नहीं पता कि न तो मल्टीथ्रेडिंग और न ही हाइपरथ्रेडिंग, मुझे उनसे जानने के लिए कहा जाता है
गुलाब

1
स्टैक ओवरफ्लो नाज़ियों ने इस विषय को अपने 'ऑफ टॉपिक' के रूप में बंद कर दिया है ... यह एक बहुत अच्छा सवाल है, लोकप्रिय है और इसे बंद नहीं किया जाना चाहिए ..
रोब्बो_यूके

जवाबों:


19

मल्टीथ्रेडिंग एक ऑपरेटिंग सिस्टम के भीतर निष्पादन के एक से अधिक धागे को चलाने के सामान्य कार्य को संदर्भित करता है। मल्टीथ्रेडिंग को सामान्य रूप से "मल्टीप्रोसेसिंग" कहा जाता है, जिसमें कई सिस्टम प्रक्रियाएं शामिल हो सकती हैं (विंडोज पर एक सरल उदाहरण होगा, उदाहरण के लिए, एक ही समय में इंटरनेट एक्सप्लोरर और माइक्रोसॉफ्ट वर्ड चलाना), या इसमें एक प्रक्रिया शामिल हो सकती है जिसमें कई थ्रेड होते हैं। यह।

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

ध्यान दें, जब भी निष्पादन के अधिक सॉफ़्टवेयर थ्रेड्स उपलब्ध हैं , तो किसी भी समय निष्पादित करने की कोशिश कर रहे हैं उपलब्ध हार्डवेयर (एक साथ) निष्पादन के थ्रेड्स हैं, तो ये सॉफ़्टवेयर थ्रेड उपलब्ध कोर के बीच "इंटरलीव्ड" होंगे। एक "यूनीप्रोसेसर" (बिना हाइपरथ्रेडिंग वाला एक सीपीयू कोर) के मामले में, यदि आपके पास एक से अधिक सॉफ़्टवेयर थ्रेड हैं, तो वे हमेशा रहेंगेदखल देना। यदि आपके पास हाइपरथ्रेडिंग के साथ 4-कोर सीपीयू है, तो यह 8 "हार्डवेयर थ्रेड्स" है, जिसका अर्थ है कि सीपीयू एक ही समय में 8 एक साथ निष्पादन के थ्रेड निष्पादित कर सकता है, इसलिए यदि आपके पास 8 सॉफ़्टवेयर थ्रेड्स चलाने की कोशिश कर रहे हैं, तो वे सभी एक ही बार में चल सकते हैं। ; लेकिन अगर आपके पास 9 सॉफ़्टवेयर थ्रेड्स हैं, तो हार्डवेयर थ्रेड्स में से एक थ्रेड की एक जोड़ी को इंटरलेव करना होगा (चुने गए थ्रेड्स की सटीक जोड़ी ऑपरेटिंग सिस्टम के शेड्यूलर कार्यान्वयन पर निर्भर करेगी)।


दूसरी ओर, हाइपरथ्रेडिंग, इंटेल द्वारा बनाई गई एक बहुत ही विशिष्ट हार्डवेयर तकनीक को संदर्भित करता है , जो एकल प्रोसेसर कोर को निष्पादन के कई थ्रेडों को अधिक कुशलतापूर्वक इंटरलेक्ट करने की अनुमति देता है। दूसरे शब्दों में, हाइपरथ्रेडिंग वाला एक सीपीयू प्रदर्शन प्रदान करने वाला है जो कि सीपीयू की तुलना में कुछ अधिक है, जो अन्यथा समान है लेकिन हाइपरथ्रेडिंग के बिना है, क्योंकि हाइपरथ्रेडेड सीपीयू समवर्ती रूप से दो (कभी-कभी अधिक, लेकिन हाइपरथ्रेडिंग आमतौर पर 2- शेष होता है) तरीका) किसी दिए गए कोर पर निष्पादन के धागे।

हालांकि, हाइपरथ्रेडिंग पूरी तरह से अलग शारीरिक कोर होने से कड़ाई से धीमा है, क्योंकि कुछ प्रकार के ऑपरेशन हैं जो हाइपरथ्रेडिंग के प्रदर्शन लाभ को बाधित कर सकते हैं, जबकि कम ऑपरेशन हैं जो इस तरह की घटना को पूरी तरह से अलग कोर के साथ पैदा कर सकते हैं।

निम्नलिखित उदाहरण लें, जहां "1 कोर" को सभी उदाहरणों में बिल्कुल समान माना जाता है:

उदाहरण 1: 2 कोर, कोई हाइपरथ्रेडिंग नहीं।
उदाहरण 2: 4 कोर, कोई हाइपरथ्रेडिंग नहीं।
उदाहरण 3: हाइपरथ्रेडिंग के साथ 2 कोर।
उदाहरण 4: हाइपरथ्रेडिंग के साथ 4 कोर।

इस मामले में, उदाहरण 4 हमेशा सबसे तेज होगा। उदाहरण 2 कभी-कभी उदाहरण 4 के रूप में उपवास के बारे में हो सकता है, काम के बोझ पर जो हाइपरथ्रेडिंग के अनुकूलन का लाभ उठाने के लिए बेहद खराब हैं।

उदाहरण 3, दूसरी ओर, कभी-कभी, वर्कलोड पर जहां हाइपरथ्रेडिंग सबसे अधिक लाभकारी हो सकता है, उदाहरण 2 के रूप में लगभग उतना ही तेज़ हो, भले ही इसमें कई भौतिक कोर के रूप में आधा हो।

उदाहरण 1 बेशक, सभी उदाहरणों में से सबसे धीमा होगा, लेकिन यह कभी-कभी उदाहरण 3 के रूप में तेजी से हो सकता है, जब हाइपरथ्रेडिंग के लिए खराब तरीके से काम का बोझ चल रहा हो।

आधुनिक इंटेल सीपीयू के साथ वास्तविक दुनिया के बेंचमार्क में, हम आमतौर पर हाइपरथ्रेडिंग परिणामों में, हाइपरथ्रेडिंग फ़ीचर को अक्षम करके "हाइपरथ्रेडिंग" मामले को बेंचमार्क किए जाने की तुलना में (आमतौर पर हाइपरथ्रेडिंग "मामले के साथ प्रदर्शन में 20% से 40% सुधार, हाइपरथ्रेडिंग परिणाम आमतौर पर पाते हैं।" BIOS)। कभी-कभी ऐसे वर्कलोड होंगे जहां हाइपरथ्रेडिंग को अक्षम करना एक प्रदर्शन लाभ दिखाता है , लेकिन वास्तविक उपयोग में ये वर्कलोड दुर्लभ हो सकते हैं। लेकिन, अगर मेरे पास हाइपरथ्रेडिंग या 8 कोर के साथ 4 कोर के बीच एक विकल्प था, तो यह मानते हुए कि प्रत्येक कोर का स्वयं का प्रदर्शन समान है, मैं हर बार 8 कोर सीपीयू चुनूंगा।


2
सटीक होना, मल्टीथ्रेडिंग और मल्टीप्रोसेसिंग एक ही चीज नहीं हैं। थ्रेड्स निष्पादन के संदर्भ को उस प्रक्रिया से साझा करते हैं, जिसके साथ वे जुड़े होते हैं, जबकि प्रक्रियाओं का अपना निष्पादन संदर्भ होता है। हालाँकि, इस उत्तर के लिए यह अंतर उतना महत्वपूर्ण नहीं है।
तेरो किल्केन

1
हाइपरथ्रेडिंग तकनीक "इंटेल द्वारा बनाई गई" नहीं थी; मेनलाइन x86 के लिए यह एक साथ मल्टीथ्रेडिंग के लिए सिर्फ एक ट्रेडमार्क नाम है। यदि अल्फा 21464 का उत्पादन किया गया था, तो यह एसएमटी के पहले प्रमुख उपयोगकर्ताओं में से एक होगा। Intel ने कुछ Pentium 4s के साथ SMT (संभवतः कम ज्ञात प्रोसेसर को छोड़कर) का पहला रिलीज़ किया गया उपयोग किया, लेकिन मूल विचार इंटेल आविष्कार नहीं था।
पॉल ए। क्लेटन

2
वक्रोक्ति: हाइपरथ्रेडिंग अलग कोर की तुलना में कड़ाई से धीमा नहीं है । एक (कृत्रिम) मामलों को तैयार कर सकते हैं जहां एल 1 कैश को साझा करना एक कोर के संसाधनों का पूर्ण उपयोग करने की तुलना में अधिक लाभ है। एक और अजीब मामला तब हो सकता है जब एक धागा लगातार सक्रिय रहता है और दूसरा संक्षिप्त रूप से आंतरायिक घटनाओं को संभालता है; एक कोर को जगाना एक सक्रिय कोर पर एक धागा को जागने की तुलना में अधिक महंगा है। बेहद कम ILP वाले थ्रेड्स के लिए, यदि कैश कॉन्टैक्शन कोई समस्या नहीं है, तो एकल कोर का उपयोग करने की अधिक ऊर्जा दक्षता अधिक टर्बोबॉस्टिंग (बेहतर प्रदर्शन) की अनुमति दे सकती है।
पॉल ए। क्लेटन

3
उत्तर एसयू पर संपादन योग्य हैं, इसलिए यदि आप लोग इसे सुधारना चाहते हैं, तो कृपया स्वतंत्र महसूस करें। इसके अलावा, ओपी के ज्ञान के स्पष्ट स्तर को ध्यान में रखें; यहां तक ​​कि मेरा जवाब अपने दम पर खड़ा है, शायद वे अपेक्षा से अधिक तकनीकी हैं। मैंने जानबूझकर स्पष्टीकरण में आसानी के पक्ष में कुछ विवरणों को देखा। मुझे संदेह है कि अगर ओपी जल्द ही किसी भी समय प्रोसेसर डिजाइन करने जा रहा है और इन सभी विवरणों को जानने की सख्त आवश्यकता है। फिर भी दिलचस्प टिप्पणियाँ।
एलक्विक्सोटिक

1
सुझाए गए संपादन जो सामग्री को बदलते हैं (यानी, केवल व्याकरण / टाइपो सुधार या स्पष्टता के लिए रीफ़्रेशिंग) अस्वीकार किए जाने की संभावना है।
पॉल ए। क्लेटन

4

मल्टीथ्रेडिंग ऑपरेटिंग सिस्टम स्तर पर समानांतर प्रसंस्करण के लिए एक शब्द है। प्रोसेसर का मल्टीथ्रेडिंग से कोई लेना-देना नहीं है।

हाइपरथ्रेडिंग एक इंटेल की अवधारणा है जो एकल प्रोसेसर कोर में कई थ्रेड्स के "एक साथ" प्रसंस्करण को लागू करता है। ऑपरेटिंग सिस्टम दो प्रोसेसर कोर देखता है, हालांकि केवल एक भौतिक कोर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.