HeadlinesBriefing favicon HeadlinesBriefing.com

mold: বিশাল সমান্তরাল লিঙ্কার

Hacker News •
×

লিংকিং সফ্টওয়্যার নির্মাণ প্রক্রিয়ার একটি গুরুত্বপূর্ণ ধাপ যা সংকলিত অবজেক্ট ফাইলগুলিকে একটি একক এক্সিকিউটেবল বা শেয়ার্ড লাইব্রেরিতে একত্রিত করে। কয়েক দশকের প্রকৌশল প্রচেষ্টা সত্ত্বেও, লিংক সময় সম্পাদনা-সংকলন-ডিবাগ চক্রে একটি উল্লেখযোগ্য বাধা থেকে যায়, বিশেষ করে বড় C++ প্রোগ্রামগুলির জন্য। বিদ্যমান লিঙ্কারগুলি সীমিত সমান্তরালতা ব্যবহার করে, লিংকিংয়ের সময় বেশিরভাগ CPU কোর নিষ্ক্রিয় থাকে।

আমরা mold উপস্থাপন করছি, একটি Unix/Linux লিঙ্কার যা সম্পূর্ণ লিংকিং পাইপলাইনে নিয়মতান্ত্রিকভাবে ডেটা সমান্তরালতা প্রয়োগ করে। আমরা প্রথমে স্থাপত্যিক সীমাবদ্ধতাগুলি বিশ্লেষণ করি যা বিদ্যমান লিঙ্কারগুলিকে স্কেল করতে বাধা দেয়, যার মধ্যে জড়িত প্রতীক সমাধান এবং আর্কাইভ প্রক্রিয়াকরণ রয়েছে, এবং তারপর দেখাই যে একটি নতুন নকশা যা তাদের পৃথক করে তা এই সীমাবদ্ধতাগুলি কীভাবে অতিক্রম করে।

বড় বাস্তব-বিশ্বের প্রোগ্রামগুলিতে, mold মাল্টি-গিগাবাইট ডিবাগ বাইনারিগুলি সর্বাধিক কয়েক সেকেন্ডে লিঙ্ক করে, এবং প্রায়শই এক সেকেন্ডেরও কম সময়ে। এটি অত্যাধুনিক lld লিঙ্কারের চেয়ে 2.4-16.1x দ্রুত, এবং ঐতিহ্যবাহী GNU ld এর চেয়ে 112x দ্রুত। একটি অ্যাবলেশন অধ্যয়ন দেখায় যে কোনও একক অপ্টিমাইজেশন প্রাধান্য পায় না; গতি বৃদ্ধি সমস্ত পাস সমান্তরাল করার ক্রমবর্ধমান প্রভাব থেকে আসে।

মূল সত্তা: ব্যক্তি: Rui Ueyama