المواقع

Parallelism Needs Killer Application for Mass Adoption

Google I/O'17: Channel 1

Google I/O'17: Channel 1
Anonim

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

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

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

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

يحاول الباحثون في بيركلي إحضار التوازي من خلال استبدال أجزاء من التعليمات البرمجية المكتوبة أصلاً باستخدام لغات البرمجة النصية مثل Python و Ruby on Rails مع شفرة C جديدة منخفضة المستوى. وقالت باترسون في مقابلة يوم الأربعاء إن الكود الجديد يركز بشكل خاص على مهام معينة مثل تحليل نمط صوت محدد في تطبيق التعرف على الكلام. تتم كتابة التعليمة البرمجية باستخدام OpenMP أو MPI ، واجهات برمجة التطبيقات المصممة لكتابة التطبيقات المتوازية على مستوى الجهاز.

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

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

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

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

وقال باترسون في المؤتمر: "لا يوجد نهج فتى كسول للبرمجة".

لقد خلق اختفاء الذاكرة والشبكة اختناقات في نقل البيانات ، الأمر الذي يمكن أن ينفي الأداء الذي تحققه تنفيذ المهام المتوازية. هناك أيضًا أدوات برمجة مختلفة لأبنية مختلفة ، مما يجعل من الصعب الاستفادة من كل الأجهزة المتاحة.

تم تصميم العديد من أدوات التوازي المتوفرة اليوم لتسخير قدرات المعالجة المتوازية لوحدات المعالجة المركزية ووحدات معالجة الرسومات لتحسين أداء النظام. تعد Apple و Intel و Nvidia و Advanced Micro Devices من بين الشركات التي تعزز OpenCL ، وهي بيئة برمجة موازية سيتم دعمها في نظام التشغيل Mac OS X 10.6 القادم من Apple ، والذي يُطلق عليه أيضًا Snow Leopard ، والذي من المقرر إصداره يوم الجمعة. تتنافس OpenCL مع Microsoft ، التي تروج لأدوات البرمجة المتوازية DirectX الخاصة بها ، و Nvidia ، التي تقدم إطار عمل CUDA.

OpenCL يتضمن لغة برمجة C-like مع واجهات برمجة التطبيقات (واجهات برمجة التطبيقات) لإدارة توزيع النواة عبر الأجهزة مثل كما النوى المعالج والموارد الأخرى. يمكن لـ OpenCL مساعدة Mac OS في فك تشفير الفيديو بشكل أسرع من خلال توزيع معالجة وحدات البكسل عبر وحدات معالجة وحدات معالجة الرسومات ووحدات المعالجة المتعددة في نظام.

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

"لا أعتقد أنه سيتم احتضان [OpenCL] عبر جميع البنى". وقال باترسون. وقال: "نحتاج في هذه الأثناء إلى تجربة أشياء أخرى" ، مثل محاولة تحسين نماذج البرمجة باستخدام أدوات تطوير شائعة الاستخدام ، مثل Ruby on Rails.

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

قال كوزيركيس أن ستانفورد قد أنشأت مختبرًا يهدف إلى "تطوير تطبيق موازٍ عملي للجماهير" بحلول عام 2012. ويعمل الباحثون مع شركات مثل Intel و AMD و IBM و Sun و Hewlett-Packard و Nvidia.

قد يكون اختبار المهمة الفورية للمطورين هو محاولة تحويل الشفرة القديمة الحالية بالتوازي مع التنفيذ على شرائح حديثة ، Berkeley's Patterson قال. تقدم زوجين من الشركات توازنا آليا ، لكن إعادة كتابة وتجميع الكود الموروث أصلا من أجل التنفيذ المتسلسل يمكن أن يكون تحديا كبيرا.

"هناك أموال يجب القيام بها في تلك المناطق" ، قال باترسون.