علماء الحاسب يعملون على تبسيط البرمجة التفرّعيّة

لقد شهدنا على مدار السنوات السابقة انخفاض حجم الأجهزة الإلكترونية وفي نفس الوقت زيادة قدراتها التقنية بشكل مذهل. لكن هل تعلم ما وراء سرعة حاسوبك مثلاً؟ وما آخر التقنيات المكتشفة لمضاعفتها؟ هذا ما سوف تكتشفه في هذا المقال، حيث يُفسّر علماء الحاسوب آليّة معقدة ستسهل حياة مطوري البرمجيات، وذلك من خلال عرضهم لنظامهم الجديد الذي يحمل اسم 'سامبامبا'.


تتطلب البرمجيات الحديثة سرعات حاسوبية لتحسين أدائها، ولكن المعالجات الصغرى الحديثة تستطيع زيادة سرعتها فقط من خلال زيادة عدد أنويتها، وللحصول على الفائدة الكاملة من مفهوم الأنوية المتعددة، يقوم مطوّرو البرمجيات بتنظيم كودِهم بطريقة يصبح قابلاً للتنفيذ تفرّعياً، وهي عملية مُكلفة ومجهِدة.

 

يطوّر علماء الحاسوب من جامعة سارلاند أداةً تقوم تلقائياً بتحويل أجزاء الكود الضروري إلى آلية التنفيذ التفرعي (Parallelize) وتعطي المطوّرين أفضلية برمجية. سيعرض الباحثون نظامهم في معرض سيبيت Cebit للحاسب في هانوفر (القاعة 9، الحجرة E13).

 

يقول أندرياس زيلير (Andreas Zeller): "أصبحت التصاميم متعددة الأنوية مهمة أكثر فأكثر حتى في مفكرات النت Netbook والأجهزة الخليوية"، ليضيف: "و بينما تتقلّص الأجهزة بأحجامها، فإنها تتطوّر لتستخدم أقلّ قَدر ممكن من الطاقة، الأمر الذي يجعل من تقنية تعدد الأنوية ضرورياً أكثر من السابق"؛ زيلير أستاذ في هندسة البرمجيات من جامعة سارلاند قام بتطوير الأداة مع كيفين شترايت (Kevin Streit) وكليمنس هاماخا (Clemens Hammacher) و هما طالبا دكتورا تحت إشرافه، قاموا بتسمية النظام خاصتهم بسامبامبا (Sambamba) والذي يعمل تلقائياً على تحويل كود البرمجة التقليدي إلى كود قابل للتنفيذ تفرعّياً.

 

يقول سيباستيان هاك: "الهدف هو إيجاد خيارات تفرّعيّة (Parallelization Options) متعدّدة لكل تابع برمجي موجود في التطبيق المختبر، ليتم فيما بعد اختيار أفضلها خلال وقت التشغيل"؛ هاك أستاذٌ في البرمجة بجامعة سارلاند، يقوم بالإشراف على رسالة الدكتورا لطالبه جوهانس ديورفيرت (Johannes Doerfert)، سيباستيان وديورفيرت شريكان أيضاً في مشروع سامبامبا.

 

يصف علماء الحاسب وقت التشغيل Runtime على أنه الوقت اللازم لتهيئة وإنهاء البرنامج، ولتحديد الأجزاء التي من الممكن أن تستخدم البرمجة التفرعية فيها، والأجزاء التي سيتم استبعادها منها، فإن سامبامبا يقوم بتحليل الكود قبل أن يتم تنفيذه حتى، ولكن وبالرغم من هذه التحليلات الاستباقية فإنه من الصعب إيجاد الخيارات التفرعية المعتمدة على الإدخال -الإدخال من طرف المستخدم للبرنامج- والتي قد تظهر في بعض الأحيان.

 

يقوم هاك بتفسير هذه النقطة في سامبامبا فيقول: "لهذا السبب تتألف سامبامبا من وحدتين: أداة لتحليل البرنامج بشكل كامل، والتي تقوم باختبار الكود من أجل التحقق من إمكانية البرمجة التفرعية قبل التشغيل، أما الوحدة الثانية والتي يمكنها الاستفادة من هذه النتائج لتحسين الكود من خلال معلومات إضافية تعمل على تقديمها خلال وقت التشغيل".

 

وبهذه الطريقة تجنّب علماء الحاسب في جامعة سارلاند وبمرونة بعض المشاكل التي لم يستطع الباحثون لحدّ الآن حلّها، بينما تعمل عادةً الطرق المختلفة لأنواع محددة من البرمجة التفرعية وبشكل جيد، إلّا أن أيّاً من هذه الطرق لا تناسب الجميع، يضيف هاك: "حتى لو أردنا تصميم نوع من تطبيقات الترجمة بحيث يحوي كل التقنيات التي وضعت واختبرت من قبل، رغم كل ذلك سنبقى مفتقرين لشكل التكلفة التي تستطيع أن تحدد أفضل طريقة لكل حالة تلقائياً".

 

مع تقنيتهم التكاملية فإنهم يحاولون جمع أكبر قَدر ممكن من المعلومات، يليها جمع معلومات إضافية خلال وقت التشغيل للبرنامج، فهكذا يتم إقصاء احتمالات إضافية للطرق التفرعيّة، ليستطيع البرنامج "تعلّم" ما هي الطريقة التفرعية الأفضل للعمل.

 

يعمل سامبامبا بشكل جيد مع البرامج المكتوبة بلغات ذات انتشار واسع في التطبيق العلمي ولكن صعبة التحليل كلغة ++C، و كلما كان البرنامج أكثر تعقيداً كلما زادت أهمية التحليل خلال وقت التشغيل وبشكل مستقل عن اللغة، ويقوم زيلير بتفسير ذلك فيقول: "يستطيع سامبامبا معالجة كامل الكود تفرّعيّاً. لكن في بعض الحالات يمكن للمطورين التحقق من خيارات مختلفة أو أن يختاروا أحدها بأنفسهم [1]. لذلك يستطيع نظامنا التواصل مع المستخدم ليُقدّم اقتراحات حول كيفية جعل الكود قابل للمعالجة التفرعية".

 

في معرض CeBIT للحاسب القادم سيعرض الباحثون بيئة البرمجة التي صمّموها حول سامبامبا، وفيها يستطيع المطورون الحصول على دعم إضافي في قضايا المعالجة التفرعية.


ملاحظات

[1] القصد هنا بأن سامبامبا سيعمل على تقديم عدّة اقتراحات للمبرمجين والمطورين أثناء عملهم على برنامج ما، هذه الاقتراحات تُقدَّم على أساس توفير أفضل وأسرع تنفيذٍ تفرعي للبرنامج بما يتلاءم مع عدد الأنوية للمعالج.

إمسح وإقرأ

المصادر

شارك

المصطلحات
  • آليّة التنفيذ التفرعي أو المتوازي (Parallelize): وهي تقنية تقوم بتسليم المعطيات للمعالج بشكلها التفرعي (أي بشكل كتل أو مضاعفات هذه الكتل، منها: بايت Byte و الكلمة Word والكلمة المضاعفة Double Word ...)، وبالتالي سرعة أكبر في التنفيذ من مثيلاتها ذات التسليم التسلسلي.

المساهمون


اترك تعليقاً () تعليقات