मैं 24 कोर के साथ साझा लिनक्स कंप्यूटर पर बड़े पैमाने पर समांतर वैज्ञानिक कंप्यूटिंग नौकरियां चलाता हूं। ज्यादातर समय मेरी नौकरियां 24 कोर तक स्केल करने में सक्षम होती हैं जब इस कंप्यूटर पर कुछ भी नहीं चल रहा है। हालांकि, ऐसा लगता है कि यहां तक कि एक सिंगल थ्रेडेड जॉब जो मेरा नहीं है, मेरी 24-थ्रेड जॉब्स (जो मैंने उच्च अच्छे मूल्यों के लिए सेट की है) केवल ~ 1800% सीपीयू (लिनक्स नोटेशन का उपयोग करके) प्राप्त करने में कामयाब होती है। इस बीच, लगभग 500% CPU चक्र (फिर से, लिनक्स नोटेशन का उपयोग करके) निष्क्रिय हैं। क्या कोई इस व्यवहार को समझा सकता है और मैं उन 23 कोरों को प्राप्त करने के लिए इसके बारे में क्या कर सकता हूं जिनका उपयोग किसी और द्वारा नहीं किया जा रहा है?लिनक्स 2.6.31 शेड्यूलर और मल्टीथ्रेडेड जॉब्स
नोट्स:
मामले में यह प्रासंगिक है, मैं इस पर गौर किया थोड़ा अलग कर्नेल संस्करणों, हालांकि मैं जो मेरे सिर के ऊपर से याद नहीं कर सकते।
सीपीयू आर्किटेक्चर x64 है। क्या यह संभव है कि तथ्य यह है कि मेरी 24-कोर नौकरियां 32-बिट हैं और अन्य नौकरियां जो मैं प्रतिस्पर्धा कर रहा हूं/64-बिट प्रासंगिक हैं?
संपादित करें: एक बात मैंने अभी देखा है कि 30 धागे तक जाने से समस्या कुछ हद तक कम हो जाती है। यह मुझे ~ 2100% सीपीयू तक ले जाता है।
केवल उन्हीं प्रक्रियाओं को पुन: नज़रअंदाज़ करते हैं जिन्हें आप _own_ करते हैं, यदि केवल एक ही प्रक्रिया चल रही है जो n धागे को स्पॉन्स करता है .. अच्छा .. आप केवल एक ही प्रक्रिया के साथ प्रतिस्पर्धा करते हैं। क्या इस मशीन पर रूट/सूडो उपलब्ध है? –
क्या होता है यदि आप 23 धागे तक गिर जाते हैं, तो दूसरी नौकरी के लिए एक कोर उपलब्ध है? – caf