LLVM विकास टीम ने ThinLTO को बेहतर बनाने के लिए मल्टी-थ्रेड समानांतर संकलन (MTPC) नामक एक प्रस्ताव प्रस्तुत किया है। वर्तमान में, यह तकनीक पूरे मॉड्यूल को समानांतर करती है, लेकिन बड़े मॉड्यूल को क्रमबद्ध रूप से संसाधित किया जाता है, जिससे अड़चनें पैदा होती हैं। MTPC कार्य को फ़ंक्शन स्तर पर विभाजित करके उस बाधा को तोड़ने का प्रयास करता है।
ThinLTO में इंट्रा-मॉड्यूल समानांतरता कैसे काम करती है 🚀
MTPC एक बड़े मॉड्यूल को फ़ंक्शन-आधारित छोटी इकाइयों में विभाजित करने की क्षमता प्रस्तुत करता है। प्रत्येक फ़ंक्शन को एक स्वतंत्र थ्रेड में संकलित और अनुकूलित किया जा सकता है, बशर्ते डेटा निर्भरता और वैश्विक संदर्भों को ठीक से प्रबंधित किया जाए। यह कई कोर वाले प्रोसेसर को एक ही मॉड्यूल के भीतर एक साथ काम करने की अनुमति देता है, जिससे बहुत बड़ी स्रोत फ़ाइलों वाली परियोजनाओं में संकलन का समय कम हो जाता है।
उन मॉड्यूल का नाटक जो खुद को अछूत मानते थे 😅
अब तक, बड़े मॉड्यूल एक शांत जीवन का आनंद लेते थे: सारा कोड क्रमबद्ध रूप से संकलित होता था, जैसे सुपरमार्केट में एक लाइन। MTPC के साथ, उन आलसी फ़ंक्शनों को समानांतर रूप से काम करना होगा, जैसे किसी बॉस ने उनसे कहा हो कि कॉफी खत्म हो गई है। डेवलपर्स कंपाइलर के खत्म होने की प्रतीक्षा करते हुए उन ब्रेक को अलविदा कह सकते हैं, हालांकि निश्चित रूप से कुछ मॉड्यूल सिंक्रोनाइज़ेशन की कमी के कारण हड़ताल पर जा सकते हैं।