क्या कोई सॉफ़्टवेयर लिनक्स में उपलब्ध है जो एक स्रोत कोड को संकलित करता है जिसमें बहुआयामी या वितरित सिस्टम पर समान रूप से बड़ी संख्या में फ़ाइलें होती हैं। जीसीसी या एक्ससेवर जैसे पुस्तकालयों में यूनिकोर/दोहरी मशीन पर संकलन के लिए बहुत समय लगता है और जब आपको बहुत सारे पुनर्मूल्यांकन की आवश्यकता होती है तो अधिकांश बार निराशा होती है। क्या ऐसे स्रोत कोड को समानांतर करने के लिए कोई तकनीक है?मल्टीकोर या वितरित सिस्टम पर संकलन कार्यक्रम
उत्तर
वितरित-मेमोरी सिस्टम पर, आप distcc का उपयोग अन्य मशीनों को संकलित नौकरियों के खेत में कर सकते हैं। यह थोड़ा सा सेटअप लेता है, लेकिन अगर आपके पास कुछ अतिरिक्त मशीनें होती हैं तो यह वास्तव में आपके निर्माण को तेज कर सकती है।
साझा-मेमोरी मल्टीकोर सिस्टम पर, आप केवल make -j
का उपयोग कर सकते हैं, जो आपके मेकफ़ाइल में निर्भरताओं के आधार पर बिल्डिंग बनाने की कोशिश करेगा। आप इस तरह चला सकते हैं:
$ make -j
जो नौकरियों की संख्या पर कोई सीमा नहीं लागू होगा पैदा की हैं, या आप एक पूर्णांक पैरामीटर के साथ चला सकते हैं:
$ make -j8
जो समवर्ती निर्माण नौकरियों की संख्या को सीमित कर देगा । यहां, सीमा 8 समवर्ती नौकरियां है। आम तौर पर आप चाहते हैं कि यह आपके सिस्टम पर कोर की संख्या के करीब कुछ हो।
AFAIK "नौकरियों की संख्या" पर दो स्कूल हैं। एक एन + 1 और दूसरा 2 एन है, जहां एन कोर की संख्या है। दोनों का तर्क यह है कि एक बार पूरा होने के बाद हमेशा एक धागा इंतजार कर रहा है ... व्यक्तिगत रूप से, मैंने वास्तविक अंतर नहीं देखा है कि मैंने क्वाडकोर – Kimvais
पर -j5 या -j8 रखा है, मैंने भी एन से अधिक लाभ नहीं देखा है +1 या मल्टीकोर पर 2 एन, लेकिन फिर मैंने उन लोगों से प्रदर्शन में कमी देखी है। मुझे संदेह है कि आपको उन विकल्पों से बाहर निकलने वाले सभी लाभ नहीं मिलते हैं, बी/सी बनाने से कोर या सॉकेट के लिए संबंध स्थापित नहीं होता है, लेकिन मैंने वास्तव में इसका परीक्षण नहीं किया है (मैंने यह भी जांच नहीं की है कि मैंने एफ़िनिटी सेट करता है, लेकिन मुझे लगता है कि यह नहीं करता है)। – tgamblin
बिल्डिंग अक्सर आईओ बाध्य है। काम करने के लिए बहुत सी छोटी फाइलें डिस्क से और बहुत सारे डेटा ले जा रही हैं ... प्लस फोर्क्स लिनक्स पर सस्ती हैं, लेकिन वे * कुछ * लागत करते हैं, जो गैर-स्केलिंग में योगदान देता है। अंत में, रिकर्सिव मेक और अन्य खराब मेकफ़ाइल प्रथाएं * बहुत * चुरा सकती हैं। – dmckee
जीएनयू बनाने (मानक मेकअप Linux सिस्टम पर स्थापित) समानांतर आदेश निष्पादन का समर्थन करता है - http://www.gnu.org/software/make/manual/make.html#Parallel
- 1. मल्टीकोर सिस्टम
- 2. जावा वितरित सिस्टम
- 3. मल्टीकोर + हाइपरथ्रेडिंग - धागे कैसे वितरित किए जाते हैं?
- 4. वितरित सिस्टम, सर्वोत्तम ढांचा?
- 5. सी संकलन त्रुटि: आवारा '##' कार्यक्रम
- 6. ऑपरेटिंग सिस्टम संकलन समय
- 7. बड़े पैमाने पर वितरित सिस्टम में लॉग फ़ाइलें
- 8. मोनो संकलन त्रुटि - असेंबली 'सिस्टम'
- 9. मल्टीकोर हार्डवेयर
- 10. एक वितरित कुंजी-मूल्य लुकअप सिस्टम
- 11. वितरित सिस्टम में सेमेन्टिक वेब का तर्क
- 12. असेंबली और मल्टीकोर सीपीयू
- 13. मैं अजगर कार्यक्रम कैसे वितरित कर सकता हूं?
- 14. मल्टीकोर प्रोसेसर
- 15. ऑपरेटिंग सिस्टम के आधार पर सी ++ में सशर्त संकलन
- 16. वितरित या विकेन्द्रीकृत प्रतिष्ठा/ट्रस्ट
- 17. यह निर्धारित करना कि विंडोज या अन्य सिस्टम पर संकलन करना
- 18. लिनक्स पर सॉफ्टवेयर वितरित?
- 19. कार्यक्रम
- 20. मल्टीकोर प्रोग्रामिंग: हार्ड पार्ट्स
- 21. कमोडिटी लिनक्स स्टोरेज फार्म के लिए सर्वश्रेष्ठ वितरित फाइल सिस्टम
- 22. क्लस्टर पर स्केल वितरित करना?
- 23. पायथन: मल्टीकोर प्रसंस्करण?
- 24. एएसपीनेट सीएस 1061 संकलन पर संकलन त्रुटि
- 25. वितरित सिस्टम का परीक्षण करने के लिए नेटवर्क त्रुटियां बनाएं
- 26. सोलर मल्टीकोर पोस्ट डेटा
- 27. क्या सिस्टम 32 या 64 बिट होने पर संकलन-समय पर निर्धारित करने का एक मानक तरीका है?
- 28. एकाधिक सर्वरों पर जावा धागे वितरित करना?
- 29. क्षैतिज रूप से स्केल किए गए वितरित सिस्टम
- 30. .NET कोड संकलन या जटिलता?
संबंधित: http: // stackoverflow। कॉम/प्रश्न/414714/संकलन-साथ-जी-उपयोग-एकाधिक-कोर – miku