แบบฝึกหัด - เพิ่มอาร์เรย์โหนดแบบกําหนดเองลงในคลัสเตอร์ HPC

เสร็จสมบูรณ์เมื่อ

ความระมัดระวัง

เนื้อหานี้อ้างอิงถึง CentOS ซึ่งเป็นการแจกแจง Linux ที่มีสถานะ End Of Life (EOL) โปรดพิจารณาการใช้งานของคุณและวางแผนตามลําดับ สําหรับข้อมูลเพิ่มเติม โปรดดูคําแนะนํา CentOS End of Life

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 + แทรก การกดแป้นพิมพ์พร้อมกัน

    หมายเหตุ

    การเปลี่ยนแปลงของคุณกําหนด 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-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. บนคอมพิวเตอร์ของคุณ ให้เปิดหน้าต่างเบราว์เซอร์อื่นและนําทางไปยัง URL https://< IP_address> ถ้าคุณได้รับพร้อมท์ ให้ยืนยันว่าคุณต้องการดําเนินการต่อ

  3. ถ้าคุณได้รับพร้อมท์ให้รับรองความถูกต้อง ให้ลงชื่อเข้าใช้โดยใช้ข้อมูลประจําตัวของบัญชีผู้ใช้แอปพลิเคชัน Azure CycleCloud เดียวกันกับที่คุณใช้ในการกําหนดค่า Azure CycleCloud CLI

  4. ในอินเทอร์เฟซแบบกราฟิก Azure CycleCloud ให้นําทางไปยังหน้าคลัสเตอร์ ในรายการของคลัสเตอร์ เลือกรายการ contoso แบบกําหนดเอง-slurm-lab-cluster แล้วเลือกแก้ไข

  5. ในหน้าต่างป็อปอัพแก้ไข contoso แบบกําหนดเอง-slurm-lab-cluster บนหน้าเกี่ยวกับ ให้เลือกถัดไป

  6. บนหน้า การตั้งค่าที่จําเป็น ตรวจสอบการปรากฏของรายการ CUDA VM Type ที่ตั้งค่า เป็น Standard_NC6 และตัวเลือกการปรับขนาดอัตโนมัติที่สอดคล้องกัน:

สกรีนช็อตของหน้าการตั้งค่าที่จําเป็นของหน้าต่างแบบป๊อปอัพแก้ไข contoso แบบกําหนดเอง-slurm-lab-cluster

ยินดีด้วย! คุณได้ทําแบบฝึกหัดที่สองของโมดูลนี้เสร็จสิ้นแล้ว ในแบบฝึกหัดนี้ คุณปรับแต่งคลัสเตอร์ Azure CycleCloud ของคุณเพิ่มเติมโดยใช้เทมเพลตที่ปรับเปลี่ยนรวมถึงข้อกําหนดของ nodearray ใหม่ที่มีพาร์ติชันที่สอดคล้องกัน เพื่อบรรลุเป้าหมายนี้ หลังจากแก้ไขเทมเพลต คุณได้ส่งออกและแก้ไขไฟล์พารามิเตอร์คลัสเตอร์และนําเข้าพร้อมกับเทมเพลตที่ปรับเปลี่ยนแล้วลงในคลัสเตอร์

หมายเหตุ

อย่าลบทรัพยากรที่คุณปรับใช้และกําหนดค่าในแบบฝึกหัดนี้ถ้าคุณวางแผนที่จะเรียกใช้แบบฝึกหัดถัดไป แหล่งข้อมูลเหล่านี้จําเป็นสําหรับการทําแบบฝึกหัดถัดไปให้เสร็จสมบูรณ์