تمرين - إضافة صفيف عقدة مخصص إلى نظام مجموعة HPC

مكتمل

تنبيه

يشير هذا المحتوى إلى CentOS، وهو توزيع Linux هو حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

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

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

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

ستقوم خلال هذا التمرين بتنفيذ المهام التالية:

  • المهمة 1: إضافة تعريف nodearray إلى قالب Azure CycleCloud
  • المهمة 2: إضافة معلمات واجهة رسومية إلى قالب Azure CycleCloud
  • المهمة 3: تصدير خصائص نظام مجموعة Azure CycleCloud
  • المهمة 4: تحرير ملف الخصائص لتضمين المعلمات الجديدة
  • المهمة 5: استيراد ملف القالب والمعلمات بعد تعديله إلى نظام المجموعة الموجود

إشعار

تأكد من إكمال التمرين السابق بنجاح قبل بدء هذا التمرين.

المهمة 1: إضافة تعريف nodearray إلى قالب Azure CycleCloud

ستبدأ بإضافة تعريف nodearray داخل قالب Slurm الذي قمت بتخصيصه في التمرين السابق. يتضمن نموذج القالب قسمين باسم hpc وhtc. ستقوم بإنشاء قسم آخر وnodearray مقابل مخصص للمهام التي تستفيد من إمكانات Compute Unified Device Architecture (CUDA).

  1. انتقل إلى مدخل Azure. عند المطالبة، قم بالمصادقة باستخدام حساب Microsoft أو حساب Microsoft Entra له دور المساهم أو المالك في اشتراك Azure الذي تستخدمه في هذه الوحدة النمطية.

  2. من مدخل Azure، افتح Cloud Shell من خلال تحديد رمزه في شريط الأدوات بجوار مربع نص البحث، وتأكد من تشغيل جلسة عمل Bash.

  3. قم بتشغيل الأمر التالي في Cloud Shell لتعيين دليل العمل إلى الدليل الذي يستضيف مستودع GitHub الذي أحضرته في التمرين السابق:

    cd ~/cyclecloud-slurm/templates
    
  4. شغل الأمر التالي لفتح القالب الذي تم تنزيله في محرر nano:

    nano slurm.txt
    
  5. في واجهة محرر nano، قم بالتمرير إلى [parameters About] القسم وأضف المحتوى التالي مباشرة قبله:

    
    [[nodearray cuda]]
    MachineType = $CUDAMachineType
    ImageName = $CUDAImageName
    MaxCoreCount = $MaxCUDAExecuteCoreCount
    
    AdditionalClusterInitSpecs = $CUDAClusterInitSpecs
    
        [[[configuration]]]
        slurm.autoscale = true
        slurm.hpc = true
    
        [[[cluster-init cyclecloud/slurm:execute]]]
    
        [[[network-interface eth0]]]
        AssociatePublicIpAddress = $ExecuteNodesPublic
    
    

    إشعار

    إذا كنت تستخدم كمبيوتر Windows، يمكنك لصق محتوى الحافظة باستخدام تركيبة المفاتيح Shift + Insert .

    إشعار

    تحدد التغييرات التي تجريها nodearray إضافي.

المهمة 2: إضافة معلمات واجهة رسومية إلى قالب Azure CycleCloud

لتتمكن من تعديل قيم معلمات القالب باستخدام واجهة Azure CycleCloud الرسومية، ستقوم بتطبيق المزيد من التغييرات على القالب.

  1. في واجهة محرر nano، قم بالتمرير إلى [[parameters Auto-Scaling]] القسم وأضف المحتوى التالي مباشرة قبله:

    
        [[[parameter CUDAMachineType]]]
        Label = CUDA VM Type
        Description = The VM type for CUDA execute nodes
        ParameterType = Cloud.MachineType
        DefaultValue = Standard_NC24
    
    
  2. قم بالتمرير إلى [[[parameter HPCMaxScalesetSize]]] المقطع وأضف المحتوى التالي مباشرة قبله:

    
        [[[parameter MaxCUDAExecuteCoreCount]]]
        Label = Max CUDA Cores
        Description = The total number of CUDA execute cores to start
        DefaultValue = 100
        Config.Plugin = pico.form.NumberTextBox
        Config.MinValue = 0
        Config.IntegerOnly = true
    
    
  3. قم بالتمرير إلى [[[parameter SchedulerClusterInitSpecs]]] المقطع وأضف المحتوى التالي مباشرة قبله:

    
        [[[parameter CUDAImageName]]]
        Label = CUDA OS
        ParameterType = Cloud.Image
        Config.OS = linux
        DefaultValue = cycle.image.centos7
        Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu18"}
    
    
  4. قم بالتمرير إلى [[parameters Advanced Networking]] المقطع وأضف المحتوى التالي مباشرة قبله:

    
        [[[parameter CUDAClusterInitSpecs]]]
        Label = CUDA Cluster-Init
        DefaultValue = =undefined
        Description = Cluster init specs to apply to CUDA execute nodes
        ParameterType = Cloud.ClusterInitSpecs
    
    
  5. حدد مجموعة المفاتيح Ctrl + O، وحدد مفتاح الإدخال Enter، ثم حدد مجموعة المفاتيح Ctrl + X لحفظ التغييرات التي أجريتها وإغلاق الملف.

المهمة 3: تصدير خصائص نظام مجموعة Azure CycleCloud

قبل تطبيق تغييرات التكوين التي أجريتها في قالب Azure CycleCloud على نظام المجموعة الهدف، ستحتاج أولاً إلى تصدير خصائص نظام المجموعة.

  1. قم بتشغيل الأمر التالي في Cloud Shell لسرد المجموعات الموجودة:

    cyclecloud show_cluster
    

    إشعار

    تحقق من أن الإخراج يتضمن إدخال contoso-custom-slurm-lab-cluster.

  2. شغل الأمر التالي للتصدير إلى الملف params.json، وهو يضم قائمة معلمات نظام المجموعة contoso-custom-slurm-lab-cluster والقيم الخاصة به:

    cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
    
  3. شغل الأمر التالي لمراجعة قائمة المعلمات التي تم تصديرها وقيمها:

    cat ~/params.json
    

المهمة 4: تحرير ملف الخصائص لتضمين المعلمات الجديدة

بينما تضمنت عمليات التحرير التي طبقتها على قالب Azure CycleCloud قيماً افتراضية لجميع المعلمات التي تم تقديمها حديثًا، فقد تحتاج إلى تعديلها لمراعاة متطلباتك المحددة. وفي هذه المهمة، ستقوم بتعيين القيم لمعلمتي CUDAMachineType وMaxCUDAExecuteCoreCount.

  1. قم بتشغيل الأمر التالي في Cloud Shell لفتح ملف المعلمات الذي تم تنزيله في محرر nano:

    nano ~/params.json
    
  2. في محرر nano، قم بالتمرير إلى نهاية الملف وأضف المحتوى التالي بدءا من سطر جديد قبل أقواس الإغلاق (}):

       "CUDAMachineType" : "Standard_NC6",
       "MaxCUDAExecuteCoreCount" : 60
    
  3. أضف فاصلة إلى نهاية السطر الذي يسبق السطر الذي أضفته في الخطوة السابقة:

       "CUDAMachineType" : "Standard_NC6"
    
  4. حدد مجموعة المفاتيح Ctrl + O، وحدد مفتاح الإدخال Enter، ثم حدد مجموعة المفاتيح Ctrl + X لحفظ التغييرات التي أجريتها وإغلاق الملف.

المهمة 5: استيراد ملف القالب والمعلمات بعد تعديله إلى نظام المجموعة الموجود

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

  1. قم بتشغيل الأمر التالي في Cloud Shell لاستيراد القالب المعدل وملف المعلمات الخاص به إلى نظام المجموعة الموجود:

    cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --force
    

    إشعار

    يجب تحديد اسم نظام المجموعة الهدف والعلامة --force للكتابة فوق تكوين نظام المجموعة الموجود.

  2. على جهاز الكمبيوتر، افتح نافذة مستعرض أخرى، وانتقل إلى عنوان https://<IP_address> URL. عند المطالبة، تأكد من رغبتك في المتابعة.

  3. إذا تمت مطالبتك بالمصادقة، فسجل الدخول عن طريق توفير بيانات اعتماد لنفس حساب مستخدم تطبيق Azure CycleCloud الذي استخدمته لتكوين Azure CycleCloud CLI.

  4. في واجهة Azure CycleCloud الرسومية، انتقل إلى صفحة Clusters. في قائمة المجموعات، حدد إدخال contoso-custom-slurm-lab-cluster ، ثم حدد Edit.

  5. في نافذة contoso-custom-slurm-lab-cluster المنبثقة، في الصفحة About، وحدد Next.

  6. في صفحة Required settings، تحقق من وجود إدخال CUDA VM Type معيناً إلى قيمة Standard_NC6 وخيارات تغيير الحجم التلقائي المقابلة:

لقطة شاشة لصفحة الإعدادات المطلوبة في النافذة المنبثقة Edit contoso-custom-slurm-lab-cluster.

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

إشعار

لا تحذف الموارد التي قمت بنشرها وتكوينها في هذا التمرين إذا كنت تخطط لتشغيل التمرين التالي. هذه الموارد مطلوبة لإكمال التمرين التالي.