2009-12-27 18 views
16

क्या कोई सॉफ़्टवेयर लिनक्स में उपलब्ध है जो एक स्रोत कोड को संकलित करता है जिसमें बहुआयामी या वितरित सिस्टम पर समान रूप से बड़ी संख्या में फ़ाइलें होती हैं। जीसीसी या एक्ससेवर जैसे पुस्तकालयों में यूनिकोर/दोहरी मशीन पर संकलन के लिए बहुत समय लगता है और जब आपको बहुत सारे पुनर्मूल्यांकन की आवश्यकता होती है तो अधिकांश बार निराशा होती है। क्या ऐसे स्रोत कोड को समानांतर करने के लिए कोई तकनीक है?मल्टीकोर या वितरित सिस्टम पर संकलन कार्यक्रम

+0

संबंधित: http: // stackoverflow। कॉम/प्रश्न/414714/संकलन-साथ-जी-उपयोग-एकाधिक-कोर – miku

उत्तर

27

वितरित-मेमोरी सिस्टम पर, आप distcc का उपयोग अन्य मशीनों को संकलित नौकरियों के खेत में कर सकते हैं। यह थोड़ा सा सेटअप लेता है, लेकिन अगर आपके पास कुछ अतिरिक्त मशीनें होती हैं तो यह वास्तव में आपके निर्माण को तेज कर सकती है।

साझा-मेमोरी मल्टीकोर सिस्टम पर, आप केवल make -j का उपयोग कर सकते हैं, जो आपके मेकफ़ाइल में निर्भरताओं के आधार पर बिल्डिंग बनाने की कोशिश करेगा। आप इस तरह चला सकते हैं:

$ make -j 

जो नौकरियों की संख्या पर कोई सीमा नहीं लागू होगा पैदा की हैं, या आप एक पूर्णांक पैरामीटर के साथ चला सकते हैं:

$ make -j8 

जो समवर्ती निर्माण नौकरियों की संख्या को सीमित कर देगा । यहां, सीमा 8 समवर्ती नौकरियां है। आम तौर पर आप चाहते हैं कि यह आपके सिस्टम पर कोर की संख्या के करीब कुछ हो।

+1

AFAIK "नौकरियों की संख्या" पर दो स्कूल हैं। एक एन + 1 और दूसरा 2 एन है, जहां एन कोर की संख्या है। दोनों का तर्क यह है कि एक बार पूरा होने के बाद हमेशा एक धागा इंतजार कर रहा है ... व्यक्तिगत रूप से, मैंने वास्तविक अंतर नहीं देखा है कि मैंने क्वाडकोर – Kimvais

+0

पर -j5 या -j8 रखा है, मैंने भी एन से अधिक लाभ नहीं देखा है +1 या मल्टीकोर पर 2 एन, लेकिन फिर मैंने उन लोगों से प्रदर्शन में कमी देखी है। मुझे संदेह है कि आपको उन विकल्पों से बाहर निकलने वाले सभी लाभ नहीं मिलते हैं, बी/सी बनाने से कोर या सॉकेट के लिए संबंध स्थापित नहीं होता है, लेकिन मैंने वास्तव में इसका परीक्षण नहीं किया है (मैंने यह भी जांच नहीं की है कि मैंने एफ़िनिटी सेट करता है, लेकिन मुझे लगता है कि यह नहीं करता है)। – tgamblin

+1

बिल्डिंग अक्सर आईओ बाध्य है। काम करने के लिए बहुत सी छोटी फाइलें डिस्क से और बहुत सारे डेटा ले जा रही हैं ... प्लस फोर्क्स लिनक्स पर सस्ती हैं, लेकिन वे * कुछ * लागत करते हैं, जो गैर-स्केलिंग में योगदान देता है। अंत में, रिकर्सिव मेक और अन्य खराब मेकफ़ाइल प्रथाएं * बहुत * चुरा सकती हैं। – dmckee

4

ccache पर एक नज़र डालें भी इस्तेमाल किया जा सकता संकलन प्रक्रिया में तेजी लाने

+0

सीसीएएच केवल वास्तव में लाभ देता है जब आपको अक्सर समान कलाकृतियों का पुनर्निर्माण करने की आवश्यकता होती है, और यदि आपको ऐसा करने की आवश्यकता है, तो आपकी बिल्ड सिस्टम शुरू करने के लिए दोषपूर्ण है। – JesperE

संबंधित मुद्दे