GCC میں تالیف کے عمل کو متوازی کرنے کے لیے تعاون شامل کرنے کا پروجیکٹ

ایک تحقیقی منصوبے کے حصے کے طور پر متوازی GCC GCC میں ایک خصوصیت شامل کرنے کے لیے کام شروع ہو گیا ہے جو تالیف کے عمل کو کئی متوازی دھاگوں میں تقسیم کرنے کی اجازت دیتا ہے۔ فی الحال، ملٹی کور سسٹمز پر تعمیر کی رفتار بڑھانے کے لیے، میک یوٹیلیٹی علیحدہ کمپائلر پراسیسز کے آغاز کا استعمال کرتی ہے، جن میں سے ہر ایک علیحدہ کوڈ فائل بناتا ہے۔ نیا پروجیکٹ کمپائلر کی سطح پر متوازی فراہم کرنے کے ساتھ تجربہ کر رہا ہے، جو ممکنہ طور پر ملٹی کور سسٹمز پر کارکردگی کو بہتر بنائے گا۔

جانچ کے لیے تیار ہے جی سی سی کی ایک الگ متوازی شاخ، جو تھریڈز کی تعداد کو سیٹ کرنے کے لیے ایک نیا پیرامیٹر "—param=num-threads=N" پیش کرتی ہے۔ ابتدائی مرحلے پر، ہم نے الگ الگ دھاگوں میں انٹرپروسیجرل آپٹیمائزیشنز کی منتقلی کو نافذ کیا، جنہیں ہر فنکشن کے لیے سائیکلکل کہا جاتا ہے اور آسانی سے متوازی کیا جا سکتا ہے۔ ہارڈ ویئر سے آزاد اصلاح کے لیے ذمہ دار GIMPLE آپریشنز جو ایک دوسرے کے ساتھ افعال کے تعامل کا جائزہ لیتے ہیں الگ الگ تھریڈز میں رکھے جاتے ہیں۔

اگلے مرحلے پر، ہارڈویئر پلیٹ فارم کی خصوصیات کو مدنظر رکھتے ہوئے، انٹر پروسیجرل RTL آپٹیمائزیشن کو علیحدہ تھریڈز میں منتقل کرنے کا بھی منصوبہ ہے۔ اس کے بعد، ہم کال کی تفصیلات سے قطع نظر، فنکشن کے اندر کوڈ پر لاگو ہونے والے انٹرا پروسیجرل آپٹیمائزیشنز (IPA) کے متوازی عمل کو نافذ کرنے کا ارادہ رکھتے ہیں۔ ابھی کے لیے محدود لنک ردی کی ٹوکری جمع کرنے والا ہے، جس نے ایک عالمی لاک شامل کیا ہے جو ملٹی تھریڈڈ موڈ میں چلتے ہوئے کوڑا اٹھانے کی کارروائیوں کو غیر فعال کر دیتا ہے (مستقبل میں کوڑا اٹھانے والے کو GCC کے ملٹی تھریڈڈ ایگزیکیوشن کے لیے ڈھال لیا جائے گا)۔

کارکردگی میں تبدیلیوں کا جائزہ لینے کے لیے، ایک ٹیسٹ سوٹ تیار کیا گیا ہے جو gimple-match.c فائل کو اسمبل کرتا ہے، جس میں کوڈ کی 100 ہزار سے زیادہ لائنیں اور 1700 فنکشنز شامل ہیں۔ 5 فزیکل کور اور 8250 ورچوئل (ہائپر تھریڈنگ) کے ساتھ Intel Core i4-8U CPU والے سسٹم پر ٹیسٹوں نے 7 تھریڈز چلانے پر انٹرا پروسیجرل GIMPLE آپٹیمائزیشن کے عمل درآمد کے وقت میں 4 سے 2 سیکنڈ تک اور 3 چلانے پر 4 سیکنڈ تک کی کمی ظاہر کی۔ دھاگے، یعنی زیر غور اسمبلی مرحلے کی رفتار میں بالترتیب 1.72 اور 2.52 گنا اضافہ ہوا۔ ٹیسٹوں نے یہ بھی ظاہر کیا کہ ہائپر تھریڈنگ کے ساتھ ورچوئل کور استعمال کرنے سے کارکردگی میں اضافہ نہیں ہوتا۔

GCC میں تالیف کے عمل کو متوازی کرنے کے لیے تعاون شامل کرنے کا پروجیکٹ

مجموعی طور پر تعمیراتی وقت میں تقریباً 10% کی کمی کی گئی تھی، لیکن پیشین گوئیوں کے مطابق، RTL کو متوازی بنانے سے زیادہ ٹھوس نتائج حاصل کیے جاسکیں گے، کیونکہ اس مرحلے میں تالیف کے دوران نمایاں طور پر زیادہ وقت لگتا ہے۔ تقریباً RTL کے متوازی ہونے کے بعد، کل اسمبلی کا وقت 1.61 گنا کم ہو جائے گا۔ اس کے بعد، IPA آپٹیمائزیشن کو متوازی کرتے ہوئے تعمیراتی وقت کو مزید 5-10% تک کم کرنا ممکن ہوگا۔

GCC میں تالیف کے عمل کو متوازی کرنے کے لیے تعاون شامل کرنے کا پروجیکٹ

ماخذ: opennet.ru

نیا تبصرہ شامل کریں