गैर-NUMA/मानक पीसी पर मेरे अनुप्रयोगों की गति को बढ़ाने की कोशिश करते समय मैंने हमेशा पाया कि बाधा malloc()
पर कॉल थी क्योंकि बहु-कोर मशीनों में भी यह सभी कोरों के बीच साझा/सिंक होता है।क्या malloc/memcpy फ़ंक्शन NUMA पर स्वतंत्र रूप से चलते हैं?
मैं उपलब्ध लिनक्स और सी और का उपयोग कर NUMA वास्तुकला के साथ एक पीसी है मैं दो प्रश्न हैं: के बाद से प्रत्येक कोर अपनी ही स्मृति प्रदान की जाती है,
- एक NUMA मशीन में,
malloc()
प्रत्येक कोर पर स्वतंत्र रूप से निष्पादित करेंगे/अन्य कोर अवरुद्ध किए बिना स्मृति? - इन आर्किटेक्चर में
memcpy()
पर कॉल कैसे की जाती हैं? क्या इसे प्रत्येक कोर पर स्वतंत्र रूप से कहा जा सकता है या इसे कोर में बुलाकर कोर को दूसरों को अवरुद्ध कर दिया जाएगा? मैं शायद गलत लेकिन मुझे याद है किmemcpy()
कोmalloc()
की एक ही समस्या मिली है, यानी जब एक कोर इसका उपयोग कर रहा है तो दूसरों को इंतजार करना होगा। अलग प्रक्रियाओं में malloc के लिए
हाय ब्रायन। बहुत बहुत धन्यवाद। क्या आप किसी भी अच्छी मॉलोक लाइब्रेरी से अवगत हैं जो NUMA को अवगत है? मैंने गुगल किया और मुझे एमपीसी मिली ... क्या यह आपकी राय में अच्छा है? –
दुर्लभ समय में मैं NUMA-aware होने के लिए कुछ लिख रहा हूं, मैं वर्चुअलअलोकएक्सनुमा (विंडोज) या libnuma (linux) का उपयोग कर ओएस से सीधे अपनी याददाश्त आवंटित करता हूं। – Brian
बहुत बहुत धन्यवाद मैं इसे आज़मा दूंगा। –