← أحدث الأبحاث
🔢 mathematics

Massively parallel numerical simulations with Julia

تُثبت هذه الورقة أن لغة البرمجة جوليا (Julia) يمكنها تحقيق قابلية توسع متوازية هائلة لتطبيقات الحوسبة عالية الأداء من خلال تحليل كود ديناميكا الموائع الحسابية Trixi.jl على ما يصل إلى 61,440 نواة معالجة مركزية، ومقارنة أدائه بكود FLUXO المكتوب بلغة فورتران (Fortran)، ومعالجة التحديات الرئيسية المتعلقة بتحميل الكود والترجمة عند بدء التشغيل.

المؤلفون الأصليون: Simon Candelaresi, Benedict Geihe, Marco Artiano, Lars Christmann, Valentin Churavy, Andrés Rueda-Ramírez, Hendrik Ranocha, Gregor J. Gassner, Michael Schlottke-Lakemper

نُشر 2026-07-29
📖 4 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Simon Candelaresi, Benedict Geihe, Marco Artiano, Lars Christmann, Valentin Churavy, Andrés Rueda-Ramírez, Hendrik Ranocha, Gregor J. Gassner, Michael Schlottke-Lakemper

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

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

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

كانت النتائج مثيرة ولكنها جاءت مع بعض العقبات في الطريق. وجد الفريق أن Trixi.jl الخاصة بجوليا لم تكن سريعة فحسب، بل استطاعت التوسع بشكل مذهل، حيث تعاملت مع ما يصل إلى 61,440 نواة معالج (CPU) بكفاءة مبهرة. وفي الواقع، في بعض المشكلات الأكبر حجمًا، كانت كود جوليا أسرع من كود فورتران. ومع ذلك، اكتشفوا "ازدحامًا مروريًا" محددًا حدث عندما حاولوا بدء المحاكاة باستخدام عدد كبير جدًا من المعالجات في وقت واحد. نظرًا لأن جوليا مرنة للغاية، يتعين عليها "تحميل" و"ترجمة" (compile) الكود الخاص بها إلى لغة الآلة في كل مرة تبدأ فيها. وعندما تحاول القيام بذلك على آلاف المعالجات في آن واحد، يزدحم نظام ملفات الكمبيوتر وهو يحاول قراءة ملايين الملفات الصغيرة، مما يسبب تأخيرًا هائلًا.

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

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

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

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →