المعلوماتية > عام

الخطوة الأولى لحل مشكلة «تآكل البـتّـات» في البرامج القديمة!

من المعلوم أن البشرية استطاعت خلالَ القرون المنصرمةِ الحفاظ على إرثها التاريخي من خلال الكتابة على وسائطَ متنوعةٍ كأوراقِ البردي وجلوِد الحيوانات التي صمدت في وجه الزمن لتصل إلينا وتخبرنا كيف عاش أسلافنا. أما اليوم، نعايشُ مرحلةً انتقاليةً في حياة البشرية؛ حيث يصبحُ كل شيء رقمياً، تتحكم التكنولوجيا بنمط حياتنا اليومية، فكل ما يتعلق بنا محفوظ على شكل بتات (bits)، والتي يتمُّ إنتاجُ كميات هائلة منها بشكلٍ متزايدٍ ومتسارع باستمرار مثل تغريداتنا عبر «تويتر» ومقاطع الفيديو التي نتشاركها وخرائط المواقع والرسائل الإلكترونية التي نرسلها ومحادثاتنا عبر سكايب وغيرها.

تكنولوجيا العتاد هي الأخرى في تطورٍ مستمر، وبحسب قانون مور: يتضاعفُ عدد الترانزستورات على الشريحة الواحدة كل 18 شهراً، ولكن لا يمكننا الاعتماد على هذا القانون، إذ أنه سيصل إلى نهايته عاجلاً أم آجلاً؛ فعددُ الترانزستوراتِ التي يمكن وضعُها في مكان واحد محدودٌ لأنها ستقترب من حجم الذرة أين تحكم قوانين الفيزياء الكمومية.

نواجه الآنَ مشكلةً جدية تسمى تآكل البتات المخزنة على البرامج (bit rot) التي كنا نشغلها قبلَ عشرِ سنواتٍ من الآن، إذ أنها تختفي مع الوقت أو بمعنى أدق تختلف طريقةُ فهمِ البرنامج لها، كما أن العتاد الذي كانت تشتغل عليه لم يعد موجوداً الآن. تعاني العديدُ من شركاتِ البرمجيات من هذه المشكلة. ولهذا فقد قام علماٌء من معهد «ماساتشوستس» للتكنولوجيا العامَ الماضي بالتعاونِ مع مهندسين من شركة «أدوبي» بالبحث عن حلٍّ لهذه المشكلة.

أفضلُ مثالٍ هو برنامج تعديل الصور الشهيرالـ« فوتوشوب»، الذي يحتفلُ بميلاده الـ25. خلالَ كلِّ تلك الأعوامِ المنصرمة، جرى تحسينُ الشفرة المصدرية للبرنامج حسبما يُعدُّ اليوم عتادًا قديمًا.

“بالنسبة لشفرةٍ عالية الأداء تُستعمل في معالجة الصور، علينا أن نحسّنَ البرنامج ” يقول «سامان أماراسينغه»، وهو بروفيسور في معهد «ماساتشوستس» وباحث في مختبر علوم الحاسب والذكاء الصناعي (CSAIL)، ويضيف قائلاً: "العيبُ في هذه الطريقة أن الشفرةَ تصبح أقلَّ فاعلية وأكثر تعقيدًا".

تستنزفُ شركاتٌ مثل «أدوبي» الكثيرَ من الجهِد والوقت لدراسةِ الشفرات المصدرية القديمة نسبياً لبرامجها ومحاولةِ تحسينِها وإصلاحِ الخلل الموجود. ولكن ماذا لو كان هناكَ برنامجٌ ُيصلح الشفراتِ المصدرية القديمة أوتوماتيكياً حتى يستطيعَ المهندسون التركيزَ على أمور أخرى أكثر أهمية؟

«هيليوم» هو نظامٌ حاسوبي طُوِّر بمختبر علوم الحاسب والذكاء الصناعي بمعهد «ماساتشوستس» يقوم بإصلاح وتحسين كود برنامجٍ معينٍ دون الحاجة إلى للشفرة المصدرية الأصلية في ظرفِ ساعات بل دقائق معدودة.

بدأ الفريقُ بالعمل على جزءٍ بسيط من الكود الثنائي الذي يدخل في تركيبِ الملف التنفيذي لبرنامج الـ«فوتوشوب» والذي فرضاً سيمثّلُ كلَّ ما لدينا من برنامجٍ أقربُ ما يكون إلى برنامجٍ احتكاري مغلق المصدر، إذ سيكون خالياً من أي معلومةٍ إضافية عن الملف التنفيذي.

برامجٌ مثل الـ«فوتوشوب» تستعملُ نوعاً خاصاً من الأنوية الحوسبية، يسمى «النواة الروسمية»*، والتي تسمحُ بالقيام بعملياتٍ على مساحاتٍ كاملة من البكسلات. من المهم جدًا أن تحدّث هذه الأنوية لأنها تستهلك الكثيرَ من الذاكرة والقدرةِ الحاسوبية للجهاز، ويتلاشى أداؤها بمجرد توفرِ عتاد جديد.

مع برنامج «هيليوم»، يستطيعُ الباحثون استخراجَ النواة الروسمية انطلاقاً من الصيغة الثنائية (Binary form) للملف، وإعادةَ هيكلتها في صيغةِ لغةٍ برمجية راقية تسمى "Halide"*.

يُعدّ الانتقالُ من لغةِ الآلة إلى لغةٍ راقية خطوةً مهمة لم تكن ممكنةً في السابق بحسب «تشيريث مانديس»، وهو أحد المشاركين في كتابة الورقة البحثية، حيث يقول: "يكونُ تنظيمُ العمليات في كود الآلة المحسن معقداً لدرجة يصعب علينا فيها استخراج شفرته المصدرية، لكن مع الحوسبة الروسمية، بإمكاننا إعادةُ العملية أكثرَ من مرة وتجميعُ المعلوماتِ اللازمة لاستخراج الخوارزمية الأصلية".

يقوم نظامُ «هيليوم» باستبدال البتات المتآكلة بـ بتات محسّنة، والنتيجةُ هي تحسنُ أداءِ فلتر الفوتوشوب بنسبة 75%. وكذلك برنامجُ "IrfanView" لمايكروسوفت بنسبة 400% إلى 500%.

"يقوم نظام «هيليوم» بالتحسينات في ظرفِ يوم واحد، في حين يستغرق المهندسون ثلاثةَ أشهر على الأقل لإتمام المهمة"، يقول أماراسينغه. "نظامٌ كهذا سيساعد الشركاتِ على تطوير برامجَ أسرع، وسيريحها عناء وضع 100 شخصٍ لحل هذا النوع من المشاكل".

أُنجز البحثُ بتكاتفِ جهوِد باحثين من معهد« ماساتشوستس» وباحثين من شركتي« غوغل» و«أدوبي»، وقد قُبلت الورقةُ البحثية من طرف منظمة الحوسبة العتادية SIGPLAN وتم طرحُها في محاضرةٍ عن تصميم لغات البرمجة ووضعها في حيز التطبيق في شهر يونيو المنصرم في ببورتلاند، ولاية أوريغون الأمريكية.

نعيشُ في حقبة تتسارعُ فيها تكنولوجيا العتاِد وتتنوع بشكل كبير، لهذا وجب علينا أن نكتبَ برامجَ تتناسبُ مع العتاد الجديد. ولذلك يُعدُّ «هيليوم» طريقةً مثاليةً لوضع وصفٍ راقٍ لحوسبيات روسمية* يمكن نقلها على عتاد المستقبل.

سيساعدُ هذا الابتكارُ الباحثين أيضاً في الكشف عن الخدعِ الُمستخدمة من قبل المبرمجين في كتابة الكود القديم في سيناريو أقرب ما يكون إلى علماءِ آثارٍ ينبشونَ ضمن مستحاثاتٍ رقمية.

-----------------

حاشية المحتوى:

-الحوسبة الروسمية (Stencil Computation): تمثلُ نمطاً حوسبياً مهماً يُستعمل في تطبيقات الحوسبة العلمية مثل تطبيقات معالجة الصور (Image Processing).

-النواة الروسمية (Stencil Kernel): عبارة عن كود مكتوب بلغة أمرية (Imperative Language)، يُستعمل في تطبيقات المحاكاة (Simulations) وتطبيقات معالجة الصور(Image Processing) مثل Photoshop وPicasa وPowerpoint، والذي يستهلك الكثير من موارد النظام و/أو العتاد.

- لغة Halide: لغة برمجية من تطوير CSAIL تختص بتطبيقات معالجة الصور

-----------------

المصادر:

هنا

هنا