जवाबों:
Opterons और Nelahem (55xx और बाद में) Xeons में NUMA आर्किटेक्चर है - प्रत्येक सॉकेट की अपनी मेमोरी बस होती है और सॉकेट्स के बीच एक लिंक होता है। इस लिंक को ओपर्टन सिस्टम पर हाइपरट्रांसपोर्ट और एक्सॉन पर क्विकपथ कहा जाता है। G5, Nhemhem को दर्शाता है और अभी भी पुराने फ्रंट साइड बस का उपयोग करता है, जो NUMA आर्किटेक्चर नहीं है।
Opterons और 35xx / 55xx या बाद के Xeons एक शुद्ध NUMA एड्रेसिंग मोड का उपयोग कर सकते हैं, जहाँ प्रत्येक सॉकेट की मेमोरी भौतिक एड्रेस स्पेस के एक सन्निहित भाग में रहती है। यदि आप एक ऐसे एप्लिकेशन को चलाना चाहते हैं जो NUMA अवगत है (जैसे प्रोसेसर संबंध के लिए समर्थन) तो आप इस मोड में चलाने के लिए सिस्टम सेट कर सकते हैं।
इस प्रकार के सिस्टम में एक विरासत मोड भी होता है, जहां व्यक्तिगत 4K पेज सॉकेट्स में वैकल्पिक होते हैं, इसलिए मेमोरी एक्सेस को सॉकेट्स के बीच बारीक रूप से मिलाया जाता है। यह एक मामूली प्रदर्शन ओवरहेड है क्योंकि सभी मेमोरी एक्सेस में से आधे को हाइपरट्रांसपोर्ट बस से दूसरे सॉकेट (क्वीनथ के मामले में क्विकपथ) तक जाना पड़ता है। हालाँकि, अधिकांश एक्सेस को कैश किया जाएगा, ताकि परफ्यूम ओवरहेड अपेक्षाकृत छोटा हो।
यह मोड सिस्टम को गैर-एनयूएमए-जागरूक अनुप्रयोगों को कुशलतापूर्वक चलाने की अनुमति देता है, और आमतौर पर डिफ़ॉल्ट मोड है जो सिस्टम बूट करता है। आम तौर पर आप इसे BIOS में कॉन्फ़िगर कर सकते हैं।
आपका G5 NUMA मोड में नहीं चलेगा क्योंकि इसमें फ्रंट-साइड बस आर्किटेक्चर है। FSB एक एकल बस है जिसे मेमोरी और सभी प्रोसेसर सॉकेट्स द्वारा साझा किया जाता है, इसलिए इसमें समान मेमोरी एक्सेस विशेषताएँ हैं, अर्थात NUMA नहीं। मैं किसी भी विंटेल या लिंटेल एप्लिकेशन से अवगत नहीं हूं जो NUMA आर्किटेक्चर पर निर्भर हैं; संभावना है कि एप्लिकेशन को NUMA की आवश्यकता नहीं है, लेकिन यदि मौजूद है तो उसका समर्थन करेगा। आप संभवतः अपने पुराने G5 सिस्टम पर एप्लिकेशन चला सकते हैं। क्या यह पुनरावृत्ति है आवेदन पर निर्भर करता है और आप क्या हासिल करना चाहते हैं।
अनुप्रयोगों में NUMA समर्थन
कुछ एप्लिकेशन (SQL सर्वर एक उदाहरण है) मेमोरी, I / O उपयोग और शेड्यूलिंग का अनुकूलन करके महत्वपूर्ण प्रदर्शन लाभ का एहसास कर सकता है ताकि गैर-स्थानीय पहुंच के लिए दंड को कम किया जा सके। एक आवेदन में NUMA समर्थन को लागू करने के लिए ऑपरेटिंग सिस्टम से उपलब्ध सहायक सुविधाओं की आवश्यकता होती है, जैसे:
शेड्यूलर आत्मीयता: एक थ्रेड को एक पूल में रखा जा सकता है जिसमें एक या एक प्रोसेसर के समूह पर शेड्यूल करने की प्राथमिकता होती है। ध्यान दें कि NUMA में एक ही मेमोरी बस में एक से अधिक प्रोसेसर हो सकते हैं - मल्टी-कोर ओपर्टन या ज़ीऑन के मामले में एक ही मरने पर कोर एक ही बस को साझा करते हैं। यह थ्रेड को स्थानीय मेमोरी का अनुरोध करने या सीपीयू पूल के लिए मेमोरी लोकल के पूल का उपयोग करने की अनुमति देता है। इसके अलावा, जब एक थ्रेड को स्थानीय सीपीयू पर रखा जाता है तो यह कैश थ्रैशिंग को कम कर देता है जैसे कि थ्रेड अनुसूचित है - काम करने वाला सेट सिर्फ उस विशेष कोर का उपयोग करके थ्रेड्स का काम करने वाला सेट है।
मेमोरी आत्मीयता: एक धागा मेमोरी का अनुरोध कर सकता है और यह निर्दिष्ट कर सकता है कि यह मेमोरी लोकल से सॉकेट में उपलब्ध होना चाहिए या होना चाहिए। एक ही बस में मेमोरी और सीपीयू का उपयोग करते रहना गैर-स्थानीय मेमोरी एक्सेस के ओवरहेड को कम करता है। आधुनिक NUMA सिस्टम पर ओवरहेड इतना महान नहीं है, लेकिन पुराने सिस्टमों पर गैर-स्थानीय पहुंच बहुत जल्दी थी जैसे कि प्रारंभिक अनुक्रम गियर।
I / O आत्मीयता: परिधीय बसों को एक स्थानीय सीपीयू से जोड़ा जा सकता है, इसलिए I / O हैंडलिंग प्रोसेसर पर शेड्यूल किया जा सकता है जो I / O के करीब हैं। अधिकांश NUMA सिस्टम में कई I / O busses हैं, इसलिए स्थानीय मेमोरी को बाधित करने वाले हैंडलर और DMA को I / O प्रदर्शन में कुछ लाभ मिलता है।