में साझा मूल्य मैं प्रदर्शन-महत्वपूर्ण स्क्रिप्ट विकसित करने के लिए समानांतर पाइथन का उपयोग कर रहा हूं। मैं सिस्टम पर चल रही 8 प्रक्रियाओं के बीच एक मान साझा करना चाहता हूं। कृपया छोटे उदाहरण से क्षमा करें लेकिन यह मेरे प्रश्न को दिखाता है।समानांतर पायथन
def findMin(listOfElements):
for el in listOfElements:
if el < min:
min = el
import pp
min = 0
myList = range(100000)
job_server = pp.Server()
f1 = job_server.submit(findMin, myList[0:25000])
f2 = job_server.submit(findMin, myList[25000:50000])
f3 = job_server.submit(findMin, myList[50000:75000])
f4 = job_server.submit(findMin, myList[75000:100000])
पीपी दस्तावेज़ प्रक्रियाओं में डेटा साझा करने के तरीके का वर्णन नहीं करते हैं। क्या यह संभव है?
यदि हां, तो क्या एक मानक लॉकिंग तंत्र (जैसे थ्रेडिंग मॉड्यूल में) है यह पुष्टि करने के लिए कि एक समय में केवल एक अपडेट किया जाता है?
l = Lock()
if(el < min):
l.acquire
if(el < min):
min = el
l.release
मैं समझता हूँ कि मैं मुख्य थ्रेड में एक स्थानीय मिनट रख सकता है और तुलना 4 एक बार लौट आए, लेकिन मूल्य साझा करते हुए मैं अपने BFS द्विआधारी पेड़ से कुछ बेहतर छंटाई कर सकते हैं और संभवतः पाश पुनरावृत्तियों का एक बहुत बचाने के लिए ।
धन्यवाद
जोनाथन