แบบฝึกหัด - เพิ่มอาร์เรย์โหนดแบบกําหนดเองลงในคลัสเตอร์ 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)
นําทางไปยังพอร์ทัล Azure เมื่อได้รับข้อความปรากฏ ให้รับรองความถูกต้องด้วยบัญชี Microsoft หรือบัญชี Microsoft Entra ที่มีบทบาทผู้สนับสนุนหรือเจ้าของในการสมัครใช้งาน Azure ที่คุณกําลังใช้ในมอดูลนี้
จากพอร์ทัล Azure เปิด Cloud Shell โดยการเลือกไอคอนในแถบเครื่องมือที่อยู่ถัดจากกล่องข้อความค้นหา และตรวจสอบให้แน่ใจว่าคุณกําลังเรียกใช้เซสชัน Bash
เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อตั้งค่าไดเรกทอรีการทํางานให้กับที่เก็บข้อมูล GitHub ที่คุณได้รับในแบบฝึกหัดก่อนหน้านี้:
cd ~/cyclecloud-slurm/templatesเรียกใช้คําสั่งต่อไปนี้เพื่อเปิดเทมเพลตที่ดาวน์โหลดในตัวแก้ไข nano:
nano slurm.txtในอินเทอร์เฟซตัวแก้ไข 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 คุณจะต้องใช้การเปลี่ยนแปลงเพิ่มเติมกับเทมเพลต
ในอินเทอร์เฟซตัวแก้ไข nano เลื่อนไปที่
[[parameters Auto-Scaling]]ส่วนและเพิ่มเนื้อหาต่อไปนี้โดยตรงก่อน:[[[parameter CUDAMachineType]]] Label = CUDA VM Type Description = The VM type for CUDA execute nodes ParameterType = Cloud.MachineType DefaultValue = Standard_NC24เลื่อนไปที่
[[[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เลื่อนไปที่
[[[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"}เลื่อนไปที่
[[parameters Advanced Networking]]ส่วน และเพิ่มเนื้อหาต่อไปนี้โดยตรงก่อน:[[[parameter CUDAClusterInitSpecs]]] Label = CUDA Cluster-Init DefaultValue = =undefined Description = Cluster init specs to apply to CUDA execute nodes ParameterType = Cloud.ClusterInitSpecsเลือกการกดแป้นพิมพ์พร้อมกัน Ctrl + O เลือกปุ่ม Enter จากนั้นเลือกการผสมคีย์ Ctrl + X เพื่อบันทึกการเปลี่ยนแปลงที่คุณทําและปิดไฟล์
งานที่ 3: ส่งออกคุณสมบัติคลัสเตอร์ Azure CycleCloud
ก่อนที่จะใช้การเปลี่ยนแปลงการกําหนดค่าที่คุณทําในเทมเพลต Azure CycleCloud กับคลัสเตอร์เป้าหมาย ก่อนอื่นคุณจะต้องส่งออกคุณสมบัติคลัสเตอร์
เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อแสดงรายการคลัสเตอร์ที่มีอยู่:
cyclecloud show_clusterหมายเหตุ
ตรวจสอบว่าเอาต์พุตรวมถึงรายการ contoso custom-slurm-lab-cluster
เรียกใช้คําสั่งต่อไปนี้เพื่อส่งออกไปยังไฟล์ params.json รายการของพารามิเตอร์ของคลัสเตอร์ คลัสเตอร์ contoso custom-slurm-lab-lab-cluster และค่าของพารามิเตอร์:
cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.jsonเรียกใช้คําสั่งต่อไปนี้เพื่อตรวจสอบรายการพารามิเตอร์ที่ส่งออกและค่า:
cat ~/params.json
งานที่ 4: แก้ไขไฟล์คุณสมบัติเพื่อรวมพารามิเตอร์ใหม่
ในขณะที่การแก้ไขที่คุณนําไปใช้กับเทมเพลต Azure CycleCloud รวมค่าเริ่มต้นสําหรับพารามิเตอร์ที่เพิ่งเปิดตัวใหม่ทั้งหมด คุณอาจต้องปรับเปลี่ยนไปยังบัญชีสําหรับข้อกําหนดเฉพาะของคุณ ในงานนี้ คุณจะตั้งค่าของพารามิเตอร์ CUDAMachineType และ MaxCUDAExecuteCoreCount
เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อเปิดไฟล์พารามิเตอร์ที่ดาวน์โหลดในตัวแก้ไข nano:
nano ~/params.jsonในตัวแก้ไข nano เลื่อนไปจุดสิ้นสุดของไฟล์ และเพิ่มเนื้อหาต่อไปนี้โดยเริ่มต้นด้วยบรรทัดใหม่ก่อนวงเล็บปีกกาปิด (}):
"CUDAMachineType" : "Standard_NC6", "MaxCUDAExecuteCoreCount" : 60เพิ่มเครื่องหมายจุลภาคไปยังส่วนท้ายของบรรทัดก่อนหน้าบรรทัดที่คุณเพิ่มในขั้นตอนก่อนหน้า:
"CUDAMachineType" : "Standard_NC6"เลือกการกดแป้นพิมพ์พร้อมกัน Ctrl + O เลือกปุ่ม Enter จากนั้นเลือกการผสมคีย์ Ctrl + X เพื่อบันทึกการเปลี่ยนแปลงที่คุณทําและปิดไฟล์
งานที่ 5: นําเข้าไฟล์เทมเพลตและพารามิเตอร์ที่ปรับเปลี่ยนไปยังคลัสเตอร์ที่มีอยู่
เพื่อจบแบบฝึกหัดนี้ คุณจะนําเข้าเทมเพลตที่ปรับเปลี่ยนแล้วและไฟล์พารามิเตอร์ลงในคลัสเตอร์ที่มีอยู่แทนที่การกําหนดค่าปัจจุบัน
เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อนําเข้าเทมเพลตที่ปรับเปลี่ยนและไฟล์พารามิเตอร์ลงในคลัสเตอร์ที่มีอยู่:
cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --forceหมายเหตุ
คุณต้องระบุชื่อของคลัสเตอร์เป้าหมายและ
--forceค่าสถานะเพื่อเขียนทับการกําหนดค่าของคลัสเตอร์ที่มีอยู่บนคอมพิวเตอร์ของคุณ ให้เปิดหน้าต่างเบราว์เซอร์อื่นและนําทางไปยัง URL https://< IP_address> ถ้าคุณได้รับพร้อมท์ ให้ยืนยันว่าคุณต้องการดําเนินการต่อ
ถ้าคุณได้รับพร้อมท์ให้รับรองความถูกต้อง ให้ลงชื่อเข้าใช้โดยใช้ข้อมูลประจําตัวของบัญชีผู้ใช้แอปพลิเคชัน Azure CycleCloud เดียวกันกับที่คุณใช้ในการกําหนดค่า Azure CycleCloud CLI
ในอินเทอร์เฟซแบบกราฟิก Azure CycleCloud ให้นําทางไปยังหน้าคลัสเตอร์ ในรายการของคลัสเตอร์ เลือกรายการ contoso แบบกําหนดเอง-slurm-lab-cluster แล้วเลือกแก้ไข
ในหน้าต่างป็อปอัพแก้ไข contoso แบบกําหนดเอง-slurm-lab-cluster บนหน้าเกี่ยวกับ ให้เลือกถัดไป
บนหน้า การตั้งค่าที่จําเป็น ตรวจสอบการปรากฏของรายการ CUDA VM Type ที่ตั้งค่า เป็น Standard_NC6 และตัวเลือกการปรับขนาดอัตโนมัติที่สอดคล้องกัน:
ยินดีด้วย! คุณได้ทําแบบฝึกหัดที่สองของโมดูลนี้เสร็จสิ้นแล้ว ในแบบฝึกหัดนี้ คุณปรับแต่งคลัสเตอร์ Azure CycleCloud ของคุณเพิ่มเติมโดยใช้เทมเพลตที่ปรับเปลี่ยนรวมถึงข้อกําหนดของ nodearray ใหม่ที่มีพาร์ติชันที่สอดคล้องกัน เพื่อบรรลุเป้าหมายนี้ หลังจากแก้ไขเทมเพลต คุณได้ส่งออกและแก้ไขไฟล์พารามิเตอร์คลัสเตอร์และนําเข้าพร้อมกับเทมเพลตที่ปรับเปลี่ยนแล้วลงในคลัสเตอร์
หมายเหตุ
อย่าลบทรัพยากรที่คุณปรับใช้และกําหนดค่าในแบบฝึกหัดนี้ถ้าคุณวางแผนที่จะเรียกใช้แบบฝึกหัดถัดไป แหล่งข้อมูลเหล่านี้จําเป็นสําหรับการทําแบบฝึกหัดถัดไปให้เสร็จสมบูรณ์