मैं यहां कुछ कार्यक्रम संकलित कर रहा हूं और मेरे पास 4 कोर हैं। वहाँ बताने के लिए एक तरीका है make, cmakeया gccसभी कोर या उस प्रभावित करने के लिए कुछ का उपयोग कर संकलन करने के लिए?
मैं यहां कुछ कार्यक्रम संकलित कर रहा हूं और मेरे पास 4 कोर हैं। वहाँ बताने के लिए एक तरीका है make, cmakeया gccसभी कोर या उस प्रभावित करने के लिए कुछ का उपयोग कर संकलन करने के लिए?
जवाबों:
यदि कोई पैकेज इसका समर्थन करता है, तो आप -jध्वज का उपयोग समानांतर नौकरियों को चलाने के लिए कर सकते हैं , जैसे:
make -j8
इस ध्वज के बारे में अधिक जानकारी स्टैकेवरफ्लो प्रश्न में पाई जा सकती है कि जब यह उपलब्ध कोर की संख्या से बड़ी संख्या में पारित हो जाता है तो मेक-जे बेहतर प्रदर्शन क्यों करता है? ।
यदि आपके पास कई मशीनें हैं, तो डिस्टेक को जाएं। शामिल मशीनों पर, sudo apt-get install distcc। यह मानते हुए कि आपकी निर्माण मशीन 192.168.1.1 है:
सहायक मशीनों पर, भागो:
sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
बिल्ड मशीन पर, चलाने से पहले configureया cmakeआपको मेजबानों को निर्दिष्ट करना होगा जिसे आप निर्माण प्रक्रिया के लिए उपयोग करना चाहते हैं। वैकल्पिक रूप से, स्लैश के बाद एक साथ नौकरियों की संख्या निर्दिष्ट करें (4 के लिए डिफ़ॉल्ट):
export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
कंपाइलर का उपयोग डिस्टेक करें:
export PATH="/usr/lib/distcc:$PATH"
अब configureया cmakeआवेदन और के साथ निर्माण:
make -j$(distcc -j)
ध्यान दें कि यदि आपने /usr/lib/distccदो बार अपने पैट में डाल दिया है , तो यह विफल हो जाएगा। /usr/lib/distccअपने में केवल एक बार सेट करना सुनिश्चित करें PATH।
अधिक जानकारी के लिए, distcc (1) और distccd (1) के लिए मैनुअल पेज देखें ।
distccd --user nobody। अन्यथा, यह उस उपयोगकर्ता के अधीन चलेगा जिसने इसे निष्पादित किया है।