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