ایک تحقیقی منصوبے کے حصے کے طور پر
جانچ کے لیے
اگلے مرحلے پر، ہارڈویئر پلیٹ فارم کی خصوصیات کو مدنظر رکھتے ہوئے، انٹر پروسیجرل 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 گنا اضافہ ہوا۔ ٹیسٹوں نے یہ بھی ظاہر کیا کہ ہائپر تھریڈنگ کے ساتھ ورچوئل کور استعمال کرنے سے کارکردگی میں اضافہ نہیں ہوتا۔
مجموعی طور پر تعمیراتی وقت میں تقریباً 10% کی کمی کی گئی تھی، لیکن پیشین گوئیوں کے مطابق، RTL کو متوازی بنانے سے زیادہ ٹھوس نتائج حاصل کیے جاسکیں گے، کیونکہ اس مرحلے میں تالیف کے دوران نمایاں طور پر زیادہ وقت لگتا ہے۔ تقریباً RTL کے متوازی ہونے کے بعد، کل اسمبلی کا وقت 1.61 گنا کم ہو جائے گا۔ اس کے بعد، IPA آپٹیمائزیشن کو متوازی کرتے ہوئے تعمیراتی وقت کو مزید 5-10% تک کم کرنا ممکن ہوگا۔
ماخذ: opennet.ru