2013-01-23 7 views
6

के साथ वितरित संकलन क्या आपको कोई विचार है कि वितरित बिटबेक संकलन के साथ एक ओई प्रोजेक्ट कैसे बनाया जाए? मैंने distcc के बारे में सोचा है।बिटबेक

export PATH=~/distcc/bin:$PATH 
make -jn CC=linux-gcc 

मेक मेरे पथ से लिनक्स-जीसीसी को कॉल करेगा जो distcc को इंगित करता है।
distcc सभी ज्ञात होस्टों को कार्यों को शेड्यूल करेगा।
-jn बनाने के एन 6 उदाहरण बनाएगा।
यह ठीक काम करता है।
लेकिन अब मैं बिटबेक के साथ distcc का उपयोग करना चाहता हूँ।
मुझे पता है कि बिटबैक के साथ -जेएन का उपयोग कैसे करें।
बस export PARALLEL_MAKE=-jn

का उपयोग लेकिन यह कैसे bitbake साथ निर्यात PATH=~/distcc/bin:$PATH उपयोग करने के लिए।
distcc/bin$PATH के सामने खड़े रहना चाहिए।
लेकिन बिटबेक (org.openembedded.dev/conf/bitbake.conf में रखा गया है) $PATH के सामने रखेगा।

या किसी को बिटबैक के साथ वितरित भवन के बेहतर तरीके के लिए एक और उपकरण मिला है?

+0

निर्यात आदेश $ पथ चर को दिया पथ जोड़ देगा और उस सत्र में सक्रिय हो जाएगा । लेकिन मैं आपकी समस्या के बारे में स्पष्ट नहीं हूं। क्या आप अपनी समस्या की व्याख्या कर सकते हैं –

+0

समस्या यह है कि मैं सिर्फ PARALLEL_MAKE का उपयोग करने के बारे में जानता हूं, लेकिन जब बिटबैक की बात आती है, तो आखिरकार कौन कॉल करता है, मुझे कोई विचार नहीं मिला कि इसे PARALLEL_MAKE तरीके से काम करने के लिए कैसे कॉन्फ़िगर किया जाए। – butter

उत्तर

1

समांतरता के साथ निर्माण का एक और अधिक बिटबैक-इश तरीका स्थानीय.कॉम को संपादित करना और बीबी_NUMBER_THREADS और PARALLEL_MAKE को अन-टिप्पणी करना है और अपने मानों को आपके पास कोर की संख्या से दोगुना करना है। अब, जब भी आप बिटबैक का आह्वान करते हैं, तो यह इन मानों का उपयोग करेगा।

+0

मैंने बीबी_NUMBER_THREADS तरीकों का प्रयास किया है, लेकिन इसे एकल मशीन में बहुत अच्छा सुधार नहीं हुआ है। याद रखें कि ओएस ने मेक थ्रेड को सीमित कर दिया है – butter

11

कोशिश आइस क्रीम: https://github.com/icecc/icecream/blob/master/README.md

distcc तरह

, आइस क्रीम निर्माण से नौकरियों संकलन लेता है और एक समानांतर निर्माण की इजाजत दी दूरस्थ मशीनों के बीच वितरित करता है। लेकिन distcc के विपरीत, Icecream एक केंद्रीय सर्वर का उपयोग करता है जो गतिशील रूप से संकलन नौकरियों को सबसे तेज़ मुफ्त सर्वर पर शेड्यूल करता है।

ओपनएम्बेड और योक्टो प्रोजेक्ट दोनों आइसक्रीम का समर्थन करते हैं। देखें https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass

आइस क्रीम स्थापित करें, तो अपने site.conf या local.conf के लिए निम्न जोड़ने

INHERIT += "icecc" 

# This value overrides PARALLEL_MAKE when ICECC is enabled 
# This would enable icecc for local and cross 
ICECC_PARALLEL_MAKE = "-j 24"