नवीनतम लेख
घर / विविध / हाइपर थ्रेडिंग तकनीक के लिए समर्थन। इंटेल से हाइपर-थ्रेडिंग टेक्नोलॉजी। उत्पादकता कभी पर्याप्त नहीं होती

हाइपर थ्रेडिंग तकनीक के लिए समर्थन। इंटेल से हाइपर-थ्रेडिंग टेक्नोलॉजी। उत्पादकता कभी पर्याप्त नहीं होती

उपयोगकर्ता जो कम से कम एक बार BIOS को कॉन्फ़िगर कर रहे हैं, उन्होंने शायद पहले ही देखा है कि एक इंटेल हाइपर थ्रेडिंग पैरामीटर है जो कई लोगों के लिए समझ से बाहर है। बहुत से लोग नहीं जानते कि यह तकनीक क्या है और इसका उपयोग किस उद्देश्य से किया जाता है। आइए यह पता लगाने की कोशिश करें कि हाइपर थ्रेडिंग क्या है और आप इस समर्थन के उपयोग को कैसे सक्षम कर सकते हैं। हम यह भी जानने की कोशिश करेंगे कि यह कंप्यूटर को क्या फायदे देता है। यह सेटिंग. सिद्धांत रूप में, यहां समझने में कुछ भी मुश्किल नहीं है।

इंटेल हाइपर थ्रेडिंग: यह क्या है?
यदि आप कंप्यूटर शब्दावली के जंगल में गहराई तक नहीं जाते हैं, लेकिन इसे सरल भाषा में कहें, तो यह तकनीकसीपीयू द्वारा एक साथ संसाधित कमांड के प्रवाह को बढ़ाने के लिए डिज़ाइन किया गया था। आधुनिक प्रोसेसर चिप्स, एक नियम के रूप में, उपलब्ध कंप्यूटिंग क्षमताओं का केवल 70% उपयोग करते हैं। बाकी बची हुई है, इसलिए बोलने के लिए, रिजर्व में। डेटा स्ट्रीम को संसाधित करने के लिए, ज्यादातर मामलों में केवल एक थ्रेड का उपयोग किया जाता है, इस तथ्य के बावजूद कि सिस्टम मल्टी-कोर प्रोसेसर का उपयोग करता है।

काम के बुनियादी सिद्धांत
केंद्रीय प्रोसेसर की क्षमताओं को बढ़ाने के लिए, एक विशेष हाइपर थ्रेडिंग तकनीक विकसित की गई थी। यह तकनीक एक कमांड स्ट्रीम को दो में विभाजित करना आसान बनाती है। मौजूदा स्ट्रीम में दूसरी स्ट्रीम जोड़ना भी संभव है। केवल ऐसी धारा ही आभासी होती है और भौतिक स्तर पर कार्य नहीं करती है। यह दृष्टिकोण आपको प्रोसेसर के प्रदर्शन को महत्वपूर्ण रूप से बढ़ाने की अनुमति देता है। तदनुसार, पूरी प्रणाली तेजी से काम करना शुरू कर देती है। CPU प्रदर्शन में वृद्धि में काफी उतार-चढ़ाव हो सकता है। इस पर अलग से चर्चा की जाएगी। हालाँकि, हाइपर थ्रेडिंग तकनीक के डेवलपर्स स्वयं दावा करते हैं कि यह एक पूर्ण कोर से कम है। कुछ मामलों में, इस तकनीक का उपयोग पूरी तरह से उचित है। यदि आप हाइपर थ्रेडिंग प्रोसेसर का सार जानते हैं, तो परिणाम आने में अधिक समय नहीं लगेगा।

इतिहास संदर्भ
आइए इस विकास के इतिहास में थोड़ा गोता लगाएँ। हाइपर थ्रेडिंग के लिए समर्थन पहले केवल इंटेल पेंटियम 4 प्रोसेसर में दिखाई दिया। बाद में, इस तकनीक का कार्यान्वयन इंटेल कोर आईएक्स श्रृंखला में जारी रखा गया था (एक्स यहां प्रोसेसर श्रृंखला के लिए खड़ा है)। यह ध्यान दिया जाना चाहिए कि किसी कारण से यह कोर 2 प्रोसेसर चिप्स की पंक्ति में अनुपस्थित है। सच है, तब उत्पादकता में वृद्धि काफी कमजोर थी: कहीं न कहीं 15-20% के स्तर पर। इसने संकेत दिया कि प्रोसेसर के पास आवश्यक प्रसंस्करण शक्ति नहीं थी, और बनाई गई तकनीक अपने समय से व्यावहारिक रूप से आगे थी। आज, लगभग सभी आधुनिक चिप्स में हाइपर थ्रेडिंग तकनीक का समर्थन पहले से ही उपलब्ध है। केंद्रीय प्रोसेसर की शक्ति बढ़ाने के लिए, प्रक्रिया स्वयं क्रिस्टल सतह का केवल 5% उपयोग करती है, जबकि प्रसंस्करण आदेशों और डेटा के लिए जगह छोड़ती है।

संघर्ष और प्रदर्शन का प्रश्न
यह सब निश्चित रूप से अच्छा है, लेकिन कुछ मामलों में, डेटा को संसाधित करते समय, काम में मंदी हो सकती है। यह ज्यादातर तथाकथित शाखा भविष्यवाणी मॉड्यूल और अपर्याप्त कैश आकार के कारण होता है जब इसे लगातार पुनः लोड किया जाता है। अगर हम मुख्य मॉड्यूल के बारे में बात करते हैं, तो in ये मामलास्थिति इस तरह विकसित होती है कि कुछ मामलों में पहले धागे को दूसरे से डेटा की आवश्यकता हो सकती है, जो उस समय संसाधित नहीं हो सकता है या प्रसंस्करण के लिए कतार में है। इसके अलावा, ऐसी स्थितियाँ भी कम आम नहीं हैं जब सीपीयू कोर में बहुत गंभीर भार होता है, और मुख्य मॉड्यूल, इसके बावजूद, इसे डेटा भेजना जारी रखता है। कुछ प्रोग्राम और एप्लिकेशन, जैसे कि संसाधन-गहन ऑनलाइन गेम, गंभीर रूप से धीमा हो सकते हैं क्योंकि उनमें हाइपर थ्रेडिंग तकनीक के उपयोग के लिए अनुकूलन की कमी है। खेलों से क्या होता है? उपयोगकर्ता का कंप्यूटर सिस्टम, अपने हिस्से के लिए, एप्लिकेशन से सर्वर तक डेटा प्रवाह को अनुकूलित करने का प्रयास करता है। समस्या यह है कि खेल यह नहीं जानता कि डेटा स्ट्रीम को स्वतंत्र रूप से कैसे वितरित किया जाए, सब कुछ एक ही ढेर में डंप किया जाए। मोटे तौर पर, इसे बस इसके लिए डिज़ाइन नहीं किया जा सकता है। कभी-कभी दोहरे कोर प्रोसेसर में, प्रदर्शन में वृद्धि 4-कोर वाले की तुलना में काफी अधिक होती है। उनके पास सिर्फ प्रसंस्करण शक्ति नहीं है।

BIOS में हाइपर थ्रेडिंग को कैसे इनेबल करें?
हाइपर थ्रेडिंग तकनीक क्या है, इसके बारे में हमने पहले ही थोड़ा पता लगा लिया है और इसके विकास के इतिहास से परिचित हो गए हैं। हम यह समझने के करीब आ गए हैं कि हाइपर थ्रेडिंग तकनीक क्या है। प्रोसेसर में उपयोग के लिए इस तकनीक को कैसे सक्रिय करें? यहां सब कुछ काफी सरलता से किया जाता है। आपको BIOS प्रबंधन सबसिस्टम का उपयोग करना चाहिए। सबसिस्टम Del, F1, F2, F3, F8, F12, F2+Del, आदि कुंजियों का उपयोग करके दर्ज किया जाता है। यदि आप Sony Vaio लैपटॉप का उपयोग कर रहे हैं, तो समर्पित ASSIST कुंजी का उपयोग करते समय उनके पास एक विशिष्ट इनपुट होता है। BIOS सेटिंग्स में, यदि आप जिस प्रोसेसर का उपयोग कर रहे हैं वह हाइपर थ्रेडिंग तकनीक का समर्थन करता है, तो एक विशेष सेटिंग लाइन होनी चाहिए। ज्यादातर मामलों में, यह हाइपर थ्रेडिंग टेक्नोलॉजी की तरह दिखता है, और कभी-कभी यह फंक्शन जैसा दिखता है। सबसिस्टम डेवलपर और BIOS संस्करण के आधार पर, इस पैरामीटर की सेटिंग या तो मुख्य मेनू में या उन्नत सेटिंग्स में समाहित की जा सकती है। इस तकनीक को सक्षम करने के लिए, आपको विकल्प मेनू दर्ज करना होगा और मान को सक्षम पर सेट करना होगा। उसके बाद, आपको किए गए परिवर्तनों को सहेजने और सिस्टम को रीबूट करने की आवश्यकता है।

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

कई इंटेल प्रोसेसर में मॉड्यूल शामिल हैं हाइपर सपोर्ट-थ्रेडिंग टेक्नोलॉजी, जो डेवलपर्स के विचार के अनुसार, चिप के प्रदर्शन को बढ़ाने और पीसी को समग्र रूप से गति देने में मदद करनी चाहिए। एक अमेरिकी निगम से इस समाधान की विशिष्टता क्या है? आप हाइपर-थ्रेडिंग का लाभ कैसे उठा सकते हैं?

प्रौद्योगिकी मूल बातें

आइए हाइपर-थ्रेडिंग के बारे में मुख्य विवरण देखें। यह तकनीक क्या है? इसे इंटेल द्वारा विकसित किया गया था और पहली बार 2001 में जनता के लिए पेश किया गया था। इसके निर्माण का उद्देश्य सर्वरों के प्रदर्शन को बढ़ाना था। हाइपर-थ्रेडिंग में कार्यान्वित मुख्य सिद्धांत कई थ्रेड्स के लिए प्रोसेसर गणनाओं का वितरण है। इसके अलावा, यह संभव है, भले ही संबंधित प्रकार के माइक्रोक्रिकिट पर केवल एक कोर स्थापित हो (बदले में, यदि उनमें से 2 या अधिक हैं, और प्रोसेसर में धागे पहले से ही वितरित किए गए हैं, तो तकनीक सफलतापूर्वक इस तंत्र को पूरक करती है)।

गणना के दौरान वास्तुशिल्प राज्यों की प्रतियां बनाकर कई थ्रेड्स के भीतर मुख्य पीसी चिप के संचालन को सुनिश्चित किया जाता है। इस मामले में, चिप पर संसाधनों के समान सेट का उपयोग किया जाता है। यदि एप्लिकेशन उपयुक्त क्षमता का उपयोग करता है, तो व्यावहारिक रूप से महत्वपूर्ण संचालन बहुत तेजी से किए जाते हैं। यह भी महत्वपूर्ण है कि विचाराधीन तकनीक कंप्यूटर के इनपुट/आउटपुट सिस्टम - BIOS द्वारा समर्थित हो।

हाइपर-थ्रेडिंग को सक्षम करना

यदि पीसी में स्थापित प्रोसेसर उपयुक्त मानक का समर्थन करता है, तो यह आमतौर पर स्वचालित रूप से सक्रिय हो जाता है। लेकिन कुछ मामलों में, आपको हाइपर-थ्रेडिंग तकनीक के काम करने के लिए आवश्यक क्रियाओं को मैन्युअल रूप से करना होगा। इसे कैसे सक्षम करें? बहुत आसान।

आपको मुख्य BIOS इंटरफ़ेस दर्ज करने की आवश्यकता है। ऐसा करने के लिए, कंप्यूटर बूट की शुरुआत में, आपको DEL, कभी-कभी - F2, F10, कम बार - अन्य कुंजियों को दबाने की आवश्यकता होती है, लेकिन वांछित हमेशा स्क्रीन पर प्रदर्शित पाठ की पंक्तियों में से एक में दिखाई देता है। पीसी चालू करना। BIOS इंटरफ़ेस में, आपको हाइपर-थ्रेडिंग आइटम खोजने की आवश्यकता है: I / O सिस्टम के संस्करणों में जो इसका समर्थन करते हैं, यह आमतौर पर एक प्रमुख स्थान पर स्थित होता है। उपयुक्त विकल्प का चयन करने के बाद, आपको एंटर दबाएं और इसे सक्रिय करें, इसे सक्षम के रूप में चिह्नित करें। अगर यह मोड पहले से सेट है, तो हाइपर-थ्रेडिंग टेक्नोलॉजी काम कर रही है। आप इसके सभी फायदों का इस्तेमाल कर सकते हैं। सेटिंग्स में तकनीक को सक्रिय करने के बाद, आपको सेव एंड एग्जिट सेटअप का चयन करके BIOS में सभी प्रविष्टियों को सहेजना चाहिए। उसके बाद, जब प्रोसेसर हाइपर-थीडिंग सपोर्ट के साथ काम कर रहा होगा, तब कंप्यूटर मोड में रीस्टार्ट होगा। इसी तरह, हाइपर-थ्रेडिंग अक्षम है। ऐसा करने के लिए, संबंधित आइटम में एक और विकल्प चुनें - अक्षम करें और सेटिंग्स को सहेजें।

हाइपर-थ्रेडिंग को सक्षम करने और इस तकनीक को निष्क्रिय करने के तरीके का अध्ययन करने के बाद, आइए इसकी विशेषताओं पर करीब से नज़र डालें।

हाइपर थ्रेडिंग सपोर्ट वाले CPU

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

यदि हम हाइपर-थ्रेडिंग के वर्तमान प्रचलन के बारे में बात करते हैं - तो कौन से "पेशेवर" इसका समर्थन करते हैं? इस प्रकार के सबसे लोकप्रिय चिप्स में वे हैं जो कोर और ज़ीऑन परिवारों से संबंधित हैं। ऐसी जानकारी भी है कि इटेनियम और एटम जैसे प्रोसेसर में समान एल्गोरिदम लागू किए जाते हैं।

हाइपर-थ्रेडिंग, इसके समर्थन वाले प्रोसेसर के बारे में बुनियादी जानकारी का अध्ययन करने के बाद, आइए प्रौद्योगिकी के विकास के इतिहास के बारे में सबसे उल्लेखनीय तथ्यों को देखें।

विकास इतिहास

जैसा कि हमने ऊपर उल्लेख किया है, इंटेल ने 2001 में जनता को विचाराधीन अवधारणा दिखाई। लेकिन प्रौद्योगिकी के निर्माण में पहला कदम 90 के दशक की शुरुआत में बनाया गया था। अमेरिकी कंपनी के इंजीनियरों ने देखा कि कई ऑपरेशन करते समय पीसी प्रोसेसर के संसाधनों का पूरी तरह से उपयोग नहीं किया जाता है।

जैसा कि इंटेल विशेषज्ञों ने गणना की है, एक पीसी पर उपयोगकर्ता के काम के दौरान, माइक्रोक्रिकिट का सक्रिय रूप से महत्वपूर्ण अंतराल के लिए उपयोग नहीं किया जाता है - लगभग अधिकांश समय - लगभग 30% तक। इस आंकड़े के बारे में विशेषज्ञों की राय बहुत अलग है - कोई इसे स्पष्ट रूप से कम करके आंका गया है, अन्य अमेरिकी डेवलपर्स की थीसिस से पूरी तरह सहमत हैं।

हालांकि, अधिकांश आईटी विशेषज्ञ इस बात से सहमत थे कि भले ही प्रोसेसर की क्षमता का 70% निष्क्रिय न हो, लेकिन उनमें से एक बहुत महत्वपूर्ण राशि है।

डेवलपर्स का मुख्य कार्य

इंटेल ने मुख्य पीसी चिप्स की दक्षता सुनिश्चित करने के लिए गुणात्मक रूप से नए दृष्टिकोण के माध्यम से इस स्थिति को ठीक करने का निर्णय लिया है। यह एक ऐसी तकनीक बनाने का प्रस्ताव था जो प्रोसेसर की क्षमताओं के अधिक सक्रिय उपयोग में योगदान करेगी। 1996 में, इंटेल विशेषज्ञों ने इसका व्यावहारिक विकास शुरू किया।

एक अमेरिकी निगम की अवधारणा के अनुसार, एक प्रोग्राम से डेटा संसाधित करने वाला प्रोसेसर, निष्क्रिय संसाधनों को दूसरे एप्लिकेशन (या वर्तमान एक के एक घटक, लेकिन एक अलग संरचना होने और अतिरिक्त संसाधनों के उपयोग की आवश्यकता) के साथ काम करने के लिए निर्देशित कर सकता है। संबंधित एल्गोरिथम ने अन्य पीसी हार्डवेयर घटकों - रैम, चिपसेट और प्रोग्रामों के साथ प्रभावी सहभागिता भी ग्रहण की।

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

प्रौद्योगिकी के साथ संगतता के पहलू

ऑपरेटिंग सिस्टम में लागू हाइपर-थ्रेडिंग तकनीक के लिए समर्थन कितना अच्छा है? यह ध्यान दिया जा सकता है कि अगर हम आधुनिक के बारे में बात कर रहे हैं विंडोज संस्करण, तो उपयोगकर्ता को इंटेल हाइपर-थ्रेडिंग टेक्नोलॉजी के लाभों का पूरी तरह से उपयोग करने में कोई समस्या नहीं होगी। बेशक, यह भी बहुत महत्वपूर्ण है कि I / O सिस्टम तकनीक का समर्थन करता है - हमने इसके बारे में ऊपर बात की।

सॉफ्टवेयर और हार्डवेयर कारक

ओएस के पुराने संस्करणों के संबंध में - विंडोज 98, एनटी और अपेक्षाकृत पुराने एक्सपी, हाइपर-थ्रेडिंग के साथ संगतता के लिए एक आवश्यक शर्त एसीपीआई समर्थन है। यदि इसे ओएस में लागू नहीं किया जाता है, तो संबंधित मॉड्यूल द्वारा गठित सभी कम्प्यूटेशनल प्रवाह को कंप्यूटर द्वारा मान्यता नहीं दी जाएगी। ध्यान दें कि Windows XP समग्र रूप से विचाराधीन प्रौद्योगिकी के लाभों का उपयोग सुनिश्चित करता है। यह भी अत्यधिक वांछनीय है कि पीसी मालिक द्वारा उपयोग किए जाने वाले अनुप्रयोगों में मल्टीथ्रेडिंग एल्गोरिदम लागू किया जाए।

कभी-कभी आपको एक पीसी की आवश्यकता हो सकती है - यदि आप उस पर हाइपर-थ्रेडिंग समर्थन वाले प्रोसेसर स्थापित करते हैं, जो मूल रूप से उस पर स्थापित थे और तकनीक के अनुकूल नहीं थे। हालांकि, जैसा कि ऑपरेटिंग सिस्टम के मामले में, कोई विशेष समस्या नहीं होगी यदि उपयोगकर्ता के पास पहले हाइपर थ्रेडिंग प्रोसेसर के लिए एक आधुनिक पीसी या कम से कम संबंधित हार्डवेयर घटक हैं, जैसा कि हमने ऊपर उल्लेख किया है, कोर लाइन में लागू किया गया है, और अनुकूलित किया गया है इसके लिए मदरबोर्ड पर चिपसेट चिप के संबंधित कार्यों का पूरी तरह से समर्थन करते हैं।

त्वरण मानदंड

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

तो, प्रौद्योगिकी के सफलतापूर्वक उपयोग की जाने वाली बुनियादी शर्तें:

I / O सिस्टम द्वारा हाइपर-थ्रेडिंग के लिए समर्थन;

संबंधित प्रकार के प्रोसेसर के साथ मदरबोर्ड की संगतता;

ऑपरेटिंग सिस्टम द्वारा एक तकनीक का समर्थन और उस पर चल रहे विशिष्ट एप्लिकेशन।

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

अगर इंटेल हाइपर थ्रेडिंग मॉड्यूल प्रोसेसर में काम करते हैं तो कम से कम ऐसे अध्ययन हैं जो दोहरे-कोर माइक्रोक्रिकिट्स के अनुकूल कार्यक्रमों के प्रदर्शन में लगभग 15-18% की वृद्धि की पुष्टि करते हैं। हम पहले से ही जानते हैं कि उन्हें कैसे निष्क्रिय करना है (यदि उपयोगकर्ता को प्रौद्योगिकी का उपयोग करने की उपयुक्तता के बारे में संदेह है)। लेकिन उनकी उपस्थिति के लिए शायद बहुत कम ठोस कारण हैं।

हाइपर-थ्रेडिंग की व्यावहारिक उपयोगिता

क्या विचाराधीन तकनीक ने इंटेल पर ठोस प्रभाव डाला है? इस मामले पर अलग-अलग मत हैं। लेकिन बहुत से लोग ध्यान दें कि हाइपर-थ्रेडिंग तकनीक इतनी लोकप्रिय हो गई है कि यह समाधान सर्वर सिस्टम के कई निर्माताओं के लिए अनिवार्य हो गया है, और इसे सामान्य पीसी उपयोगकर्ताओं द्वारा भी सकारात्मक रूप से प्राप्त किया गया था।

हार्डवेयर डेटा प्रोसेसिंग

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

यह ध्यान दिया जा सकता है कि विचाराधीन प्रौद्योगिकी के लिए समर्थन मॉड्यूल से लैस उन 4 माइक्रो सर्किटों में से पहले संशोधनों की तुलना में बहुत अधिक कुशलता से काम किया। यह बड़े पैमाने पर पीसी की वास्तविक मल्टीटास्किंग मोड में कार्य करने की क्षमता में व्यक्त किया गया था - जब कई अलग-अलग प्रकार के विंडोज़ अनुप्रयोग, और यह अत्यधिक अवांछनीय है कि उनमें से एक द्वारा सिस्टम संसाधनों की बढ़ती खपत के कारण, दूसरे की गति कम हो जाएगी।

विभिन्न कार्यों का एक साथ समाधान

इस प्रकार, हाइपर-थ्रेडिंग के लिए समर्थन वाले प्रोसेसर उन माइक्रोक्रिकिट्स की तुलना में बेहतर रूप से अनुकूलित होते हैं जो इसके साथ संगत नहीं हैं, एक साथ लॉन्च करने के लिए, उदाहरण के लिए, एक ब्राउज़र, संगीत बजाना और दस्तावेजों के साथ काम करना। बेशक, उपयोगकर्ता द्वारा इन सभी लाभों को व्यवहार में तभी महसूस किया जाता है जब पीसी के सॉफ्टवेयर और हार्डवेयर घटक इस ऑपरेशन के मोड के साथ पर्याप्त रूप से संगत हों।

इसी तरह के घटनाक्रम

हाइपर-थ्रेडिंग एकमात्र ऐसी तकनीक नहीं है जिसे मल्टी-थ्रेडेड कंप्यूटिंग के माध्यम से पीसी के प्रदर्शन को बेहतर बनाने के लिए डिज़ाइन किया गया है। उसके पास एनालॉग हैं।

उदाहरण के लिए, IBM द्वारा जारी किया गया POWER5 प्रोसेसर भी मल्टीथ्रेडिंग का समर्थन करता है। यही है, प्रत्येक (कुल मिलाकर, 2 संबंधित तत्व उस पर स्थापित हैं) 2 थ्रेड्स के भीतर कार्य कर सकते हैं। इस प्रकार, माइक्रोक्रिकिट गणना की 4 धाराओं को एक साथ संसाधित करता है।

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

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

इंटेल की सबसे दिलचस्प तकनीक के बारे में ये प्रमुख तथ्य हैं। यह क्या है, हाइपर-थ्रेडिंग को कैसे सक्षम करें या, इसके विपरीत, इसे निष्क्रिय करें, हमने निर्धारित किया है। बिंदु शायद इसके फायदों के व्यावहारिक उपयोग में है, जिसका उपयोग यह सुनिश्चित करके किया जा सकता है कि हार्डवेयर और सॉफ्टवेयर घटकों में पीसी प्रौद्योगिकी का समर्थन करता है।

हाइपर थ्रेडिंग (हाइपर थ्रेडिंग, 'हाइपर थ्रेडिंग', हाइपर थ्रेडिंग - रस।) - कंपनी द्वारा विकसित एक तकनीक इंटेल, जो प्रोसेसर कोर को एक (आमतौर पर दो) से अधिक डेटा स्ट्रीम निष्पादित करने की अनुमति देता है। चूंकि यह पाया गया कि अधिकांश कार्यों में एक पारंपरिक प्रोसेसर से अधिक का उपयोग नहीं करता है 70% सभी कंप्यूटिंग शक्ति के लिए, एक ऐसी तकनीक का उपयोग करने का निर्णय लिया गया जो अनुमति देता है, जब कुछ कंप्यूटिंग इकाइयां निष्क्रिय होती हैं, तो उन्हें दूसरे थ्रेड के साथ काम करने के लिए लोड किया जाता है। यह आपको कर्नेल के प्रदर्शन को बढ़ाने की अनुमति देता है 10 से 80% तककार्य के आधार पर।

देखें कि हाइपर-थ्रेडिंग कैसे काम करता है .

मान लीजिए कि प्रोसेसर सरल गणना करता है और साथ ही निर्देशों का एक ब्लॉक निष्क्रिय है और सिमडएक्सटेंशन।

एड्रेसिंग मॉड्यूल इसका पता लगाता है और आगे की गणना के लिए वहां डेटा भेजता है। यदि डेटा विशिष्ट है, तो ये ब्लॉक उन्हें अधिक धीरे-धीरे निष्पादित करेंगे, लेकिन डेटा निष्क्रिय नहीं होगा। या वे उपयुक्त ब्लॉक द्वारा आगे तेजी से प्रसंस्करण के लिए उन्हें पूर्व-संसाधित करेंगे। यह एक अतिरिक्त प्रदर्शन लाभ देता है।

स्वाभाविक रूप से, आभासी धागा पूर्ण कोर तक नहीं पहुंचता है, लेकिन यह आपको लगभग प्राप्त करने की अनुमति देता है 100% कंप्यूटिंग शक्ति की दक्षता, लगभग पूरे प्रोसेसर को काम के साथ लोड करना, इसे निष्क्रिय नहीं होने देना। इन सबके साथ, एचटी प्रौद्योगिकी को लागू करने के लिएकेवल लगभग। 5% अतिरिक्त मरने की जगह, और प्रदर्शन को कभी-कभी जोड़ा जा सकता है 50% . इस अतिरिक्त क्षेत्र में रजिस्टरों और शाखा भविष्यवाणी के अतिरिक्त ब्लॉक शामिल हैं, जो स्ट्रीम-गणना करते हैं जहां कंप्यूटिंग शक्ति का उपयोग किसी निश्चित क्षण में किया जा सकता है और वहां एक अतिरिक्त पता ब्लॉक से डेटा भेज सकता है।

पहली बार, प्रोसेसर पर प्रौद्योगिकी दिखाई दी पेंटियम 4, लेकिन प्रदर्शन में कोई बड़ी वृद्धि नहीं हुई, क्योंकि प्रोसेसर में ही उच्च कंप्यूटिंग शक्ति नहीं थी। वृद्धि सबसे अच्छी थी 15-20% , और कई कार्यों में प्रोसेसर बिना की तुलना में बहुत धीमी गति से काम करता है हिंदुस्तान टाइम्स.

गति कम करो प्रौद्योगिकी के कारण प्रोसेसर हाइपर थ्रेडिंग, होता है अगर:

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

बाद में पेंटियम 4, इंटेलसे ही तकनीक का उपयोग करना शुरू किया कोर i7पहली पीढ़ी, श्रृंखला लंघन 2 .

गैर-अनुकूलित अनुप्रयोगों के लिए भी, बिना किसी नुकसान के हाइपरथ्रेडिंग के पूर्ण कार्यान्वयन के लिए प्रोसेसर की कंप्यूटिंग शक्ति पर्याप्त हो गई है। बाद में, हाइपर थ्रेडिंगमध्यम वर्ग के प्रोसेसर और यहां तक ​​कि बजट और पोर्टेबल पर भी दिखाई दिया। सभी श्रृंखलाओं पर प्रयुक्त कोर आई (i3; i5; i7) और पर मोबाइल प्रोसेसर परमाणु(बिल्कुल भी नहीं)। दिलचस्प है, डुअल-कोर प्रोसेसर के साथ हिंदुस्तान टाइम्स, उपयोग करने से क्वाड-कोर की तुलना में अधिक प्रदर्शन लाभ प्राप्त करें हाइपर थ्रेडिंग, खड़े होने की जगह 75% पूर्ण विकसित चार परमाणु।

हाइपरथ्रेडिंग कहाँ उपयोगी है?

यह पेशेवर, ग्राफिक, विश्लेषणात्मक, गणितीय और वैज्ञानिक कार्यक्रमों, वीडियो और ऑडियो संपादकों, अभिलेखागार के संयोजन के साथ उपयोग के लिए उपयोगी होगा ( फोटोशॉप, कोरल ड्रा, माया, 3डी मैक्स, विनरार, सोनी वेगास &आदि)। सभी प्रोग्राम जो बहुत अधिक गणनाओं का उपयोग करते हैं, हिंदुस्तान टाइम्सनिश्चित रूप से उपयोगी होगा। शुक्र है, में 90% मामलों में, ऐसे कार्यक्रमों को इसके उपयोग के लिए अच्छी तरह से अनुकूलित किया जाता है।

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

अनेक कंप्यूटर गेम , उपस्थिति से नकारात्मक रूप से संबंधित हैं हाइपर थ्रेडिंग, जो प्रति सेकंड फ़्रेम की संख्या को कम करता है। यह के लिए अनुकूलन की कमी के कारण है हाइपर थ्रेडिंगखेल की तरफ से। ऑपरेटिंग सिस्टम की ओर से एक अनुकूलन हमेशा पर्याप्त नहीं होता है, खासकर जब असामान्य, विषम और जटिल डेटा के साथ काम करना।

समर्थन करने वाले मदरबोर्ड पर हिंदुस्तान टाइम्स, आप हमेशा हाइपरथ्रेडिंग तकनीक को अक्षम कर सकते हैं।

20 जनवरी 2015 को शाम 07:43 बजे

हाइपर-थ्रेडिंग के बारे में अधिक जानकारी

  • आईटी सिस्टम परीक्षण,
  • प्रोग्रामिंग

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

शोधित मंच

प्रयोग का उद्देश्य - ASUS लैपटॉपइंटेल कोर i7-4700HQ प्रोसेसर के साथ N750JK। क्लॉक स्पीड 2.4GHz है, जिसे इंटेल टर्बो बूस्ट मोड द्वारा 3.4GHz तक बढ़ाया गया है। 16 गीगाबाइट स्थापित यादृच्छिक अभिगम स्मृति DDR3-1600 (PC3-12800) दोहरे चैनल मोड में काम कर रहा है। ऑपरेटिंग सिस्टम - माइक्रोसॉफ़्ट विंडोज़ 8.1 64 बिट।

Fig.1 अध्ययन मंच का विन्यास।

अध्ययन के तहत प्लेटफॉर्म के प्रोसेसर में 4 कोर होते हैं, जो हाइपर-थ्रेडिंग तकनीक के सक्षम होने पर 8 थ्रेड्स या लॉजिकल प्रोसेसर के लिए हार्डवेयर सपोर्ट प्रदान करते हैं। प्लेटफ़ॉर्म फ़र्मवेयर इस जानकारी को MADT (एकाधिक APIC विवरण तालिका) ACPI तालिका के माध्यम से ऑपरेटिंग सिस्टम को भेजता है। चूंकि प्लेटफ़ॉर्म में केवल एक RAM नियंत्रक होता है, इसलिए कोई SRAT (सिस्टम रिसोर्स एफ़िनिटी टेबल) नहीं होता है जो मेमोरी नियंत्रकों के लिए प्रोसेसर कोर की निकटता की घोषणा करता है। जाहिर है, विचाराधीन लैपटॉप NUMA प्लेटफॉर्म नहीं है, लेकिन ऑपरेटिंग सिस्टम, एकीकरण के उद्देश्य से, इसे एक डोमेन के साथ एक NUMA सिस्टम के रूप में मानता है, जैसा कि लाइन NUMA Nodes = 1 द्वारा दर्शाया गया है। तथ्य यह है कि हमारे प्रयोगों के लिए मौलिक है कि पहले स्तर के डेटा कैश में प्रत्येक के लिए 32 किलोबाइट का आकार होता है। चार कोर में से। समान कोर साझा करने वाले दो तार्किक प्रोसेसर L1 और L2 कैश साझा करते हैं।

जांच की गई कार्रवाई

हम इसके आकार पर डेटा ब्लॉक पढ़ने की गति की निर्भरता की जांच करेंगे। ऐसा करने के लिए, हम सबसे अधिक उत्पादक विधि का चयन करेंगे, अर्थात्, VMOVAPD AVX निर्देश का उपयोग करके 256-बिट ऑपरेंड को पढ़ना। चार्ट पर, एक्स-अक्ष ब्लॉक आकार दिखाता है, और वाई-अक्ष पढ़ने की गति दिखाता है। बिंदु X के आसपास, L1 कैश के आकार के अनुरूप, हम एक विभक्ति बिंदु देखने की उम्मीद करते हैं, क्योंकि संसाधित होने वाले ब्लॉक के कैश से बाहर जाने के बाद प्रदर्शन गिरना चाहिए। हमारे परीक्षण में, मल्टीथ्रेडिंग के मामले में, 16 आरंभ किए गए थ्रेड्स में से प्रत्येक एक अलग पता श्रेणी के साथ काम करता है। किसी एप्लिकेशन के भीतर हाइपर-थ्रेडिंग तकनीक को नियंत्रित करने के लिए, प्रत्येक थ्रेड SetThreadAffinityMask API फ़ंक्शन का उपयोग करता है, जो एक मास्क सेट करता है जिसमें प्रत्येक लॉजिकल प्रोसेसर एक बिट से मेल खाता है। बिट का एकल मान निर्दिष्ट थ्रेड द्वारा निर्दिष्ट प्रोसेसर के उपयोग की अनुमति देता है, एक शून्य मान इसे प्रतिबंधित करता है। अध्ययन किए गए प्लेटफ़ॉर्म के 8 तार्किक प्रोसेसर के लिए, मास्क 11111111b सभी प्रोसेसर (हाइपर-थ्रेडिंग सक्षम है) का उपयोग करने की अनुमति देता है, मास्क 01010101b प्रत्येक कोर में एक तार्किक प्रोसेसर का उपयोग करने की अनुमति देता है (हाइपर-थ्रेडिंग अक्षम है)।

रेखांकन पर निम्नलिखित संक्षिप्ताक्षरों का उपयोग किया जाता है:

एमबीपीएस (मेगाबाइट प्रति सेकेंड)प्रति सेकंड मेगाबाइट में पढ़ने की गति को ब्लॉक करें;

सीपीआई (घड़ी प्रति निर्देश)प्रति निर्देश चक्रों की संख्या;

टीएससी (टाइम स्टाम्प काउंटर)प्रोसेसर साइकिल काउंटर.

नोट: टीएससी रजिस्टर की घड़ी की गति टर्बो बूस्ट मोड में चलने पर प्रोसेसर की घड़ी की गति से मेल नहीं खा सकती है। परिणामों की व्याख्या करते समय इसे ध्यान में रखा जाना चाहिए।

ग्राफ़ के दाईं ओर, निर्देशों का एक हेक्साडेसिमल डंप है जो प्रोग्राम के प्रत्येक थ्रेड में किए गए लक्ष्य ऑपरेशन के चक्र का शरीर बनाता है, या इस कोड के पहले 128 बाइट्स की कल्पना की जाती है।

अनुभव नंबर 1। एक धागा



रेखा चित्र नम्बर 2 एक सूत्र में पढ़ना

अधिकतम गति 213563 मेगाबाइट प्रति सेकंड है। विभक्ति बिंदु लगभग 32 किलोबाइट के ब्लॉक आकार में होता है।

अनुभव संख्या 2। 4 प्रोसेसर पर 16 थ्रेड, हाइपर-थ्रेडिंग अक्षम



अंजीर.3 सोलह धागों में पढ़ना। प्रयुक्त तार्किक प्रोसेसर की संख्या चार है

हाइपर-थ्रेडिंग अक्षम है। अधिकतम गति 797598 मेगाबाइट प्रति सेकंड है। विभक्ति बिंदु लगभग 32 किलोबाइट के ब्लॉक आकार में होता है। जैसा कि अपेक्षित था, एक धागे के साथ पढ़ने की तुलना में, काम करने वाले कोर की संख्या के मामले में गति लगभग 4 गुना बढ़ गई।

अनुभव संख्या 3. 8 प्रोसेसर पर 16 थ्रेड, हाइपर-थ्रेडिंग सक्षम



चित्र 4 सोलह धागों में पढ़ना। प्रयुक्त तार्किक प्रोसेसर की संख्या आठ . है

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

निष्कर्ष

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

हमने लिखा है कि सिंगल-प्रोसेसर ज़ीऑन सिस्टम के उपयोग का कोई मतलब नहीं है, क्योंकि अधिक कीमत पर उनका प्रदर्शन समान आवृत्ति के पेंटियम 4 के समान होगा। अब, एक करीब से जांच के बाद, इस कथन को शायद थोड़ा संशोधित करना होगा। इंटेल ज़ीऑन में प्रेस्टोनिया कोर के साथ लागू की गई हाइपर-थ्रेडिंग तकनीक वास्तव में काम करती है और काफी ठोस प्रभाव देती है। हालांकि इसका इस्तेमाल करते समय कई सवाल भी होते हैं...

प्रदर्शन दें

"तेज़, और भी तेज़ ..."। प्रदर्शन की दौड़ वर्षों से चल रही है, और कभी-कभी यह कहना भी मुश्किल होता है कि कंप्यूटर के कौन से घटक तेजी से बढ़ रहे हैं। इसके लिए अधिक से अधिक नए तरीके ईजाद किए जा रहे हैं और आगे भी इस हिमस्खलन जैसी प्रक्रिया में अधिक कुशल श्रम और उच्च गुणवत्ता वाले दिमाग का निवेश किया जाता है।

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

लेकिन इस मामले में तकनीकी पहलुओं पर ध्यान केंद्रित करते हुए, विपणन पहलुओं को छोड़ दें। इसके अलावा, सब कुछ इतना उदास नहीं है: तत्काल कार्य (सर्वर अनुप्रयोग, वैज्ञानिक गणना, मॉडलिंग, आदि) हैं, जहां सब कुछ अधिक है उच्च प्रदर्शन, विशेष रूप से केंद्रीय प्रसंस्करण इकाइयों में, वास्तव में आवश्यक है।

तो, उनके प्रदर्शन को बढ़ाने के तरीके क्या हैं?

क्लॉक बूस्ट. आगे "पतला" किया जा सकता है तकनीकी प्रक्रियाऔर आवृत्ति बढ़ाएँ। लेकिन, जैसा कि आप जानते हैं, यह आसान नहीं है और सभी प्रकार के दुष्प्रभावों से भरा है, जैसे कि गर्मी अपव्यय के साथ समस्याएं।

प्रोसेसर संसाधन बढ़ाना- उदाहरण के लिए, कैश की मात्रा बढ़ाना, नए ब्लॉक (निष्पादन इकाइयाँ) जोड़ना। यह सब ट्रांजिस्टर की संख्या में वृद्धि, प्रोसेसर की जटिलता, क्रिस्टल के क्षेत्र में वृद्धि और, परिणामस्वरूप, लागत में वृद्धि पर जोर देता है।

इसके अलावा, पिछले दो तरीके, एक नियम के रूप में, उत्पादकता में एक रैखिक वृद्धि नहीं देते हैं। यह पेंटियम 4 के उदाहरण में अच्छी तरह से जाना जाता है: शाखा भविष्यवाणी और व्यवधान में त्रुटियां एक लंबी पाइपलाइन के रीसेट का कारण बनती हैं, जो समग्र प्रदर्शन को बहुत प्रभावित करती है।

बहु. कई सीपीयू स्थापित करना और उनके बीच काम बांटना अक्सर काफी कुशल होता है। लेकिन यह दृष्टिकोण बहुत सस्ता नहीं है - प्रत्येक अतिरिक्त प्रोसेसर सिस्टम की लागत को बढ़ाता है, और एक दोहरी मदरबोर्ड एक नियमित एक की तुलना में बहुत अधिक महंगा है (चार या अधिक सीपीयू का समर्थन करने वाले मदरबोर्ड का उल्लेख नहीं करना)। इसके अलावा, सभी एप्लिकेशन लागत को उचित ठहराने के लिए पर्याप्त मल्टीप्रोसेसिंग से लाभान्वित नहीं होते हैं।

"शुद्ध" मल्टीप्रोसेसिंग के अलावा, कई "मध्यवर्ती" विकल्प हैं जो आपको एप्लिकेशन निष्पादन को गति देने की अनुमति देते हैं:

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

टाइम स्लाइस मल्टीथ्रेडिंग. प्रोसेसर निश्चित अंतराल पर प्रोग्राम थ्रेड्स के बीच स्विच करता है। ओवरहेड कभी-कभी काफी भारी हो सकता है, खासकर अगर कोई प्रक्रिया प्रतीक्षा कर रही हो।

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

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

हाइपर-थ्रेडिंग कैसे काम करता है

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

पहली बार हाइपर-थ्रेडिंग तकनीक को Intel Xeon MP (Foster MP) प्रोसेसर में लागू किया गया था, जिस पर यह "रनिंग इन" था। याद रखें कि Xeon MP, जिसे आधिकारिक तौर पर IDF स्प्रिंग 2002 में प्रस्तुत किया गया था, एक पेंटियम 4 विलमेट कोर का उपयोग करता है, जिसमें 256 KB L2 कैश और 512 KB/1 MB L3 कैश होता है, और 4-प्रोसेसर कॉन्फ़िगरेशन का समर्थन करता है। हाइपर-थ्रेडिंग सपोर्ट वर्कस्टेशन (प्रेस्टोनिया कोर, 512 KB L2 कैश) के लिए Intel Xeon प्रोसेसर में भी मौजूद है, जो Xeon MP से थोड़ा पहले बाजार में आया था। हमारे पाठक पहले से ही Intel Xeon पर दोहरे-प्रोसेसर कॉन्फ़िगरेशन से परिचित हैं, इसलिए हम सैद्धांतिक और व्यावहारिक रूप से इन सीपीयू का उपयोग करके हाइपर-थ्रेडिंग की संभावनाओं पर विचार करेंगे। जैसा भी हो, "सरल" Xeon 4-प्रोसेसर सिस्टम में Xeon MP की तुलना में अधिक सांसारिक और सुपाच्य है ...

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

हाइपर-थ्रेडिंग को लागू करने का एक लक्ष्य केवल एक सक्रिय थ्रेड को सामान्य सीपीयू की गति से चलने देना है। ऐसा करने के लिए, प्रोसेसर के संचालन के दो मुख्य तरीके हैं: सिंगल-टास्क (एसटी) और मल्टी-टास्क (एमटी)। एसटी मोड में, केवल एक तार्किक प्रोसेसर सक्रिय है और उपलब्ध संसाधनों का अविभाजित उपयोग करता है (एसटी0 और एसटी1 मोड); अन्य LP को HALT कमांड द्वारा रोक दिया जाता है। जब दूसरा प्रोग्राम थ्रेड प्रकट होता है, तो निष्क्रिय तार्किक प्रोसेसर सक्रिय हो जाता है (एक रुकावट के माध्यम से) और भौतिक सीपीयू को एमटी मोड में डाल दिया जाता है। एचएएलटी कमांड के साथ अप्रयुक्त एलपी को रोकना ऑपरेटिंग सिस्टम की जिम्मेदारी है, जो अंततः एक थ्रेड के समान तेजी से निष्पादन के लिए जिम्मेदार है जैसा कि हाइपर-थ्रेडिंग के बिना मामले में होता है।

दो एलपी में से प्रत्येक के लिए, तथाकथित आर्किटेक्चर स्टेट (एएस) संग्रहीत किया जाता है, जिसमें विभिन्न प्रकार के रजिस्टरों की स्थिति शामिल होती है - सामान्य उद्देश्य, नियंत्रण, एपीआईसी और सेवा। प्रत्येक एलपी का अपना एपीआईसी (इंटरप्ट कंट्रोलर) और रजिस्टरों का एक सेट होता है, जिसके साथ सही काम के लिए रजिस्टर एलियास टेबल (आरएटी) की अवधारणा पेश की जाती है, जो आठ आईए -32 सामान्य प्रयोजन रजिस्टरों और 128 के बीच पत्राचार को ट्रैक करती है। भौतिक सीपीयू रजिस्टर (प्रत्येक एलपी के लिए एक आरएटी)।

दो थ्रेड चलाते समय, नेक्स्ट इंस्ट्रक्शन पॉइंटर्स के दो संगत सेट समर्थित होते हैं। अधिकांश निर्देश ट्रेस कैश (टीसी) से लिए जाते हैं, जहां वे डीकोडेड रूप में संग्रहीत होते हैं, और दो सक्रिय एलपी प्रत्येक घड़ी में बारी-बारी से टीसी तक पहुंचते हैं। उसी समय, जब केवल एक एलपी सक्रिय होता है, तो यह घड़ियों पर इंटरलीव किए बिना टीसी तक विशेष पहुंच प्राप्त करता है। इसी तरह, माइक्रोकोड रोम तक पहुंच होती है। ITLB ब्लॉक (इंस्ट्रक्शन ट्रांसलेशन लुक-असाइड बफर), जो इंस्ट्रक्शन कैश में आवश्यक निर्देशों की अनुपस्थिति में सक्रिय होते हैं, डुप्लिकेट किए जाते हैं और प्रत्येक को अपने थ्रेड के लिए निर्देश देते हैं। IA-32 निर्देश डिकोड निर्देश डिकोडिंग ब्लॉक साझा किया जाता है और, उस स्थिति में जब दोनों धाराओं के लिए निर्देश डिकोडिंग की आवश्यकता होती है, यह एक-एक करके (फिर से, हर घड़ी) उनकी सेवा करता है। यूओपी क्यू और एलोकेटर ब्लॉक दो में विभाजित हैं, प्रत्येक एलपी के लिए आवंटित आधे तत्वों के साथ। LP0 / LP1 से संबंधित होने के बावजूद 5 पीस के शेड्यूलर डिकोडेड कमांड (Uops) की कतारों को संसाधित करते हैं और आवश्यक निष्पादन इकाइयों द्वारा निष्पादित किए जाने वाले प्रत्यक्ष कमांड - पहले के निष्पादन के लिए तत्परता और दूसरे की उपलब्धता पर निर्भर करते हैं। सभी स्तरों के कैश (Xeon के लिए L1/L2, साथ ही Xeon MP के लिए L3) पूरी तरह से दो LP के बीच साझा किए जाते हैं, हालांकि, डेटा अखंडता सुनिश्चित करने के लिए, DTLB (डेटा ट्रांसलेशन लुक-असाइड बफर) में प्रविष्टियां डिस्क्रिप्टर के साथ आपूर्ति की जाती हैं। तार्किक प्रोसेसर आईडी का रूप।

इस प्रकार, दोनों तार्किक सीपीयू के निर्देशों को एक भौतिक प्रोसेसर के संसाधनों पर एक साथ निष्पादित किया जा सकता है, जो चार वर्गों में विभाजित हैं:

  • डुप्लिकेट (डुप्लिकेट);
  • पूरी तरह से साझा (पूरी तरह से साझा);
  • तत्वों के विवरणकों के साथ (प्रविष्टि टैग की गई);
  • ST0/ST1 या MT के संचालन के तरीके के आधार पर गतिशील रूप से विभाजित (विभाजित)।

हालाँकि, अधिकांश एप्लिकेशन जो मल्टीप्रोसेसर सिस्टम पर त्वरित हो जाते हैं, उन्हें बिना किसी संशोधन के हाइपर-थ्रेडिंग सक्षम सीपीयू पर भी त्वरित किया जा सकता है। लेकिन समस्याएं भी हैं: उदाहरण के लिए, यदि एक प्रक्रिया प्रतीक्षा में है, तो यह भौतिक सीपीयू के सभी संसाधनों को ले सकती है, दूसरे एलपी को काम करने से रोक सकती है। इस प्रकार, हाइपर-थ्रेडिंग का उपयोग करते समय प्रदर्शन कभी-कभी गिर सकता है (20% तक)। इसे रोकने के लिए, इंटेल खाली प्रतीक्षा लूप के बजाय PAUSE निर्देश का उपयोग करने की अनुशंसा करता है (IA-32 में Pentium 4 से शुरू करके पेश किया गया)। संकलन के दौरान कोड के स्वचालित और अर्ध-स्वचालित अनुकूलन पर भी गंभीर काम चल रहा है - उदाहरण के लिए, Intel OpenMP C++ / Fortran Compilers () श्रृंखला के संकलक ने इस संबंध में महत्वपूर्ण प्रगति की है।

हाइपर-थ्रेडिंग के पहले कार्यान्वयन का एक अन्य लक्ष्य, इंटेल के अनुसार, प्रदर्शन में उल्लेखनीय वृद्धि करते हुए ट्रांजिस्टर की संख्या, डाई क्षेत्र और बिजली की खपत में वृद्धि को कम करना था। इस प्रतिबद्धता का पहला भाग पहले ही पूरा किया जा चुका है: Xeon/Xeon MP के लिए हाइपर-थ्रेडिंग समर्थन के जुड़ने से डाई क्षेत्र और बिजली की खपत में 5% से कम की वृद्धि हुई है। दूसरे भाग (प्रदर्शन) के साथ क्या हुआ, हमें अभी जांचना है।

व्यावहारिक भाग

स्पष्ट कारणों से, हमने Xeon MP पर हाइपर-थ्रेडिंग सक्षम के साथ 4-प्रोसेसर सर्वर सिस्टम का परीक्षण नहीं किया। सबसे पहले, यह काफी श्रमसाध्य है। और दूसरी बात, अगर हम इस तरह की उपलब्धि पर फैसला करते हैं, तो यह अभी भी है, आधिकारिक घोषणा के एक महीने से भी कम समय में, इस महंगे उपकरण को प्राप्त करना बिल्कुल अवास्तविक है। इसलिए, दो Intel Xeon 2.2 GHz के साथ खुद को उसी सिस्टम तक सीमित रखने का निर्णय लिया गया, जिस पर इन प्रोसेसरों का पहला परीक्षण किया गया था (लेख की शुरुआत में लिंक देखें)। प्रणाली पर आधारित था मदरबोर्डसुपरमाइक्रो P4DC6+ ( इंटेल चिपसेट i860), में 512 एमबी आरडीआरएएम, एक GeForce3 चिप पर एक वीडियो कार्ड (64 एमबी डीडीआर, डेटोनेटर 21.85 ड्राइवर) शामिल हैं। एचडीडी पश्चिमी डिजिटल WD300BB और 6X DVD-ROM; विंडोज 2000 प्रोफेशनल एसपी2 को ओएस के रूप में इस्तेमाल किया गया था।

सबसे पहले, कुछ सामान्य छापें। स्टार्टअप पर प्रेस्टोनिया कर्नेल के साथ एक ज़ीऑन स्थापित करते समय सिस्टम BIOSदो सीपीयू की उपस्थिति के बारे में एक संदेश प्रदर्शित करता है; यदि दो प्रोसेसर स्थापित हैं, तो उपयोगकर्ता चार सीपीयू के बारे में एक संदेश देखता है। ऑपरेटिंग सिस्टम आम तौर पर "दोनों प्रोसेसर" को पहचानता है, लेकिन केवल तभी जब दो शर्तें पूरी होती हैं।

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

लेकिन अब सभी तैयारियां हो चुकी हैं, और हमारा विंडोज 2000 प्रो पहले से ही दृढ़ता से मानता है कि यह दो-प्रोसेसर सिस्टम पर काम करता है (हालाँकि वास्तव में केवल एक प्रोसेसर स्थापित है)। अब, हमेशा की तरह, परीक्षण के लक्ष्यों को तय करने का समय आ गया है। तो हम चाहते हैं:

  • विभिन्न वर्गों के अनुप्रयोगों के प्रदर्शन पर हाइपर-थ्रेडिंग के प्रभाव का आकलन करें।
  • दूसरे प्रोसेसर को स्थापित करने के प्रभाव से इस आशय की तुलना करें।
  • जाँच करें कि कैसे "काफी" संसाधन सक्रिय तार्किक प्रोसेसर को दिए जाते हैं जब दूसरा एलपी निष्क्रिय होता है।

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

ठीक है, जैसा कि आप देख सकते हैं, इंटेल के वादे यहां पूरे हुए हैं: केवल एक सक्रिय थ्रेड के साथ, दो एलपी में से प्रत्येक का प्रदर्शन हाइपर-थ्रेडिंग के बिना भौतिक सीपीयू के प्रदर्शन के बराबर है। निष्क्रिय एलपी (एलपी0 और एलपी1 दोनों) वास्तव में निलंबित है, और साझा संसाधन, जहां तक ​​​​प्राप्त परिणामों से आंका जा सकता है, पूरी तरह से सक्रिय एलपी के उपयोग के लिए स्थानांतरित कर दिया गया है।

इसलिए, हम पहला निष्कर्ष निकालते हैं: दो तार्किक प्रोसेसर वास्तव में अधिकारों में समान हैं, और हाइपर-थ्रेडिंग को सक्षम करना एक थ्रेड के संचालन में "हस्तक्षेप नहीं करता" (जो अपने आप में बुरा नहीं है)। अब देखते हैं कि क्या यह समावेश "मदद करता है", और यदि हां, तो कहां और कैसे?

प्रतिपादन. 3D-मॉडलिंग पैकेज 3D Studio MAX 4.26, Lightwave 7b और A|W माया 4.0.1 में चार परीक्षणों के परिणाम उनकी समानता के कारण एक आरेख में संयुक्त हैं।

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

फोटोशॉप और एमपी3 एन्कोडिंग. GOGO-no-coda 2.39c कोडेक उन कुछ में से एक है जो SMP का समर्थन करता है, और यह दोहरे प्रोसेसर से 34% प्रदर्शन वृद्धि दर्शाता है। वहीं, इस मामले में हाइपर-थ्रेडिंग का प्रभाव शून्य है (हम 3% के अंतर को महत्वपूर्ण नहीं मानते हैं)। लेकिन फ़ोटोशॉप 6.0.1 (एक स्क्रिप्ट जिसमें कमांड और फिल्टर का एक बड़ा सेट होता है) के साथ परीक्षण में, आप हाइपर-थ्रेडिंग सक्षम होने पर मंदी देख सकते हैं, हालांकि दूसरा भौतिक सीपीयू इस मामले में 12% प्रदर्शन जोड़ता है। यहां, वास्तव में, पहला मामला है जब हाइपर-थ्रेडिंग प्रदर्शन में गिरावट का कारण बनता है ...

पेशेवर ओपनजीएल. यह लंबे समय से ज्ञात है कि SPEC ViewPerf और कई अन्य OpenGL अनुप्रयोग अक्सर SMP सिस्टम पर धीमा हो जाते हैं।

ओपनजीएल और डुअल प्रोसेसर: वे दोस्त क्यों नहीं हैं

लेखों में कई बार हमने पाठकों का ध्यान इस तथ्य की ओर आकर्षित किया कि पेशेवर ओपनजीएल परीक्षण करते समय दोहरे प्रोसेसर प्लेटफॉर्म शायद ही कभी एकल-प्रोसेसर वाले पर कोई महत्वपूर्ण लाभ दिखाते हैं। और क्या अधिक है, ऐसे मामले हैं जब दूसरा प्रोसेसर स्थापित किया जाता है, इसके विपरीत, गतिशील 3 डी दृश्यों को प्रस्तुत करते समय सिस्टम के प्रदर्शन को कम करता है।

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

वास्तव में, हमारी राय में, स्पष्टीकरण बहुत सरल है। जैसा कि आप जानते हैं, एक एप्लिकेशन दो प्रोसेसर पर एक की तुलना में तेजी से चल सकता है यदि:

  • प्रोग्राम थ्रेड्स (थ्रेड्स) को एक साथ निष्पादित करने वाले दो या अधिक से अधिक हैं;
  • ये थ्रेड एक-दूसरे के निष्पादन में हस्तक्षेप नहीं करते हैं - उदाहरण के लिए, वे किसी साझा संसाधन जैसे बाहरी ड्राइव या नेटवर्क इंटरफ़ेस के लिए प्रतिस्पर्धा नहीं करते हैं।

अब, आइए एक सरल नज़र डालें कि ओपनजीएल प्रतिपादन कैसा दिखता है, दो धागे द्वारा किया जाता है। यदि कोई एप्लिकेशन, दो प्रोसेसर को "देखकर", दो ओपनजीएल-रेंडरिंग थ्रेड बनाता है, तो उनमें से प्रत्येक के लिए, ओपनजीएल के नियमों के अनुसार, अपना स्वयं का ग्लो-संदर्भ बनाया जाता है। तदनुसार, प्रत्येक धागा अपने स्वयं के gl संदर्भ में प्रस्तुत करता है। लेकिन समस्या यह है कि जिस विंडो में छवि प्रदर्शित होती है, उसके लिए किसी भी समय केवल एक ग्ल-संदर्भ चालू हो सकता है। तदनुसार, इस मामले में धागे बस "बदले में" उत्पन्न छवि को विंडो में आउटपुट करते हैं, जिससे उनका संदर्भ वैकल्पिक रूप से चालू हो जाता है। कहने की जरूरत नहीं है, इस तरह के "संदर्भ इंटरलीविंग" ओवरहेड के मामले में बहुत महंगा हो सकता है?

इसके अलावा, एक उदाहरण के रूप में, हम ओपनजीएल दृश्यों को प्रदर्शित करने वाले कई अनुप्रयोगों में दो सीपीयू के उपयोग के ग्राफ देंगे। सभी माप निम्न कॉन्फ़िगरेशन वाले प्लेटफ़ॉर्म पर किए गए:

  • एक या दो Intel Xeon 2.2 GHz (हाइपर-थ्रेडिंग अक्षम);
  • 512 एमबी आरडीआरएएम;
  • सुपरमाइक्रो P4DC6+ मदरबोर्ड;
  • ASUS V8200 डीलक्स वीडियो कार्ड (NVidia GeForce3, 64 MB DDR SDRAM, डेटोनेटर 21.85 ड्राइवर);
  • विंडोज 2000 प्रोफेशनल SP2;
  • वीडियो मोड 1280x1024x32 बीपीपी, 85 हर्ट्ज, Vsync अक्षम।

नीला और लाल क्रमशः सीपीयू 0 और सीपीयू 1 लोड ग्राफ हैं। बीच में लाइन अंतिम CPU उपयोग ग्राफ है। तीन ग्राफ़ 3D Studio MAX 4.26 के दो दृश्यों और SPEC ViewPerf परीक्षण (AWadvs-04) के भाग के अनुरूप हैं।


सीपीयू उपयोग: एनिमेशन 3डी स्टूडियो मैक्स 4.26 - एनिबल (मैनिपुलेटर्स के साथ)। मैक्स


CPU उपयोग: एनिमेशन 3D Studio MAX 4.26 - Rabbit.max


सीपीयू उपयोग: स्पेक व्यूपरफ 6.1.2 - AWadvs-04

ओपनजीएल का उपयोग करने वाले कई अन्य अनुप्रयोगों में एक ही पैटर्न दोहराया जाता है। दो प्रोसेसर काम से बिल्कुल भी परेशान नहीं होते हैं, और कुल CPU उपयोग 50-60% के स्तर पर होता है। साथ ही, सिंगल-प्रोसेसर सिस्टम के लिए, इन सभी मामलों में, CPU उपयोग को आत्मविश्वास से 100% के स्तर पर रखा जाता है।

इसलिए यह आश्चर्य की बात नहीं है कि बहुत सारे ओपनजीएल एप्लिकेशन दोहरे सिस्टम पर ज्यादा तेज नहीं होते हैं। खैर, यह तथ्य कि वे कभी-कभी धीमा भी करते हैं, हमारी राय में, पूरी तरह से तार्किक व्याख्या है।

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

सीएडी अनुप्रयोग. पिछले निष्कर्ष की पुष्टि दो सीएडी परीक्षणों के परिणामों से होती है - सॉलिडएज वी10 के लिए एसपीईसीएपीसी और सॉलिडवर्क्स के लिए एसपीईकैप। हाइपर-थ्रेडिंग के लिए इन परीक्षणों का ग्राफ़िक्स प्रदर्शन समान है (हालाँकि सॉलिडएज V10 के लिए SMP सिस्टम के मामले में परिणाम थोड़ा अधिक है)। लेकिन प्रोसेसर को लोड करने वाले CPU_Score परीक्षणों के परिणाम आपको सोचने पर मजबूर करते हैं: SMP से 5-10% की वृद्धि और हाइपर-थ्रेडिंग से 14-19% मंदी।

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

संक्षेप में, या "ध्यान दें, सही प्रश्न"

Hyper-Threading काम करता है, इसमें कोई शक नहीं है. बेशक, तकनीक सार्वभौमिक नहीं है: ऐसे अनुप्रयोग हैं जिनके लिए हाइपर-थ्रेडिंग "खराब हो जाती है", और इस तकनीक के प्रसार के मामले में, उन्हें संशोधित करना वांछनीय होगा। लेकिन क्या MMX और SSE के साथ ऐसा नहीं हुआ और SSE2 के साथ भी ऐसा ही होता रहा है?..

हालांकि, यह हमारी वास्तविकताओं के लिए इस तकनीक की प्रयोज्यता पर सवाल उठाता है। हम हाइपर-थ्रेडिंग के साथ ज़ीऑन पर सिंगल-प्रोसेसर सिस्टम के विकल्प को तुरंत त्याग देंगे (या इसे केवल एक अस्थायी के रूप में मानें, दूसरा प्रोसेसर खरीदने की प्रत्याशा में): यहां तक ​​​​कि 30% प्रदर्शन वृद्धि किसी भी कीमत को उचित नहीं ठहराती है रास्ता - तो एक नियमित पेंटियम 4 खरीदना बेहतर है। बचे हुए सीपीयू की संख्या दो या दो से अधिक है।

अब आइए कल्पना करें कि हम दो-प्रोसेसर Xeon सिस्टम (जैसे, Windows 2000/XP Professional के साथ) खरीद रहे हैं। दो सीपीयू स्थापित हैं, हाइपर-थ्रेडिंग सक्षम है, BIOS चार लॉजिकल प्रोसेसर ढूंढता है, अब चलो चलते हैं ... रुकें। लेकिन हमारा ऑपरेटिंग सिस्टम कितने प्रोसेसर को देखेगा? यह सही है, दो। केवल दो, क्योंकि यह केवल बड़ी संख्या के लिए डिज़ाइन नहीं किया गया है। ये दो भौतिक प्रोसेसर होंगे, यानी सब कुछ ठीक उसी तरह काम करेगा जैसे अक्षम हाइपर-थ्रेडिंग के साथ - धीमा नहीं (दो "अतिरिक्त" लॉजिकल सीपीयू बस बंद हो जाएंगे), लेकिन तेज़ नहीं (अतिरिक्त परीक्षणों द्वारा सत्यापित, परिणाम इसके लिए उद्धृत नहीं हैं उनकी स्पष्टता)। हम्म, ज्यादा मज़ा नहीं ...

क्या बचा है? ठीक है, हमारे कार्य केंद्र पर उन्नत सर्वर या .NET सर्वर स्थापित न करें, वास्तव में? नहीं, सिस्टम स्थापित होगा, सभी चार तार्किक प्रोसेसर को पहचानेगा और कार्य करेगा। बस सर्वर ओएस वर्कस्टेशन को देखता है, इसे हल्के ढंग से रखने के लिए, थोड़ा अजीब (वित्तीय पहलुओं का उल्लेख नहीं करने के लिए)। एकमात्र उचित मामला यह है कि जब हमारा दो-प्रोसेसर ज़ीऑन सिस्टम सर्वर के रूप में कार्य करेगा (कम से कम कुछ बिल्डरों को वर्कस्टेशन ज़ीऑन प्रोसेसर पर सर्वर जारी करने में कोई हिचकिचाहट नहीं है)। लेकिन संबंधित ऑपरेटिंग सिस्टम वाले दोहरे वर्कस्टेशन के लिए, हाइपर-थ्रेडिंग की प्रयोज्यता सवालों के घेरे में है। इंटेल अब तार्किक नहीं, बल्कि भौतिक सीपीयू की संख्या के आधार पर ओएस लाइसेंसिंग की सक्रिय रूप से वकालत कर रहा है। चर्चा अभी भी चल रही है, और सामान्य तौर पर, बहुत कुछ इस बात पर निर्भर करता है कि क्या हम चार प्रोसेसर के समर्थन के साथ एक वर्कस्टेशन ओएस देखते हैं।

खैर, सर्वर के साथ, सब कुछ काफी सरलता से सामने आता है। उदाहरण के लिए, हाइपर-थ्रेडिंग सक्षम के साथ दो-सॉकेट Xeon सिस्टम पर स्थापित एक Windows 2000 उन्नत सर्वर चार तार्किक प्रोसेसर को देखेगा और उस पर सुचारू रूप से चलेगा। हाइपर-थ्रेडिंग सर्वर सिस्टम में क्या लाता है, इसका मूल्यांकन करने के लिए, हम Xeon MP और कई Microsoft सर्वर अनुप्रयोगों पर दो-प्रोसेसर सिस्टम के लिए Intel माइक्रोप्रोसेसर सॉफ़्टवेयर लैब्स के परिणाम प्रस्तुत करते हैं।

दो-प्रोसेसर सर्वर के लिए "मुफ़्त में" 20-30% का एक प्रदर्शन बढ़ावा आकर्षक से अधिक है (विशेषकर "वास्तविक" 4-प्रोसेसर सिस्टम खरीदने की तुलना में)।

तो यह पता चला है कि फिलहाल हाइपर-थ्रेडिंग की व्यावहारिक प्रयोज्यता केवल सर्वरों में ही संभव है। वर्कस्टेशन के साथ समस्या ओएस लाइसेंसिंग के समाधान पर निर्भर करती है। हालांकि हाइपर-थ्रेडिंग का एक और अनुप्रयोग काफी वास्तविक है - यदि डेस्कटॉप प्रोसेसर को इस तकनीक के लिए समर्थन मिलता है। उदाहरण के लिए (आइए कल्पना करें) हाइपर-थ्रेडिंग समर्थन वाले पेंटियम 4 सिस्टम में क्या गलत है, जिस पर एसएमपी समर्थन के साथ विंडोज 2000/एक्सपी प्रोफेशनल स्थापित है? - सर्वर से लेकर डेस्कटॉप और मोबाइल सिस्टम तक।