Slurm Workload Manager (slurm) - AWS ParallelCluster

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Slurm Workload Manager (slurm)

Ukuran dan pembaruan kapasitas cluster

Kapasitas cluster ditentukan oleh jumlah node komputasi yang dapat diskalakan oleh cluster. Node komputasi didukung oleh EC2 instans Amazon yang ditentukan dalam sumber daya komputasi dalam AWS ParallelCluster konfigurasi(Scheduling/SlurmQueues/ComputeResources), dan diatur ke dalam antrian yang memetakan 1:1 (Scheduling/SlurmQueues) ke Slurm partisi.

Dalam sumber daya komputasi, dimungkinkan untuk mengonfigurasi jumlah minimum node komputasi (instance) yang harus selalu berjalan di cluster (MinCount), dan jumlah maksimum instance yang dapat diskalakan oleh sumber daya komputasi ke (3). MaxCount

Pada waktu pembuatan klaster, atau pada pembaruan klaster, AWS ParallelCluster meluncurkan sebanyak mungkin EC2 instance Amazon seperti yang dikonfigurasi MinCount untuk setiap sumber daya komputasi (Scheduling/SlurmQueues/ ComputeResources ) yang ditentukan dalam klaster. Instance yang diluncurkan untuk mencakup jumlah minimal node untuk sumber daya komputasi di cluster disebut node statis. Setelah dimulai, node statis dimaksudkan untuk persisten di cluster dan mereka tidak dihentikan oleh sistem, kecuali peristiwa atau kondisi tertentu terjadi. Peristiwa semacam itu termasuk, misalnya, kegagalan Slurm atau pemeriksaan EC2 kesehatan Amazon dan perubahan Slurm status node ke DRAIN atauDOWN.

EC2Instans Amazon, dalam kisaran 1 hingga ‘MaxCount - MinCount’ (MaxCount minus MinCount), diluncurkan sesuai permintaan untuk menangani peningkatan beban cluster, disebut sebagai node dinamis. Sifat mereka fana, mereka diluncurkan untuk melayani pekerjaan yang tertunda dan dihentikan setelah mereka tetap menganggur untuk jangka waktu yang ditentukan oleh Scheduling/SlurmSettings/ScaledownIdletime dalam konfigurasi cluster (default: 10 menit).

Node statis dan simpul dinamis mematuhi skema penamaan berikut:

  • Node statis <Queue/Name>-st-<ComputeResource/Name>-<num> di mana <num> = 1..ComputeResource/MinCount

  • Node dinamis <Queue/Name>-dy-<ComputeResource/Name>-<num> di mana <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 waktu pembuatan/pembaruan cluster dan terus berjalan. Sebagai 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 termasuk menambahkan atau menghapus antrian, menghitung sumber daya atau mengubah sumber daya komputasi. MinCount/MaxCount Mulai dari AWS ParallelCluster versi 3.9.0, mengurangi ukuran antrian memerlukan armada komputasi dihentikan atau QueueUpdateStrategydisetel ke TERMINATE for sebelum pembaruan cluster berlangsung. Tidak perlu menghentikan armada komputasi atau menyetel QueueUpdateStrategyke TERMINATE kapan:

  • Menambahkan antrian baru ke Penjadwalan/SlurmQueues

  • Menambahkan sumber daya komputasi baru Scheduling/SlurmQueues/ComputeResources ke antrian

  • Meningkatkan MaxCount sumber daya komputasi

  • Peningkatan MinCount 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.

Ketika mengubah MinCount parameter sumber daya komputasi kita dapat membedakan dua skenario yang berbeda, jika MaxCount tetap sama dengan MinCount (kapasitas statis saja), dan jika MaxCount lebih besar dari MinCount (kapasitas statis dan dinamis campuran).

Perubahan kapasitas hanya dengan node statis

  • JikaMinCount == MaxCount, saat meningkatkan MinCount (danMaxCount), cluster akan dikonfigurasi dengan memperluas jumlah node statis ke nilai baru MinCount <Queue/Name>-st-<ComputeResource/Name>-<new_MinCount> dan sistem akan terus mencoba meluncurkan EC2 instans Amazon untuk memenuhi kapasitas statis baru yang diperlukan.

  • JikaMinCount == MaxCount, saat mengurangi MinCount (danMaxCount) jumlah N, cluster akan dikonfigurasi dengan menghapus node statis N terakhir <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<old_MinCount>] dan sistem akan menghentikan instance Amazon yang sesuai. EC2

    • Keadaan awal MinCount = MaxCount = 100

    • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
    • Update -30 pada MinCount dan MaxCount: MinCount = MaxCount = 70

    • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

Perubahan kapasitas 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 EC2 instans Amazon 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 instance 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 ke 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, saat meningkatkan MinCount dan MaxCount dengan jumlah N yang sama, 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 EC2 instans Amazon 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 ke 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 node statis N terakhir node statis <Queue/Name>-st-<ComputeResource/Name>-[<old_MinCount - N>...<old_MinCount> dan sistem akan menghentikan instance Amazon yang sesuai. EC2 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 EC2 instance Amazon baru yang akan diluncurkan kecuali penjadwal memiliki pekerjaan di pending 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, saat mengurangi MinCount dan MaxCount dengan jumlah N yang sama, cluster akan dikonfigurasi dengan menghapus node statis N terakhir <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<oldMinCount>] dan sistem akan menghentikan instance Amazon yang sesuai. EC2

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 instance EC2 Amazon yang sesuai jika mereka berjalan. Tidak ada dampak yang diharapkan 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 EC2 instance Amazon dihentikan, pekerjaan sbatch yang berjalan pada node yang dihapus akan diantrian ulang, kecuali tidak ada node lain yang memenuhi persyaratan pekerjaan. Dalam kasus terakhir ini pekerjaan akan gagal dengan status NODE _ FAIL dan menghilang dari antrian; jika demikian, itu 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 pada 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]. Dari saat reservasi dibuat, tidak ada lagi pekerjaan yang bisa berjalan 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 telah dihapus selama pembaruan pengubahan ukuran, reservasi pemeliharaan akan dihapus secara otomatis. Jika sebaliknya 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 pengubahan ukuran dilakukan, dengan menggunakan perintah berikut

sudo -i scontrol delete ReservationName=maint_for_update

Untuk detail tambahan tentang Slurm reservasi, lihat dokumen SchedMD resmi di sini.

Proses pembaruan klaster tentang perubahan kapasitas

Setelah perubahan konfigurasi penjadwal, langkah-langkah berikut dijalankan selama proses pembaruan cluster:

  • Berhenti AWS ParallelCluster clustermgtd (supervisorctl stop clustermgtd)

  • Hasilkan diperbarui Slurm konfigurasi partisi dari AWS ParallelCluster konfigurasi

  • Mulai ulang slurmctld (dilakukan melalui resep layanan Chef)

  • Periksa slurmctld status (systemctl is-active --quiet slurmctld.service)

  • Muat ulang Slurm konfigurasi (scontrol reconfigure)

  • Mulai clustermgtd (supervisorctl start clustermgtd)

Untuk informasi tentang Slurm, lihat https://slurm.schedmd.com. Untuk unduhan, lihat https://github.com/SchedMD/slurm/tag. Untuk kode sumbernya, lihat https://github.com/SchedMD/slurm.

AWS ParallelCluster versi Didukung Slurm versi

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.8-2

3.1.2, 3.1.3

21.08.6

3.1.1

21.08.5

3.0.0

20.11.8