JACC v1.0: High-productivity Performance Portability in the LLVM-compiled Julia Language
تقدم هذه الورقة JACC v1.0، وهو إطار عمل موحد للغة جوليا (Julia) المترجمة بواسطة LLVM، يتيح البرمجة المتوازية عالية الإنتاجية، والمحمولة، وعالية الأداء عبر مختلف بنيات المعالجات المركزية (CPU) ومعالجات الرسوميات (GPU) من خلال كود برمجي واحد.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تصبح الحواسيب الفائقة الحديثة آلات معقدة بشكل متزايد، حيث تكتظ بأنواع مختلفة من المعالجات التي يمكنها حل المشكلات بسرعات هائلة. ولعقود من الزمن، اعتمد العلماء على عدد قليل من اللغات القياسية لإخبار هذه الآلات بما يجب فعله، ولكن مع تطور الأجهزة، أصبح كتابة الكود لهذه الأنظمة مهمة صعبة ومتخصصة. غالبًا ما يجد الباحثون أنفسهم مضطرين لإعادة كتابة البرامج العلمية نفسها عدة مرات، مرة لنوع معين من شرائح الكمبيوتر ومرة أخرى لنوع آخر، فقط للحصول على النتيجة ذاتها. وهذا يخلق عنق زجاجة حيث يستهلك الوقت المستغرق في ترجمة الكود للآلات المختلفة الوقت المتاح للاكتشاف الفعلي. والهدف للكثيرين في هذا المجال هو إيجاد طريقة لكتابة مجموعة واحدة من التعليمات تعمل بكفاءة على أي آلة، سواء كانت حاسوبًا محمولًا شخصيًا أو حاسوبًا فائقًا وطنيًا ضخمًا، دون الحاجة إلى معرفة التفاصيل الدقيقة لتصميم كل معالج.
قدم فريق من الباحثين من مختبر أوك ريدج الوطني ومؤسسات أخرى أداة جديدة تسمى JACC، والتي تهدف إلى حل هذه المشكلة للعلماء باستخدام لغة البرمجة جوليا (Julia). جوليا هي لغة صُممت لتكون سهلة القراءة مثل الصيغة الرياضية بينما تعمل بسرعة أكثر كفاءة من لغة الآلة الأكثر فعالية. يعمل برنامج JACC الجديد كمترجم عالمي لهذه اللغة، مما يسم يسمح للعلماء بكتابة نسخة واحدة من الكود الخاص بهم يمكنها العمل على المعالجات المركزية للكمبيوتر أو على شرائح الرسومات المتخصصة المستخدمة للحسابات الثقيلة. وقد وجد الباحثون أن هذا النهج لا يجعل البرمجة أسهل فحسب؛ بل يسمح للبرنامج بالعمل بسرعة تقارب سرعة الكود المكتوب خصيصًا لكل نوع من أنواع الأجهزة. وهذا يعني أنه يمكن للعالم تطوير محاكاة على حاسوب محمول ثم تشغيل البرنامج نفسه تمامًا على حاسوب فائق عالمي المستوى دون تغيير سطر واحد من الكود.
يكمن جوهر هذا الإنجاز في كيفية تعامل JACC مع العلاقة بين عمل العالم وبين عتاد الكمبيوتر. في الماضي، كان نقل برنامج من نوع معالج إلى آخر يتطلب إعادة كتابة كاملة، تمامًا مثل ترجمة كتاب من الإنجليزية إلى الفرنسية ثم إلى اليابانية، حيث تنطوي كل ترجمة على خطر فقدان الدقة أو السرعة. يزيل JACC الحاجة إلى هذه الترجمات المنفصلة. فهو يوفر مجموعة من الأوامر البسيطة التي تخبر الكمبيوتر بأداء مهمة ما، مثل حساب القيم عبر شبكة كبيرة من الأرقام، دون تحديد المعالج الذي يجب أن يقوم بالعمل. يقوم البرنامج تلقائيًا باكتشاف ما إذا كان الكمبيوتر يحتوي على شريحة من إنفيديا (NVIDIA)، أو إيه إم دي (AMD)، أو إنتل (Intel)، أو أبل (Apple)، ثم يوجه العمل إلى المعالج الأكثر ملاءمة والمتاح. وتسمح هذه المرونة للباحثين باستخدام بطاقات الرسومات القوية الموجودة في الحواسيب المحمولة الحديثة للاختبارات التفاعلية، ثم الانتقال بسلاسة إلى المصفوفات الضخمة من المعالجات في الحواسيب الفائقة للتشغيلات النهائية واسعة النطاق.
أثبت الباحثون فعالية هذا النظام من خلال اختباره على مجموعة متنوعة من المشكلات العلمية الواقعية. فقد طبقوا الأداة على عمليات محاكاة لديناميكا السوائل، والتي تُستخدم لنمذجة كيفية تدفق الهواء فوق الأجنحة أو كيفية حركة الماء عبر الأنابيب. وفي هذه الاختبارات، عمل البرنامج على أنواع مختلفة من الأجهزة بأداء يطابق أو يقترب جدًا من الكود المتخصص الذي كتبه الخبراء لكل آلة محددة. على سبيل المثال، عند محاكاة حركة السوائل، حقق النظام سرعات في شرائح الرسومات كانت ضمن نسبة ضئيلة من أفضل أداء ممكن، مما يثبت أن سهولة استخدام قاعدة كود واحدة لا تأتي على حساب السرعة. كما أظهر الفريق أن النظام يمكنه التعامل مع المهام المعقدة التي تتضمن معالجات متعددة تعمل معًا على آلة واحدة، وهي قدرة أصبحت ضرورية مع حشد الحواسيب الفائقة لمزيد من القوة في وحدات فيزيائية أقل.
بعيدًا عن السرعة البسيطة، تفتح هذه الأداة الباب أمام استكشافات علمية أكثر تعقيدًا كانت صعبة الإدارة في السابق. فقد أظهر الباحثون أنه يمكن استخدام JACC لمحاكاة المواد المغناطيسية الكمومية، وهو مجال يتطلب تتبع سلوك عدد لا يحصى من الجسيمات الصغيرة. وباستخدام هذا النظام الجديد، تم تقليص عملية حسابية كانت تستغرق ساعة للتشغيل على معالج واحد إلى ثوانٍ معدودة عند تشغيلها على شريحة رسومات، وكل ذلك باستخدام نفس الكود. هذا النوع من التسريع حيوي لمجالات مثل الكيمياء الكمومية والفيزياء النووية، حيث يحتاج العلماء إلى تشغيل آلاف المتغيرات من المحاكاة لفهم كيفية سلوك المواد تحت ظروف مختلفة. إن القدرة على تشغيل هذه المحاكاة على أجهزة مختلفة دون إعادة كتابة الكود تعني أن العلماء يمكنهم التركيز على الفيزياء أكثر من التركء على ميكانيكا البرمجة.
يتجاوز تأثير هذا العمل طريقة بناء وصيانة البرمجيات العلمية في المستقبل. أشار الباحثون إلى أن النظام مصمم للعمل جنبًا إلى جنب مع الأدوات الموجودة التي يستخدمها المجتمع العلمي، مما يسمح بانتقال تدريجي بدلاً من إجراء تغيير شامل للمشاريع الحالية. وهذا يعني أن المختبرات يمكنها اعتماد النظام الجديد قطعة بقطعة، واختبار أجزاء محددة من الكود الخاص بها قبل الالتزام بهيكل كامل. كما يدعم البرنامج ميزات متقدمة مثل الذاكرة المشتركة، التي تسمح لأجزاء مختلفة من الحساب بالوصول إلى البيانات بسرعة، والتنفيذ غير المتزامن، الذي يسمح للكمبيوتر ببدء مهمة جديدة قبل أن تنتهي المهمة السابقة تمامًا. هذه الميزات حاسمة للحصول على أقصى استفادة من أحدث الحواسيب الفائقة، المصممة للتعامل مع مهام عديدة في وقت واحد.
وبالنظر إلى المستقبل، يرى الباحثون هذه التكنولوجيا كأساس لتطبيقات أكثر تقدمًا. إنهم يستكشفون كيف يمكن استخدام النظام في تطوير الحواسيب الكمومية، حيث تختلف قواعد الفيزياء كثيرًا عن الحواسيب الكلاسيكية التي نستخدمها اليوم. إن القدرة على كتابة كود قابل للنقل وفعال يمكن أن تساعد العلماء في تصميم واختبار الخوارزميات لهذه الآلات المستقبلية قبل أن يصبح العتاد جاهزًا تمامًا. بالإضافة إلى ذلك، يتم دمج النظام مع برمجيات ذكية يمكنها تحديد المعالج الذي يجب أن يتولى مهمة معينة تلقائيًا، مما يقلل من العبء على المبرمج البشري. يشير هذا المزيج من سهولة الاستخدام والأداء العالي إلى مستقبل يكون فيه الحاجز بين فكرة العالم والمحاكاة الجارية أقل بكثير مما هو عليه اليوم.
يمثل العمل المقدم في هذه الورقة خطوة مهمة للأمام في جعل الحوسبة عالية الأداء متاحة لنطاق أوسع من العلماء. ومن خلال توفير أداة تسد الفجوة بين البرمجة عالية المستوى وتفاصيل الأجهزة منخفضة المستوى، خلق الباحثون مسارًا لمزيد من الاكتشاف العلمي الفعال والمنتج. وتظهر النتائج أنه من الممكن الحصول على كل من الإنتاجية العالية والأداء العالي، وهما هدفان كانا غالبًا في تضاد في الماضي. ومع توجه العالم نحو أنظمة حوسبة أكثر تعقيدًا، ستصبح أدوات مثل JACC ضرورية على الأرج وجه لفتح الإمكانات الكاملة لهذه الآلات، مما يسم يسمح للعلماء بمعالجة مشكلات كانت في السابق صعبة الحل للغاية.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.