HeadlinesBriefing favicon HeadlinesBriefing.com

mold: बड़े पैमाने पर समानांतर लिंकर

Hacker News •
×

लिंकिंग सॉफ्टवेयर निर्माण प्रक्रिया में एक महत्वपूर्ण कदम है जो संकलित ऑब्जेक्ट फ़ाइलों को एक एकल निष्पादन योग्य या साझा लाइब्रेरी में जोड़ता है। दशकों के इंजीनियरिंग प्रयास के बावजूद, लिंक समय संपादन-संकलन-डीबग चक्र में एक महत्वपूर्ण बाधा बना हुआ है, विशेष रूप से बड़े C++ प्रोग्रामों के लिए। मौजूदा लिंकर सीमित समानांतरता का दोहन करते हैं, लिंकिंग के दौरान अधिकांश CPU कोर निष्क्रिय रहते हैं।

हम mold प्रस्तुत करते हैं, एक Unix/Linux लिंकर जो पूरे लिंकिंग पाइपलाइन में व्यवस्थित रूप से डेटा समानांतरता लागू करता है। हम पहले उन वास्तुशिल्प बाधाओं का विश्लेषण करते हैं जो मौजूदा लिंकरों को स्केल करने से रोकती हैं, जिसमें उलझा हुआ प्रतीक समाधान और संग्रह प्रसंस्करण शामिल है, और फिर दिखाते हैं कि एक स्वच्छ-स्लेट डिज़ाइन जो उन्हें अलग करता है, इन सीमाओं को कैसे दूर करता है।

बड़े वास्तविक दुनिया के प्रोग्रामों पर, mold मल्टी-गीगाबाइट डीबग बाइनरी को अधिकतम कुछ सेकंड में लिंक करता है, और अक्सर एक सेकंड से भी कम में। यह अत्याधुनिक lld लिंकर से 2.4-16.1x तेज़ है, और पारंपरिक GNU ld से 112x तेज़ है। एक एब्लेशन अध्ययन दिखाता है कि कोई एकल अनुकूलन प्रभावी नहीं है; गति सभी पासों को समानांतर करने के संचयी प्रभाव से आती है।

मुख्य संस्थाएँ: लोग: Rui Ueyama