تغطية شاملة

يتجه العالم نحو البرمجة الموازية - في إسرائيل، تستمر دراسة البرمجة التسلسلية في الجامعات

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

دكتور عامي من روبكا، بار إيلان
دكتور عامي من روبكا، بار إيلان

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

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

لماذا في الواقع؟

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

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

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

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

من المسؤول عن عدم تدريس البرمجة الموازية؟

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

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

ماذا عن الكليات؟

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

هل تقوم شركات البرمجيات على الأقل بتنظيم دورات تدريبية في ميكفال لموظفيها؟

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

ماذا يحدث في العالم؟

في الولايات المتحدة، هناك الآن فقط ثورة خطيرة في مجال البحث وفي مجال التدريس الأكاديمي. الوضع في أوروبا يشبه إلى حد كبير الوضع في إسرائيل. هناك مكانان يزدهر فيهما هذا المجال، حيث يتخرج كل عام عدة آلاف من المهندسين من مؤسسات التعليم العالي المجهزة بمهارات البرمجة الموازية - روسيا والصين. وفي كلتا الحالتين، ينبغي أن يعزى النجاح إلى شركة إنتل، التي استثمرت في توريد الأجهزة والبرمجيات. يوجد في الصين وحدها ما يقرب من مائة مدرسة حيث تتم معالجة البرمجة في بيئة متعددة الخيوط. لقد كنت أحاول منذ عدة سنوات إقناع شركة Intel بإحضار واحدة من هذه المدارس إلى إسرائيل، ولكن يُنظر إلى شركة Intel على أنها شركة قوية في مجال الأجهزة في إسرائيل، وأوضحت أن هناك مراكز للبحث والتطوير في مجال البرمجيات في إسرائيل لشركة Google وMicrosoft وHP وIntel وشركات مستقلة كبيرة. شركات البرمجيات. آمل أن أتمكن من إقناعهم.

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

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

مجلس التعليم العالي: روبكا لم تتقدم ولجنة دولية درست الموضوع لم توصي

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

تعليقات 14

  1. درست في جامعة تل أبيب مسار مزدوج في علوم الكمبيوتر، وتخرجت في عام 2001.
    بعض المواضيع المذكورة أعلاه تمت مناقشتها وأكثر في دورة أنظمة التشغيل، على الرغم من عدم الخوض في البرمجة الموازية.
    أعتقد أن من يريد دراسته يمكنه الاختيار من بين المقررات الاختيارية، وأنا متأكد من أن هناك خيارات أكثر في هذا الشأن في درجة الماجستير.

  2. لقد درست للحصول على درجة البكالوريوس في علوم الكمبيوتر في جامعة تل أبيب. كجزء من الشهادة، في عام 1985 أو 1986 درست دورة في البرمجة المتوازية للدكتور (الأستاذ الآن) عوزي فيشكين. أتذكر الدورة حتى يومنا هذا باعتبارها واحدة من أكثر الدورات إثارة للاهتمام في الدرجة. وفي الواقع فإن "تشفير" البرامج يتم بلغة زائفة طورها. وبطبيعة الحال، في تلك الأيام لم يكن هناك جهاز كمبيوتر ونظام تشغيل ينفذه، ولكن تم تدريس الأفكار والأدوات اللازمة لهذا التطوير في الدورة.
    وبعد مرور عام، درست (كجزء من درجة الماجستير) دورة موازية لـ Lisp تم تطويرها أيضًا بواسطة طبيب في الجامعة (أنا آسف ولكني لا أتذكر اسمه).
    ولهذا السبب أنا مندهش جدًا عندما أقرأ أنه لا توجد اليوم دراسة حول هذا الموضوع في الجامعات. هل هو حقا كذلك؟

  3. حسنًا، أنا أستمتع حقًا برؤية كيفية عمل الخوارزمية الخاصة بي عمليًا!

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

    ولكن لكل واحد من دواعي سروري 🙂

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

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

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

  6. صدر:
    أنت تفوت المواقف التي لا تقوم فيها بتشغيل الكثير من الأشياء بشكل استباقي في نفس الوقت ولكن لديك شيئًا ثقيلًا تريد تشغيله بشكل أسرع.

  7. لا أفهم المجال، وربما لهذا السبب لدي سؤال غير مكتمل.

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

    ما الذي أفتقده؟

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

  9. وفي نفس الموضوع،
    http://asyncop.com/MTnPDirEnum.aspx?treeviewPath=%5Bf%5D+Video%5Bc%5D+Introduction+To+Multicore+Programming

    أكثر إثارة للاهتمام بالنسبة لأولئك المهتمين:)…

    يبدو لي أن الشركة التي ستنجح في بناء مترجم "موازي" ستكون مايكروسوفت التالية (إذا لم تكن مايكروسوفت نفسها)

    مايكل: هناك شائعات بأنك مبرمج جيد، هل ترغب في الانضمام إلى شركة ناشئة لبناء مترجم موازي؟

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

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

  12. مقالة مثيرة للاهتمام. باختصار، التدقيق اللغوي مفقود هنا.

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

ترك الرد

لن يتم نشر البريد الإلكتروني. الحقول الإلزامية مشار إليها *

يستخدم هذا الموقع Akismat لمنع الرسائل غير المرغوب فيها. انقر هنا لمعرفة كيفية معالجة بيانات الرد الخاصة بك.