دراسات وأبحاث
الحوسبة العالية الأداء في متناول يدك
العدد 150 | كانون اﻷول (ديسمبر)-2019

بقلم ياسر قلعه جي
ماجستير معلوماتية - المعهد العالي

عند حل مسألة هندسية تتطلب عمليات حسابية بسيطة فيكتفى بحاسوب ذي مواصفات جيدة، وعند حل مسألة تتطلب عمليات حسابية متوسطة فنرفع من قدرة الحاسوب، كأن نستعمل مثلًا معالج I9، Xeon e5، RAM 64، محطة عمل بمعالجين أو أكثر، ومع ذلك فقد يستغرق إيجاد الحل زمنًا طويلًا، وأحيانًا لا يمكن البدء بحل المسألة بسبب محدودية الموارد الحاسوبية، لذلك نلجأ إلى الحوسبة العالية الأداء.

 

ما هي الحوسبة العالية الأداء (HPC-High Performance Computing)؟

الحوسبة العالية الأداء هي استعمال المعالجة التفرعية والموزعة لتشغيل التطبيقات المتقدمة بكفاءة وبصورة موثوقة وسريعة ودقيقة، والتي لا يمكن تشغيلها على حواسيب مستقلة. ويستعمل لذلك شبكة سريعة جدًّا تربط مجموعة من المخدِّمات المتقدمة والحواسيب العملاقة والعناقيد الحسابية (Computing Clusters) وبطاقات الشاشة وبطاقات التسريع. ينطبق المصطلح HPC خصوصًا على الأنظمة التي تعمل بقدرة حسابية أعلى من تيرافلوب في الثانية، حيث يوزَّع العمل على عدد من نوى المعالجات، وعلى تطوير نظم قراءة وتخزين البيانات على الأقراص الصُّلبة بدقة وسرعة متناهيتين، إضافة إلى توفير حماية البيانات المتداولة في النظام.

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

 

مجالات استعمال الحوسبة العالية الأداء

إذا أخذنا التكلفة المرتفعة جدًّا لتجهيزات الحوسبة العالية الأداء بالحسبان، فإننا لا نلجأ إلى استعمالها إلا في مجالات محدّدة، نذكر منها:

  • مختبرات البحوث: يُستعمل HPC لمساعدة العلماء في العثور على مصادر الطاقة المتجددة، وفهم تطور عالمنا، والتنبؤ وتتبع العواصف، وإنشاء مواد جديدة.
  • وسائل الإعلام والترفيه: يُستعمل HPC لتحرير الأفلام، فهي تقدم تأثيرات خاصة تثير الإعجاب.
  • النفط والغاز: يُستعمل HPC لتحديد مناطق الآبار الجديدة والمساعدة على زيادة الإنتاج من الآبار الموجودة على نحوٍ أدق.
  • الذكاء الصنعي وتعلم الآلة: يُستعمل HPC للكشف عن الاحتيال على بطاقات الائتمان، وتقديم الدعم الفني الموجّه ذاتيًّا، وتحسين تقنيات فحص السرطان.
  • الخدمات المالية: يُستعمل HPC لتعقب مؤشرات الأسهم في الوقت الحقيقي وأتمتة التداول.
  • يُستعمل HPC للمساعدة في تطوير علاج أمراض مثل السكري والسرطان، ولتمكين تشخيص المريض بسرعة ودقة أكبر.
  • النمذجة العددية والمحاكاة: تَستعمل شركات تصنيع الطيران والسيارات هذا النوع من الحوسبة لحساب المعاملات الأيروديناميكية على الجسم المتحرك (حرارة، ضغط،.... )، ودراسة أثر تصادم نماذج السيارات، وذلك لاكتشاف نقاط الضعف في السيارة والرقي بمستويات الأمان. ويتم ذلك بتقسيم الجسم المراد دراسته إلى شبكة من ملايين النقاط من العناصر الصغيرة (الشكل 1) ثم إطلاق الحسابات التفرعية على نقاط الشبكة التي تمثل النسخة الرقمية من السيارة، وبعد ذلك تُجمَّع نتائج هذه الحسابات الجزئية ويعاد بناء النموذج الأصلي ويقيَّم تصميمه، وهذه الحسابات لا يمكن إنجازها على حاسوب واحد مهما بلغت قوته.

 

الشكل 1: تحويل الجسم المطلوب دراسته إلى نموذج حاسوبي مكون من شبكة من ملايين العناصر الصغيرة

 

 

مكونات مركز الحوسبة العالية الأداء

 لتصميم وإنشاء مركز حوسبة عالي الأداء لا بد من تبيان مكونات العنقود الحسابي (HPC Cluster) من أجهزة وبرمجيات.

 

الأجهزة:

  • العقد NODES: وهي مخدّمات أو حواسيب، يحتوي كل منها على معالج أو أكثر، وكل معالج مؤلف من عدة نوًى؛ مثلًا Xeon، Intel i7 , I9. تُختار إحدى هذه العقد لتكون العقدة الرئيسية أو ما تسمى رأس العنقود (Head Node) وهي العقدة التي تقوم بعمليات تنظيم وتوزيع كافة الحسابات التفرعية، وأما العقد الأخرى فتخصص للعمليات الحسابية (Compute Nodes). أما العمليات الحسابية الجزئية فتمرَّر بين العقد على شكل رسائل.
  • يمكن إشراك المعالج GPU الخاص ببطاقات الإظهار أو بطاقات التسريع في بنية العنقود، إذ يمتاز المعالج GPU بأنه يحتوي على عدد كبير جدًّا من المعالجات الصغيرة التي تقوم بحسابات الفاصلة العائمة.
  • شبكة لربط العقد السابقة: في الحقيقة العنصر الأهم في بنية العنقود الحسابي ليس قدرة وتطور العقدة الفردية، وإنما قدرة وتطور شبكة الربط بين العقد. تتألف الشبكة من مبدِّلات وموجّهات وكبال ربط. ويجب أن تمتاز الشبكة بتقنية ربط ذات سرعة نقل عالية (1 Gbps أو 10 Gbps أو أكثر). والأهم من ذلك هو أن تكون منخفضة التأخير (low latency). وفيما يتعلق بالمعايير العالمية لشبكات الربط تَستعمل العناقيدُ الحسابية شبكةَ Infiniband بدلًا من Ethernet لأنها منخفضة التأخير (الشكل 2).

 

الشكل 2: أفضلية شبكة Infiniband على Ethernet للاستعمال في ربط الحواسيب في العناقيد الحسابية

 

البرمجيات:

  • نظام تشغيل لحواسيب العقد مثل Linux , Windows server 2008 2012 2016...
  • مكتبة المعالجة التفرعية MPI-Message Passing Interface مثل: MS.MPI أو HP Mpi.

تفيد واجهة تمرير الرسائل هذه في تقسيم تنفيذ البرنامج إلى أجزاء منفصلة، وتوزيعها على إجراءات processes، وكل منها ينفَّذ على نواة من النوى المتاحة في العنقود. يقوم المبرمج عادة بكتابة تطبيقه بنفسه واستعمال مكتبة التفريع مع لغة C++ مثلًا، أو تقوم بعض التطبيقات باستعمال هذه المكتبة آليًّا عند ربطها بالعنقود لإجراء الحسابات مثل تطبيق Fluent و Matlab.

  • مجدوِل مهام Job Scheduler يقوم بإدارة مهام الحوسبة على العقد الحسابية: حجز العقد والنوى لكل مهمة حسابية، وإدارة خطوط انتظار تنفيذ المهام، وإدارة العقد، وتحديد العقد الحسابية والعقدة الأساسية (Head Node و Compute Nodes)، وإصدار تقارير الحالة وأزمنة التنفيذ، وغيرها.

 

مراكز عالمية للحوسبة العالية الأداء

يوجد في العالم الكثير من هذه المراكز. يبيِّن الموقع top500.org قائمة ومقارنة للأنظمة الخمسمئة الأقوى عالميًّا لشهر تشرين الثاني 2019. وفيما يلي بعض هذه المراكز والقدرات المذهلة التي تمتلكها.

 

 

فيما يلي أهم مكونات الحاسوب العملاق Summit؛ لاحظ القوة الحسابية الهائلة وعدد النوى فيه:

 

يبين المخطط الآتي (الشكل 3) من موقع top500 تطور أداء الحوسبة العالية الأداء على مرِّ الأعوام.

 

 الشكل 3: تطور الحوسبة العالية الأداء من موقع top500 مع إظهار المركز الأول والأخير والمجموع العام

 

الحوسبة العالية الأداء في متناول يدك وضمن حاسوبك، فهل تعلم ذلك؟

هل تعلم أن في حاسوبك مختبرًا للحوسبة العالية الأداء، فإذا كان لديك معالج Intel Core i7 4790, 4 cores at 4.0 GHz، فإنك تمتلك قدرة حسابية نظرية مقدارها 64 GFLOP/s per core theoretical peak أي 256 GFLOP/s full system theoretical peak. نعم إنها قدرة حسابية فائقة الأداء، ولكن ويا للأسف يُشغِّل الكثير تطبيقاتهم (مثل Ansys Fluent) بالنمط الافتراضي (التسلسلي)، ويجهلون إمكان استثمار طاقة المعالج وتشغيله بنمط HPC واستغلال المعالج بنواه الأربعة. وهذا ما سنبينه لاحقًا في دراسة الحالة.

وهل تعلم أنه إذا كان لديك بطاقة شاشة مثلًا NVIDIA VIDEO CARD فأنت تملك كنزًا حسابيًّا؛ إذ إن هذه البطاقة تحتوي على معالجات GPU (وليس (CPU. فمعالجات GPU تحتوي على نوى حسابية مساعدة CUDA CORES يصل عددها إلى أكثر من 2000 cores، أي يمكن تشغيل 2000 معالجٍ تفرعيّ. وتتجه الشركات حاليًّا نحو تصنيع معالجات GPU، فأصبحت تصنع بطاقات تسريع خاصة مثل NVIDIA TESLA ACCELERTOR للحوسبة العالية الأداء.

 

يبين الشكل 4 الإمكانات الحاسوبية المتوفرة في الحواسيب الشخصية المنزلية:

 

الشكل 4: النوى المتوفرة في حاسوب بمعالج وبطاقة إظهار

 

كيفية بناء عنقود حسابي بإمكانات محلية

سنقوم الآن ببناء عنقود حسابي مكوّن من حاسوبين أو أكثر بهدف تخديم تطبيقات النمذجة العددية مثل Ansys Fluent أو تطبيقات ماتلاب.

مواصفات العنقود:

  • نظام التشغيل لكافة عقد الشبكة هو Windows Server 2008 R2 أو Windows Server 2012 أو Windows Server 2016 .
  • يقود الشبكةَ النطاقُ DC-Domain Controller. سنختار اسمًا للنطاق هو HPC.
  • نختار البرمجية التي ستقود العنقود، وهي Microsoft HPC 2008 R2 أو MS HPC 2012، التي تدعم معالجات GPU. يمكنك تنزيلها من موقع مايكروسوفت مجانًا.

 

المرحلة الأولى: تجهيز الحواسيب

  • جهز حاسوبًا رئيسيًّا وسمِّه Head، وحواسيب أخرى سمِّها Node1, Node1, …. Noden.
  • إذا كان لكل حاسوب بطاقة شبكة (يفضل ثلاث بطاقات) أعطِ العناوين الفيزيائية كما يلي:

 

يمكن طبعًا توسيع العنقود الحسابي بنفس الطريقة لعقد حسابية جديدة مثل Node2,….

 

المرحلة الثانية: تنصيب مجدوِل مهام العنقود HPC على الحاسوب الرئيسي Head

  • نقوم بتنصيب Windows HPC Server 2008 R2 أو الإصدارات الأحدث بعد التحميل من موقع مايكروسوفت.
  • نتبع الخطوات التالية عند التنصيب كما في الشكل 5:

 

الشكل 5: تنصيب مجدول مهام العنقود MS HPC 2008 R2

 

  • نختار التنصيب بصفته عقدة رئيسية Create a new HPC cluster by creating Head Node
  • وننتظر إلى أن ينتهي من تنصيب كافة المكونات التالية (الشكل 6):

 

الشكل 6: مكونات العنقود

 

المرحلة الثالثة: إعداد العنقود HPC (رأس العنقود)

  • نبدأ بتشغيل العنقود )من HPC Cluster Manager Start Menu ->)
  • تظهر نافذة كما في الشكل 7

 

 

الشكل 7: واجهة إعداد عنقود الـحوسبة العالية الأداء

 

  • نقوم الآن بإعداد الشبكة الخاصة بالعنقود: يوفّر مجدوِل مايكروسوفت HPC Cluster Server ثلاثة أنواع من الشبكات المنطقية للتراسل بين العقد؛ هي:
  • الشبكة Application، يجب أن تطبق على الشبكة الفيزيائية الأسرع ضمن العنقود (Infiniband أو 10 Gb Ethernet). وهذه الشبكة مخصصة لتبادل رسائل الحسابات التفرعية MPI.
  • الشبكة Private المخصصة لتبادل رسائل التحكم بين عقد العنقود الحسابي.
  • الشبكة Enterprise للتراسل العادي كالمشاركة ونقل الملفات.

نضغط Configure your network ونختار طبولوجيا الشبكة المناسبة، فإذا كان لديك بطاقتا شبكة لكل عقدة، أي شبكتان فيزيائيتان، نختار الخيار الثاني كما في الشكل 8، وإذا كان لديك ثلاث شبكات فيزيائية، نختار الخيار الرابع وهو الأسرع، أما إذا كانت العقد مرتبطة ضمن شبكة واحدة، فنختار الخيار الخامس.

 

الشكل 8: اختيار طبولوجيا شبكة العنقود المناسبة

 

لا داعي لإعداد مخدمات DHCP لكل شبكة ضمن العنقود بسبب محدودية عدد العقد، لأننا قمنا بإعداد عناوين IP يدويًّا.

  • نقوم الآن بالمتابعة وإعداد الاعتماد Provide Installation Credential كما في الشكل 9.
  • وهذه خطوة هامة لضم العقد إلى العنقود، إذ نزوّد العنقود بحساب مدير ضمن النطاق domain.
  • فيما يتعلق بمثالنا الحساب هو:

HPC\administrator (HPC: Domain Name administrator: user name)

 

 

الشكل 9: إعداد خيارات المصادقة اللازمة لإضافة عقد جديدة إلى العنقود

 

  • نسمي الآن العقد: حيث يحدَّد اسم العقدة الحسابية التي سيجري ضمها إلى العنقود. الاسم الافتراضي هو Nodes%i% حيث i تبدأ من العدد 1.
  • الخطوة الأخيرة هي Hd Create a node template إنشاء قالب لكل عقدة حسابية تُضمُّ إلى العنقود.

 

أصبح رأس العنقود الآن جاهزًا لاستقبال العقد الأخرى. نضغط على التبويب Node Management، ونفعِّل العقد الجديدة بالضغط على العقدة وBring Online.

 

المرحلة الرابعة: تنصيب العنقود HPC على حواسيب العقد الحسابية Nodei

ننصِّب من جديد Windows HPC Server 2008 R2، ولكن ننقر أثناء التنصيب على الخيار Join an Existing HPC cluster by creating a new compute node، ونختار أيضًا الرأس الذي سيقود هذه العقدة وهو العقدة HEAD. بعد الانتهاء من التنصيب، ننتقل إلى العقدة الرأس فنشاهد اسم العقدة الحسابية وقد تم ضمها إلى العنقود. نضغط على اسم هذه العقدة ونختار Assign Node Template ثم Bring Online ثم Start، وبعد ذلك يصبح مجدوِل المهام جاهزًا كما في الشكل 10.

 

الشكل 10: عنقود HPC جاهز لتنفيذ الحسابات

 

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

 

ملاحظة: بنفس الطريقة يمكن تنصيب النسخة الأحدث من العنقود: Microsoft HPC Pack 2012 أو Microsoft HPC Pack 2016، وهما تدعمان تشغيل GPU.

 

دراسة حالة

في دراسة المعامِلات الآيروديناميكية (ضغط، حرارة...) لأحد نماذج جريان الموائع المصمم بواسطة Ansys Fluent، ندرس أولًا النموذج التصميمي ونحدِّد شبكة تقطيع Mesh جسم النموذج، حيث نقطِّع الجسم المراد نمذجته إلى جزئيات مليونية متناهية الصغر. ولإطلاق الحسابات نقوم باستعمال Fluent Launcher:

 

الحالة الأولى حل المسألة باستعمال حاسوب i9 (10 cores)

تظهر واجهة fluent launcher كما في الشكل 11

 

الشكل 11: واجهة تنفيذ النمذجة العددية لبرنامج fluent (معالجة تسلسلية، تفرعية، موزعة على العنقود في التبويب Scheduler)

 

  • نختار الحل التسلسلي serial، فنلاحظ أن نواة واحدة أو أكثر من المعالج تستثمر أثناء الحل، وأن التنفيذ يتم بزمن قدره 16.09 ثانية.
  • نختار الحل التفرعي parallel، ونطلق الحل على 20 إجراء: 10 cores x 2 threads per core. فيُوزَّع الحل بالتساوي على كافة نوى المعالج، ويتم التنفيذ بزمن قدره 6.5 ثانية، أي إن زمن التنفيذ نقص بمقدار 60%.

 

الحالة الثانية: حل المسألة باستعمال عنقود حسابي صمِّم كما في السابق

صممنا عنقودًا حسابيًّا كما ورد شرحه سابقًا بالمواصفات التالية:

أربعة حواسيب، كل منها يتصف بالمواصفات التالية:

  • نظام التشغيل MS Windows 2008 Server.
  • برمجية M.S HPC cluster server تم تنزيلها على الحاسوب الرئيسي Domain Controller.
  • العدد الأعظمي لعدد النوى للعنقود هو (32 threads) 4 PC x 4 CORE=16 CORES
  • يتكون العنقود من حاسوب رئيسي Head Node وثلاثة حواسيب مرتبطة Compute Nodes.
  • مواصفات كل حاسوب: Processor    intel i7 4th generation + 16 G.B RAM. وترتبط الحواسيب بعضها ببعض بواسطة ثلاث شبكات إثرنت 1 G.b/s.

 

نقوم بإطلاق حل نموذج حسابي آخر عن طريق fluent launcher بتحديد عدد الـ Processes ثم بالضغط على الخيار Show More Options نحدد اسم العقدة الرأس (HEAD) في علامة التبويب scheduler، حيث يتراسل fluent launcher مع العنقود ويطلب حجز العقد الحسابية، فيقوم المجدول بحجز العقد المطلوبة أو وضع مهمة العمل في حالة انتظار ريثما تفرغ عقد أخرى من التنفيذ.

 

نلاحظ من الشكل11 أنه يمكن أيضًا ضبط المحددات التفرعية parallel settings لتحديد نوع شبكة العنقود: Infiniband أو Ethernet، وأيضًا نوع مكتبة التفريع: hp-mpi أوMS Mpi أوpcmpi .

يمكنك أيضًا الاستفادة من بطاقة الإظهار لديك واستعمالها في المشاركة بعملية الحساب من خلال الخيار GPGPUs per Machine.

 

يبين الشكل 12 مقارنة لنتائج التنفيذ على عقد العنقود:

 

الشكل 12: تأثير عدد النوى المستعملة في العنقود الحسابي في زمن تنفيذ نمذجة جريان مائع حول جسيم سيارة

 

نلاحظ الاستفادة الكبيرة من العنقود الحسابي، فقد نقص زمن التنفيذ من 1128 ثانية في الحالة التسلسلية إلى 188 ثانية عند استعمال كافة عقد العنقود الأربعة، أي نقص الزمن إلى 16.67%، طبعًا من مزايا برمجية Windows HPC Server 2008R2 أو الأحدث أنه يمكنك مراقبة حالة كل نواة، والعقد الحرّة الجاهزة لاستقبال طلبات الحساب التفرعي، وإطلاق مهام جديدة عن طريق أوامر DOS أو ملف XML، وإعادة ترتيب جدولة المهام، وإصدار تقارير إحصائية والكثير من الإمكانات الرائعة، والإدارة المركزية لكافة العقد.

 

الخاتمة

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

 

المراجع

https://en.wikipedia.org/wiki/Supercomputer

https://www.top500.org

https://epcced.github.io/hpc-intro/

Introduction to High-Performance Computing

https://www.hpcadvisorycouncil.com

Interconnect Analysis: 10GigE and InfiniBand in High Performance Computing

High-Performance Computing (HPC) in ANSYS Fluent ( Fluent Help Documents).

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-hpc-server-2008R2/

 


 

 

قد ترغب كذلك بقراءة
بيئات التطوير الحديثة لتطبيقات الأجهزة الذكية
تكنولوجيا المعلومات والاتصالات والاقتصاد الرقمي