जब मैं (फिर से) एक डेस्कटॉप / लैपटॉप कंप्यूटर पर बड़े सिस्टम का निर्माण करता हूं, तो मैं makeसंकलन गति को बढ़ाने के लिए एक से अधिक थ्रेड का उपयोग करने के लिए कहता हूं , जैसे:
$ make -j$[ $K * $C ]
कहाँ $Cकी संख्या का संकेत माना जाता है कोर , मशीन है (जिसे हम एक अंक के साथ एक नंबर होने के लिए मान सकते हैं), जबकि $Kकुछ मैं से भिन्न है 2करने के लिए 4, मेरे मूड पर निर्भर करता है।
इसलिए, उदाहरण के लिए, मैं कह सकता हूं कि make -j12अगर मेरे पास 4 कोर हैं, तो make12 धागे तक उपयोग करने का संकेत मिलता है ।
मेरा तर्क यह है कि अगर मैं केवल $Cधागे का उपयोग करता हूं , तो कोर बेकार हो जाएगा जबकि प्रक्रियाएं ड्राइव से डेटा लाने में व्यस्त हैं। लेकिन अगर मैं थ्रेड्स की संख्या (यानी make -j) को सीमित नहीं करता हूं, तो मैं समय स्विचिंग संदर्भों को बर्बाद करने के लिए जोखिम को चलाता हूं, स्मृति से बाहर चला जाता हूं, या इससे भी बदतर । मान लेते हैं कि मशीन में $Mमेमोरी की गिग्स है (जहां $M10 के क्रम में है)।
इसलिए मैं सोच रहा था कि चलाने के लिए सबसे कुशल थ्रेड चुनने के लिए एक स्थापित रणनीति है या नहीं।
