मैं वर्तमान में बहु-कोर नोड्स पर चल रहे कोड लिखने के लिए ओपनएमपी का उपयोग कर रहा हूं। ओपनएमपी में एक विशिष्ट मेमोरी मॉडल है जो गारंटी देता है कि लॉक अधिग्रहित होने पर विभिन्न कोरों पर चलने वाले धागे के बीच स्मृति सिंक्रनाइज़ होती है।क्या इंटर-प्रोसेसर कोड में `std :: mutex` और` std :: lock` गारंटी स्मृति सिंक्रनाइज़ेशन है?
मैं बजाय OpenMP की (उनके बड़े लचीलेपन के कारण) सी ++ 11 निर्माणों (std::mutex
और std::lock
साथ std::thread
) का उपयोग करने पर विचार करें और आश्चर्य है कि अगर प्रोसेसर के बीच/कैसे स्मृति तुल्यकालन यहाँ की गारंटी है? और यदि नहीं, तो मैं इसे कैसे लागू कर सकता हूं?
आपका प्रश्न थोड़ा स्पष्ट नहीं है (कहाँ "के साथ सिंक्रनाइज़" एक विशिष्ट अवधि के $ 1.10 में विस्तार से बताया है, हालांकि यह बहुत आसान समझने के लिए है कार्रवाई में पढ़ने सी ++ संगामिति से होता है)। यह लगभग आपके पूछने की तरह दिखता है कि बहुप्रचारित प्रोग्रामिंग कैसे करें। –
कुछ सिंक्रनाइज़ेशन की गारंटी है, कुछ नहीं है। यह सवाल वास्तव में अस्पष्ट है। – jpalecek
क्या आपका मतलब है 'म्यूटेक्स' की मेमोरी सिंक्रनाइज़ेशन या म्यूटेक्स द्वारा संरक्षित कोड में डेटा एक्सेस करता है? – KillianDS