मैं सी # समानांतर का उपयोग कर रहा हूं। डेटा के हजार से अधिक सबसेट को संसाधित करने के लिए। सेट के आकार के आधार पर, एक सेट को प्रक्रिया में 5-30 मिनट लगते हैं। मेरे कंप्यूटर मेंसी # समांतर फोरैच समान रूप से परिष्कृत कार्य
ParallelOptions po = new ParallelOptions();
po.MaxDegreeOfParallelism = Environment.ProcessorCount
मुझे 8 समांतर प्रक्रियाएं मिलेंगी। जैसा कि मैंने समझा, प्रक्रियाओं को समांतर कार्यों के बीच समान रूप से विभाजित किया गया है (उदाहरण के लिए पहला कार्य नौकरियां संख्या 1,9,17 आदि प्राप्त होता है, दूसरा 2,10,18 आदि प्राप्त होता है); इसलिए, एक कार्य दूसरों की तुलना में जल्द ही अपनी नौकरी खत्म कर सकता है। क्योंकि डेटा के उन सेटों ने दूसरों की तुलना में कम समय लिया।
समस्या यह है कि चार समांतर कार्य 24 घंटे के भीतर अपनी नौकरी खत्म करते हैं, लेकिन अंतिम 48 घंटों में खत्म होता है। क्या समांतरता को व्यवस्थित करने का कोई मौका है ताकि सभी समांतर कार्य समान रूप से खत्म हो रहे हों? इसका मतलब है कि सभी समांतर कार्य तब तक काम करना जारी रखते हैं जब तक कि सभी नौकरियां नहीं की जातीं?
सबसे लंबा कार्य कब तक करता है? – dasblinkenlight
सबसे लंबा एकल लूप 30 मिनट तक है और सबसे लंबे समय तक समानांतर कार्य के लिए कुल प्रोसेसिंग 48 घंटे लगती है। – Allan