من 0.01 TFlops HPL إلى ابتكار التطبيقات ASC'18

مرحبا يا هبر! نواصل سلسلة من المقالات حول مشاركة فريق من جامعة ولاية سانت بطرسبرغ (نسمي أنفسنا EnterTildeDot) في أكبر مسابقات الكمبيوتر العملاق للطلاب في العالم.



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


جولة قصيرة في مسابقات الحاسوب العملاق


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


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


  • النشاط الأساسي: حل مشاكل HPC ؛
  • فريق: 5 طلاب + مدرب ؛
  • مرحلة التأهل: وصف غائب للمقترح مع وصف لحل المشكلات المقدمة ، والتي يتم على أساسها تحديد قائمة تضم 20 من المتأهلين للتصفيات النهائية.
  • المرحلة النهائية: منافسة بدوام كامل لـ 20 فريقًا تستمر حوالي 5 أيام تنافسية ، بما في ذلك التجميع والتكوين الكامل لمجموعة الحوسبة ، وحل المشكلات ، والعرض. يتم تجميع الكتلة على أساس قيود على الطاقة تبلغ 3 كيلووات ، إما من الحديد الذي يوفره المنظمون ، أو من تلقاء نفسها. ليس لدى الكتلة وصول إلى الإنترنت. تتزامن المهام جزئيًا مع مهام المرحلة التأهيلية ، ولكن هناك أيضًا مهمة غير معروفة - تطبيق الغموض.

حسنًا ، الآن من أجل التراجع عن البرنامج التعليمي. على عكس أعضاء الفريق الآخرين الذين وصلوا بالفعل إلى نهائي ASC'17 ، انضممت إلى الحركة التنافسية هذا العام فقط. انضممت إلى الفريق في سبتمبر ، وتم إرسال مهام مرحلة التأهل فقط في يناير ، لذلك كان لدي الوقت الكافي لدراسة المفاهيم الأساسية للمسابقة ، وكذلك لدراسة المهمة الوحيدة المعروفة - HPL و HPCG. تحدث مهمة في شكل أو آخر كل عام تقريبًا ، ومع ذلك ، لا يُعرف دائمًا مقدمًا عن المعدات التي تحتاج إلى تنفيذ المهمة (يوفر المنظمون أحيانًا وصولاً بعيدًا إلى مواردهم الخاصة).


HPL


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


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


والآن عن HPL الحقيقي


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


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


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

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



في حالة المرحلة النهائية ، من المنطقي مقارنة القيم المطلقة للأداء. لا يعني أن الجميع هنا على قدم المساواة ، ولكن على الأقل هناك قيود على القوة القصوى المسموح بها للنظام.


تعتمد نتيجة تنفيذ المعيار بشكل أساسي على مكونين: تكوين الكتلة وتعيين معلمات المعيار مباشرة. سيكون من الجدير بالذكر أيضًا تأثير اختيار المترجمين والمكتبات للمصفوفة والحوسبة المتجهة ، ولكن هنا كل شيء ممل جدًا ، يستخدم الجميع مترجمًا من Intel + MKL. وفي حالة الثنائيات ، لا يتعين عليك الاختيار على الإطلاق ، نظرًا لأنها مجمعة بالفعل. نتيجة HPL هي قيمة عددية تُظهر عدد عمليات النقطة العائمة في الثانية التي يقوم بها نظام الحوسبة هذا. وحدة القياس الرئيسية هي FLOPS (عمليات النقطة العائمة في الثانية) مع البادئات المقابلة. في حالة المرحلة النهائية من المسابقة ، نتحدث دائمًا تقريبًا عن أنظمة Tera-scale.


تحسين النتائج


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


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


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


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


ASC'18 النهائي


وها نحن هنا في الصين ، في البلدة الصغيرة بالمعايير الصينية - نانتشانغ ، في النهائي. نقوم بتجميع الكتلة لمدة يومين ، ثم المهام.



هذا العام ، تم تزويد جميع الفرق بأربع بطاقات Nvidia V100 ، وهذا لم يمنحنا مزايا على الفرق الأخرى ، ولكنه جعل من الممكن إطلاق HPL ليس على وحدة المعالجة المركزية. تمنح العقد كل شخص في البداية 10 ، ولكن يجب إعادة العقد الإضافية (تذكر عن حد 3 كيلو وات) قبل بدء مرحلة المهام التنافسية الرئيسية. هناك بعض الحيل هنا - تقليل تردد وحدة المعالجة المركزية ووحدة معالجة الرسومات ، وينخفض ​​أدائها ، ومع ذلك ، يمكنك اختيار هذه القيم للتردد الذي نحصل فيه على المزيد من الأداء لكل وحدة طاقة مستهلكة. من خلال خفض التردد ، نحصل على فرصة لإضافة المزيد من المسرعات ، والتي ستؤثر في النهاية على الأداء للأفضل. للأسف ، ستكون هذه الحيلة أكثر فائدة لنا إذا وصلنا إلى المنافسة بحقيبة مسرعات ، مثل المشاركين الآخرين. ومع ذلك ، كنا قادرين على تحمل أكبر عدد ممكن من وحدات المعالجة المركزية. نظرًا لأن جميع مهام المسابقة لا تتطلب GPU ، فقد كان هناك شك في أن هذا قد يؤدي إلى حد ما بطريقة ما.
لذا ، فإن تكوين الكتلة الأكثر شيوعًا في المباراة النهائية للمسابقة هو الحد الأدنى من العقد ، والحد الأقصى من البطاقات.



linkpack النهائي وقليلا عن السجلات


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


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



في الليلة التي سبقت استسلام Linpak ، قمنا مرة أخرى بفحص معايير تقييم المهام بعناية ، وهكذا ، بالنسبة لـ Linpak ، كانت الصيغة تتكون من مكونين - قيمة معينة تعتمد على نتيجة الفريق الذي فاز بـ Linpak ، ومعامل الإنجاز الناجح للمهمة. اتضح أن هذا المعامل كبير جدًا لدرجة أنه من غير المناسب تمامًا تمرير قيمة Lynpak المناسبة ، ولكن مع وجود خطأ غير مفهوم ، مقارنة بتمرير أي قيمة ، ولكن دون خطأ. بعد النظر بعناية في كل شيء ، نظرًا لقضاء الكثير من الوقت في البحث عن حل للخطأ وأن الحصول على مجموعات البيانات من المهام التالية يعتمد تمامًا على وقت الانتهاء من Linpak ، قررنا دمج هذه المهمة بشكل تكتيكي. لذلك تم وضع "سجل" مطلق في تاريخ منافسات الحاسبات الخارقة بين القيم الصحيحة. انفجر Lynpak الخاص بنا بقيمة 0.01 TFlops. بالطبع ، من خلال تحسين المعيار المعياري لوحدات المعالجة المركزية الحالية ، سنحصل على قيمة أداء أعلى قليلاً ، ومع ذلك ، لن يؤثر ذلك على النقاط كثيرًا ، وكان من الممكن إنفاق الوقت بشكل أكبر. تذكر أن Lynpak تعمل لفترة أطول على وحدة المعالجة المركزية. تم عرض أفضل نتيجة من قبل National Tsing Hua University - 43 TFlops. بعد يوم أو يومين ، سألنا جاك دونغارا (منشئ Lynpac) ، عضو اللجنة المنظمة للمسابقة ، بشكل عرضي ، ما هي طريقة Lynpak؟ على ما يبدو ، في ذلك الوقت لم يكن قد رأى لوحة النتائج بعد: كان رد فعل WHAAAT يستحق كل ساعة قضيناها في HPL.



تطبيق الغموض


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


السلاح السري: وحدة المعالجة المركزية


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


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



يتم أخذ الجدول مع تكوينات أنظمة الكمبيوتر ، بالإضافة إلى الصورة الرئيسية ، من الموقع http://www.hpcwire.com/ .

Source: https://habr.com/ru/post/ar419847/


All Articles