Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Manajer Beban Kerja Slurm (bubur)
Ukuran kapasitas cluster dan pembaruan
Kapasitas cluster ditentukan oleh jumlah node komputasi yang dapat diskalakan cluster. Node komputasi didukung oleh instans Amazon EC2 yang ditentukan dalam sumber daya komputasi dalam AWS ParallelCluster konfigurasi(Scheduling/SlurmQueues/ComputeResources), dan diatur ke dalam antrian (Scheduling/SlurmQueues) yang memetakan 1:1 ke partisi. Slurm
Dalam sumber daya komputasi dimungkinkan untuk mengonfigurasi jumlah minimum node komputasi (instance) yang harus selalu tetap berjalan di cluster (MinCount), dan jumlah maksimum instance sumber daya komputasi dapat diskalakan ke (MaxCount3).
Pada waktu pembuatan cluster, atau setelah pembaruan cluster, AWS ParallelCluster luncurkan instans Amazon EC2 sebanyak yang dikonfigurasi MinCount untuk setiap sumber daya komputasi (Scheduling/SlurmQueues/ ComputeResources) yang ditentukan dalam cluster. Instans yang diluncurkan untuk mencakup jumlah minimal node untuk sumber daya komputasi dalam cluster disebut node statis. Setelah dimulai, node statis dimaksudkan untuk menjadi persisten di cluster dan mereka tidak dihentikan oleh sistem, kecuali peristiwa atau kondisi tertentu terjadi. Peristiwa tersebut termasuk, misalnya, kegagalan Slurm atau pemeriksaan kesehatan Amazon EC2 dan perubahan status Slurm node menjadi DRAIN atau DOWN.
Instans Amazon EC2, dalam kisaran 1 to ‘MaxCount -
MinCount’ (MaxCount minus MinCount), diluncurkan sesuai permintaan untuk menangani peningkatan beban cluster, disebut sebagai node dinamis. Sifat mereka bersifat sementara, mereka diluncurkan untuk melayani pekerjaan yang tertunda dan dihentikan begitu mereka tetap menganggur untuk jangka waktu yang ditentukan oleh Scheduling/SlurmSettings/ScaledownIdletime dalam konfigurasi cluster (default: 10 menit).
Node statis dan node dinamis mematuhi skema penamaan berikut:
-
Node statis
<Queue/Name>-st-<ComputeResource/Name>-<num>dimana<num> = 1..ComputeResource/MinCount -
Node dinamis
<Queue/Name>-dy-<ComputeResource/Name>-<num>dimana<num> = 1..(ComputeResource/MaxCount - ComputeResource/MinCount)
Misalnya diberikan AWS ParallelCluster konfigurasi berikut:
Scheduling: Scheduler: Slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 150
Node berikut akan didefinisikan dalam Slurm
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
Ketika sumber daya komputasi memilikiMinCount == MaxCount, semua node komputasi yang sesuai akan statis dan semua instance akan diluncurkan pada creation/update waktu cluster dan tetap aktif dan berjalan. Contoh:
Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 100
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
Pembaruan kapasitas cluster
Pembaruan kapasitas cluster mencakup penambahan atau penghapusan antrian, komputasi sumber daya atau mengubah sumber daya kom MinCount/MaxCount putasi. Mulai dari AWS ParallelCluster versi 3.9.0, mengurangi ukuran antrian mengharuskan armada komputasi dihentikan atau dis QueueUpdateStrategy etel ke TERMINATE sebelum pembaruan cluster berlangsung. Tidak diperlukan untuk menghentikan armada komputasi atau menyetel QueueUpdateStrategy ke TERMINATE ketika:
-
Menambahkan antrian baru ke Penjadwalan/ SlurmQueues
-
Menambahkan sumber daya komputasi baru
Scheduling/SlurmQueues/ComputeResourceske antrian -
Meningkatkan
MaxCountsumber daya komputasi -
Pen MinCount ingkatan sumber daya komputasi dan peningkatan MaxCount sumber daya komputasi yang sama setidaknya dengan jumlah yang sama
Pertimbangan dan batasan
Bagian ini dimaksudkan untuk menguraikan faktor penting, kendala, atau batasan yang harus diperhitungkan saat mengubah ukuran kapasitas cluster.
-
Saat menghapus antrian dari
Scheduling/SlurmQueuessemua node komputasi dengan nama<Queue/Name>-*, baik statis maupun dinamis, akan dihapus dari Slurm konfigurasi dan instans Amazon EC2 yang sesuai akan dihentikan. -
Saat menghapus sumber daya komputasi
Scheduling/SlurmQueues/ComputeResourcesdari antrian, semua node komputasi dengan nama<Queue/Name>-*-<ComputeResource/Name>-*, baik statis maupun dinamis, akan dihapus dari Slurm konfigurasi dan instans Amazon EC2 yang sesuai akan dihentikan.
Saat mengubah MinCount parameter sumber daya komputasi kita dapat membedakan dua skenario yang berbeda, jika MaxCount dijaga tetap sama dengan MinCount (hanya kapasitas statis), dan jika MaxCount lebih besar dari MinCount (kapasitas statis dan dinamis campuran).
Kapasitas berubah hanya dengan node statis
-
Jika
MinCount == MaxCount, saat meningkatkanMinCount(danMaxCount), cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baruMinCount<Queue/Name>-st-<ComputeResource/Name>-<new_MinCount>dan sistem akan terus mencoba meluncurkan instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan. -
Jika
MinCount == MaxCount, ketika mengurangiMinCount(danMaxCount) jumlah N, cluster akan dikonfigurasi dengan menghapus N node statis terakhir<Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<old_MinCount>]dan sistem akan menghentikan instans Amazon EC2 yang sesuai.-
Keadaan awal
MinCount = MaxCount = 100 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100] -
Perbarui
-30padaMinCountdanMaxCount: MinCount = MaxCount = 70 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]
-
Kapasitas berubah dengan node campuran
JikaMinCount < MaxCount, ketika meningkat MinCount dengan jumlah N (dengan asumsi MaxCount akan tetap tidak berubah), cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baru MinCount (old_MinCount + N): <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount +
N> dan sistem akan terus mencoba meluncurkan instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan. Selain itu, untuk menghormati MaxCount kapasitas sumber daya komputasi, konfigurasi cluster diperbarui dengan menghapus N node dinamis terakhir: <Queue/Name>-dy-<ComputeResource/Name>-[<MaxCount -
old_MinCount - N>...<MaxCount - old_MinCount>] dan sistem akan menghentikan instans Amazon EC2 yang sesuai.
-
Keadaan awal:
MinCount = 100; MaxCount = 150 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100] -
Perbarui +30 untuk
MinCount : MinCount = 130 (MaxCount = 150) -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]
JikaMinCount < MaxCount, ketika meningkatkan MinCount dan MaxCount dengan jumlah yang sama N, cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baru MinCount (old_MinCount + N): <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount +
N> dan sistem akan terus mencoba meluncurkan instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan. Selain itu, tidak ada perubahan yang akan dilakukan pada jumlah node dinamis untuk menghormati yang baru
MaxCountnilai.
-
Keadaan awal:
MinCount = 100; MaxCount = 150 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100] -
Perbarui +30 untuk
MinCount : MinCount = 130 (MaxCount = 180) -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]
JikaMinCount < MaxCount, ketika mengurangi MinCount jumlah N (dengan asumsi MaxCount akan tetap tidak berubah), cluster akan dikonfigurasi dengan menghapus N node statis node statis terakhir <Queue/Name>-st-<ComputeResource/Name>-[<old_MinCount -
N>...<old_MinCount> dan sistem akan menghentikan instans Amazon EC2 yang sesuai. Selain itu, untuk menghormati MaxCount kapasitas sumber daya komputasi, konfigurasi cluster diperbarui dengan memperluas jumlah node dinamis untuk mengisi celahMaxCount - new_MinCount:
<Queue/Name>-dy-<ComputeResource/Name>-[1..<MazCount -
new_MinCount>]. Dalam hal ini, karena itu adalah node dinamis, tidak ada instans Amazon EC2 baru yang akan diluncurkan kecuali penjadwal memiliki pekerjaan yang tertunda pada node baru.
-
Keadaan awal:
MinCount = 100; MaxCount = 150 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100] -
Perbarui -30 pada
MinCount : MinCount = 70 (MaxCount = 120) -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-80] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]
JikaMinCount < MaxCount, ketika menurun MinCount dan MaxCount dengan jumlah yang sama N, cluster akan dikonfigurasi dengan menghapus N node statis terakhir <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount -
N>...<oldMinCount>] dan sistem akan menghentikan instans Amazon EC2 yang sesuai.
Selain itu, tidak ada perubahan yang akan dilakukan pada jumlah node dinamis untuk menghormati MaxCount nilai baru.
-
Keadaan awal:
MinCount = 100; MaxCount = 150 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100] -
Perbarui -30 pada
MinCount : MinCount = 70 (MaxCount = 120) -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]
JikaMinCount < MaxCount, ketika mengurangi MaxCount jumlah N (dengan asumsi MinCount akan tetap tidak berubah), cluster akan dikonfigurasi dengan menghapus N node dinamis terakhir <Queue/Name>-dy-<ComputeResource/Name>-<old_MaxCount -
N...<oldMaxCount>] dan sistem akan menghentikan instans Amazon EC2 yang sesuai jika mereka menjalankan.Tidak diharapkan dampak pada node statis.
-
Keadaan awal:
MinCount = 100; MaxCount = 150 -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100] -
Perbarui -30 pada
MaxCount : MinCount = 100 (MaxCount = 120) -
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
Dampak pada Pekerjaan
Dalam semua kasus di mana node dihapus dan instans Amazon EC2 dihentikan, pekerjaan sbatch yang berjalan pada node yang dihapus akan diantri ulang, kecuali tidak ada node lain yang memenuhi persyaratan pekerjaan. Dalam kasus terakhir ini, pekerjaan gagal dengan status NODE_FAIL dan menghilang dari antrian dan harus dikirim ulang secara manual.
Jika Anda berencana untuk melakukan pembaruan pengubahan ukuran cluster, Anda dapat mencegah pekerjaan berjalan di node yang akan dihapus selama pembaruan yang direncanakan. Ini dimungkinkan dengan mengatur node yang akan dihapus dalam pemeliharaan. Perlu diketahui bahwa menyetel node dalam pemeliharaan tidak akan memengaruhi pekerjaan yang akhirnya sudah berjalan di node.
Misalkan dengan pembaruan pengubahan ukuran cluster yang direncanakan Anda akan menghapus nodeqeueu-st-computeresource-[9-10]. Anda dapat membuat Slurm reservasi dengan perintah berikut
sudo -i scontrol create reservation ReservationName=maint_for_update user=root starttime=now duration=infinite flags=maint,ignore_jobs nodes=qeueu-st-computeresource-[9-10]
Ini akan membuat Slurm reservasi bernama maint_for_update pada nodeqeueu-st-computeresource-[9-10]. Sejak reservasi dibuat, tidak ada lagi pekerjaan yang bisa masuk ke nodeqeueu-st-computeresource-[9-10]. Perlu diketahui bahwa reservasi tidak akan mencegah pekerjaan akhirnya dialokasikan pada nodeqeueu-st-computeresource-[9-10].
Setelah pembaruan pengubahan ukuran cluster, jika Slurm reservasi ditetapkan hanya pada node yang dihapus selama pembaruan perubahan ukuran, reservasi pemeliharaan akan dihapus secara otomatis. Jika sebagai gantinya Anda telah membuat Slurm reservasi pada node yang masih ada setelah pembaruan pengubahan ukuran cluster, kami mungkin ingin menghapus reservasi pemeliharaan pada node setelah pembaruan perubahan ukuran dilakukan, dengan menggunakan perintah berikut
sudo -i scontrol delete ReservationName=maint_for_update
Untuk detail tambahan tentang Slurm reservasi, lihat dokumen resmi SchedMD di sini
Proses pembaruan cluster pada perubahan kapasitas
Setelah perubahan konfigurasi penjadwal, langkah-langkah berikut dijalankan selama proses pembaruan cluster:
-
Berhenti AWS ParallelCluster
clustermgtd (supervisorctl stop clustermgtd) -
Hasilkan konfigurasi Slurm partisi yang diperbarui dari AWS ParallelCluster konfigurasi
-
Mulai
slurmctldulang (dilakukan melalui resep layanan Chef) -
Periksa
slurmctldstatus(systemctl is-active --quiet slurmctld.service) -
Muat ulang konfigurasi Slurm
(scontrol reconfigure) -
Mulai
clustermgtd (supervisorctl start clustermgtd)
Untuk informasi tentang Slurm, lihat https://slurm.schedmd.com
Versi cluster dan SLURM yang didukung
Tabel berikut mencantumkan Slurm versi AWS ParallelCluster dan yang AWS mendukung.
| AWS ParallelCluster versi (s) | SlurmVersi yang didukung |
|---|---|
|
3.13.0 |
24.05.07 |
|
3.12.0 |
23.11.10 |
|
3.11.0 |
23.11.10 |
|
3.9.2, 3.9.3, 3.10.0 |
23.11.7 |
|
3.9.0, 3.9.1 |
23.11.4 |
|
3.8.0 |
23.02.7 |
|
3.7.2 |
23.02.6 |
|
3.7.1 |
23.02.5 |
|
3.7.0 |
23.02.4 |
|
3.6.0, 3.6.1 |
23.02.2 |
|
3.5.0, 3.5.1 |
22.05.8 |
|
3.4.0, 3.4.1 |
22.05.7 |
|
3.3.0, 3.3.1 |
22.05.5 |
|
3.1.4, 3.1.5, 3.2.0, 3.2.1 |
21.08-2-2 |
|
3.1.2, 3.1.3 |
21.08.6 |
|
3.1.1 |
21.08.5 |
|
3.0.0 |
20.11.8 |