आप मल्टी-कोर प्रोसेसर पर प्रोसेसर की गति की गणना कैसे करते हैं?
किफायती उपभोक्ता ग्रेड मल्टी-कोर प्रोसेसर का आगमन कई उपयोगकर्ताओं के लिए सवाल खड़ा करता है: आप मल्टी-कोर सिस्टम की वास्तविक गति की प्रभावी रूप से गणना कैसे करते हैं? क्या 4-कोर 3Ghz सिस्टम वास्तव में 12Ghz है? हम जांच के रूप में पढ़ें.
आज का प्रश्न और उत्तर सत्र सुपरयूज़र के सौजन्य से आता है-स्टैक एक्सचेंज का एक उपखंड, क्यू एंड ए वेब साइटों की एक सामुदायिक-ड्राइव ग्रुपिंग।.
प्रश्न
SuperUser रीडर NReilingh उत्सुक था कि मल्टी-कोर सिस्टम के लिए प्रोसेसर की गति वास्तव में कैसे गणना की जाती है:
क्या यह कहना सही है, उदाहरण के लिए, कि 3 जीएचजेड पर चलने वाले चार कोर के साथ एक प्रोसेसर वास्तव में 12GHz पर चलने वाला प्रोसेसर है?
मैं एक बार एक "मैक बनाम पीसी" तर्क में शामिल हो गया (जो वैसे भी इस विषय का ध्यान नहीं है ... जो कि मिडिल स्कूल में था) एक परिचित के साथ, जिसने जोर देकर कहा कि मैक को केवल 1Ghz मशीनों के रूप में विज्ञापित किया जा रहा था क्योंकि वे दोहरे थे -प्रोसेसर G4s प्रत्येक 500MHz पर चल रहा है.
जिस समय मुझे पता था कि यह उन कारणों के लिए हॉगवॉश है, जो मुझे लगता है कि ज्यादातर लोगों के लिए स्पष्ट हैं, लेकिन मैंने इस वेबसाइट पर "6 कोर x 0.2GHz = 1.2Ghz" के प्रभाव के बारे में एक टिप्पणी देखी और मुझे इस बारे में फिर से विचार करना पड़ा कि क्या इसका वास्तविक उत्तर है.
तो, यह घड़ी की गति गणना के शब्दार्थों के बारे में अधिक या कम दार्शनिक / गहन तकनीकी प्रश्न है। मुझे दो संभावनाएँ दिखती हैं:
- प्रत्येक कोर वास्तव में प्रति सेकंड एक्स गणना कर रहा है, इस प्रकार गणना की कुल संख्या x (कोर) है.
- घड़ी की गति बल्कि चक्रों की संख्या की एक गिनती है जो प्रोसेसर एक दूसरे के स्थान पर जाता है, इसलिए जब तक सभी कोर एक ही गति से चल रहे हैं, प्रत्येक घड़ी चक्र की गति समान रहती है, चाहे कितने कोर मौजूद हों । दूसरे शब्दों में, Hz = (core1Hz + core2Hz +…) / कोर.
तो कुल घड़ी की गति को निरूपित करने का उपयुक्त तरीका क्या है और इससे भी महत्वपूर्ण बात यह है कि क्या मल्टी-कोर सिस्टम पर सिंगल-कोर स्पीड नामकरण का उपयोग करना संभव है?
उत्तर
सुपरयूजर योगदानकर्ता मोकुबई स्पष्ट चीजों को ऊपर लाने में मदद करता है। वह लिखता है:
क्वाड-कोर 3GHz प्रोसेसर का मुख्य कारण कभी भी एक 12GHz सिंगल कोर जितना तेज़ नहीं होता है, यह करने के लिए कि प्रोसेसर पर चलने वाला कार्य कैसे होता है, यानी सिंगल-थ्रेडेड या मल्टी-थ्रेडेड। जब आप चल रहे कार्यों के प्रकारों पर विचार कर रहे हैं, तो Amdahl का कानून महत्वपूर्ण है.
यदि आपके पास एक कार्य है जो स्वाभाविक रूप से रैखिक है और इसे ठीक-ठीक चरण-दर-चरण किया जाना है जैसे कि (एक साधारण कार्यक्रम)
10: ए = ए + 1
20: गोटो 10
तब कार्य पिछले पास के परिणाम पर अत्यधिक निर्भर करता है और मान को दूषित किए बिना स्वयं की कई प्रतियां नहीं चला सकता है
'ए'
जैसा कि प्रत्येक प्रति का मूल्य मिल रहा होगा'ए'
अलग-अलग समय पर और इसे अलग तरह से लिखते हुए। यह कार्य को एक ही थ्रेड के लिए प्रतिबंधित करता है और इस प्रकार यह कार्य कभी भी किसी भी समय केवल एक ही कोर पर चल सकता है, यदि इसे कई कोर पर चलाना है तो सिंक्रोनाइज़ेशन भ्रष्टाचार होगा। यह इसे दोहरे कोर सिस्टम के सीपीयू पावर के 1/2 या एक क्वाड कोर सिस्टम में 1/4 तक सीमित करता है.अब एक काम ले लो जैसे:
10: ए = ए + 1
20: बी = बी + 1
30: सी = सी + 1
40: डी = डी + 1
50: गोटो 10
ये सभी लाइनें स्वतंत्र हैं और इन्हें पहले की तरह 4 अलग-अलग कार्यक्रमों में विभाजित किया जा सकता है और एक ही समय में चलाया जा सकता है, प्रत्येक एक बिना किसी समकालिक समस्या के एक कोर की पूर्ण शक्ति का प्रभावी उपयोग करने में सक्षम है, यह वह जगह है जहां अमदहल का नियम है इसमें आता है.
तो अगर आपके पास एक थ्रेडेड एप्लिकेशन है जो ब्रूट फोर्स कैलकुलेशन करता है तो सिंगल 12GHz प्रोसेसर हाथ से जीत जाएगा, अगर आप किसी तरह टास्क को अलग-अलग हिस्सों में बांट सकते हैं और मल्टी-थ्रेडेड हो सकते हैं तो 4 कोर के करीब आ सकते हैं, लेकिन काफी पहुंच नहीं है Amdahl के नियम के अनुसार समान प्रदर्शन.
एक मल्टी सीपीयू सिस्टम आपको मुख्य चीज देता है वह है जवाबदेही। एक सिंगल कोर मशीन पर जो कड़ी मेहनत कर रहा है, सिस्टम सुस्त लग सकता है क्योंकि ज्यादातर समय एक काम के द्वारा इस्तेमाल किया जा सकता है और दूसरे काम केवल बड़े काम के बीच में कम फटने पर चलते हैं, जिसके परिणामस्वरूप एक प्रणाली सुस्त या न्यायपूर्ण लगती है । मल्टी-कोर सिस्टम पर भारी कार्य को एक कोर मिलता है और अन्य सभी कार्य अन्य कोर पर खेलते हैं, अपने काम जल्दी और कुशलता से करते हैं.
"6 कोर x 0.2GHz = 1.2Ghz" का तर्क हर स्थिति में बकवास है, सिवाय इसके कि जहां कार्य पूरी तरह से समानांतर और स्वतंत्र हैं। ऐसे कार्यों की एक अच्छी संख्या है जो अत्यधिक समानांतर हैं, लेकिन उन्हें अभी भी कुछ प्रकार के सिंक्रनाइज़ेशन की आवश्यकता होती है। हैंडब्रेक एक वीडियो ट्रांसकोडर है जो उपलब्ध सभी सीपीयू का उपयोग करने में बहुत अच्छा है, लेकिन इसमें डेटा से भरे हुए अन्य थ्रेड्स को रखने और उनके साथ किए गए डेटा को इकट्ठा करने के लिए एक मुख्य प्रक्रिया की आवश्यकता होती है।.
- प्रत्येक कोर वास्तव में प्रति सेकंड एक्स गणना कर रहा है, इस प्रकार गणना की कुल संख्या x (कोर) है.
प्रत्येक कोर x गणना करने में सक्षम है प्रति सेकंड, कार्यभार संभालने के लिए उपयुक्त है समानांतर, एक रैखिक कार्यक्रम पर आपके पास 1 कोर है.
- घड़ी की गति बल्कि चक्रों की संख्या की एक गिनती है जो प्रोसेसर एक दूसरे के स्थान पर जाता है, इसलिए जब तक सभी कोर एक ही गति से चल रहे हैं, प्रत्येक घड़ी चक्र की गति समान रहती है, चाहे कितने कोर मौजूद हों । दूसरे शब्दों में, Hz = (core1Hz + core2Hz +…) / कोर.
मुझे लगता है कि 4 x 3 जीएचजेड = 12 गीगाहर्ट्ज के गणित को काम करने के लिए यह सोचना एक गिरावट है, लेकिन आप सेब की तुलना संतरे से कर रहे हैं और सिर्फ सही नहीं हैं, हर स्थिति के लिए गीगाहर्ट्ज को एक साथ नहीं जोड़ा जा सकता है। मैं इसे 4 x 3GHz = 4 x 3GHz में बदल दूंगा.
स्पष्टीकरण में कुछ जोड़ना है? टिप्पणियों में ध्वनि बंद। अन्य टेक-सेवी स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक उत्तर पढ़ना चाहते हैं? पूरी चर्चा धागा यहाँ देखें.