

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

# Slurm Workload Manager (`slurm`)
<a name="slurm-workload-manager-v3"></a>

## Ukuran dan pembaruan kapasitas cluster
<a name="cluster-capacity-size-and-update"></a>

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

[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`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount)

Pada waktu pembuatan klaster, atau pada pembaruan klaster, AWS ParallelCluster meluncurkan instans Amazon EC2 sebanyak yang dikonfigurasi untuk setiap sumber daya komputasi `Scheduling/SlurmQueues/ ComputeResources` () yang ditentukan `MinCount` 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 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` 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 memiliki`MinCount == MaxCount`, semua node komputasi yang sesuai akan statis dan semua instance akan diluncurkan pada creation/update waktu cluster dan terus 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
<a name="cluster-capacity-update"></a>

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 [QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy)disetel ke TERMINATE sebelum pembaruan klaster berlangsung. Tidak perlu menghentikan armada komputasi atau menyetel [QueueUpdateStrategy](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-QueueUpdateStrategy)ke TERMINATE saat: 
+ Menambahkan antrian baru ke Penjadwalan/[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-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
<a name="considerations-limitations"></a>

Bagian ini dimaksudkan untuk menguraikan faktor penting, kendala, atau batasan yang harus diperhitungkan saat mengubah ukuran kapasitas cluster.
+ Saat menghapus antrian dari `Scheduling/SlurmQueues` semua 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/ComputeResources` dari 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.

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
<a name="capacity-changes-static-only"></a>
+ Jika`MinCount == MaxCount`, saat meningkatkan `MinCount` (dan`MaxCount`), 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 instans Amazon EC2 untuk memenuhi kapasitas statis baru yang diperlukan.
+ Jika`MinCount == MaxCount`, saat mengurangi `MinCount` (dan`MaxCount`) 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 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]
    ```
  + 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
<a name="capacity-changes-mixed-nodes"></a>

Jika`MinCount < 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 node dinamis N 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 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]
  ```

Jika`MinCount < 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 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

 `MaxCount`nilai.
+ 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]
  ```

Jika`MinCount < 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 EC2 yang sesuai. Selain itu, untuk menghormati `MaxCount` kapasitas sumber daya komputasi, konfigurasi cluster diperbarui dengan memperluas jumlah node dinamis untuk mengisi celah`MaxCount - 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 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]
  ```

Jika`MinCount < 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 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]
  ```

Jika`MinCount < MaxCount`, saat mengurangi `MaxCount` jumlah N (dengan asumsi `MinCount` akan tetap tidak berubah), cluster akan dikonfigurasi dengan menghapus node dinamis N terakhir `<Queue/Name>-dy-<ComputeResource/Name>-<old_MaxCount - N...<oldMaxCount>]` dan sistem akan menghentikan instance Amazon EC2 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
<a name="impacts-on-jobs"></a>

Dalam semua kasus di mana node dihapus dan instans Amazon EC2 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 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 pada akhirnya sudah berjalan di node.

Misalkan dengan pembaruan pengubahan ukuran cluster yang direncanakan Anda akan menghapus node`qeueu-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 node`qeueu-st-computeresource-[9-10]`. Dari saat reservasi dibuat, tidak ada lagi pekerjaan yang bisa berjalan ke node`qeueu-st-computeresource-[9-10]`. Perlu diketahui bahwa reservasi tidak akan mencegah pekerjaan akhirnya dialokasikan pada node`qeueu-st-computeresource-[9-10]`.

Setelah pembaruan pengubahan ukuran klaster, 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](https://slurm.schedmd.com/reservations.html).

## Proses pembaruan klaster tentang perubahan kapasitas
<a name="cluster-update-process"></a>

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 ulang `slurmctld` (dilakukan melalui resep layanan Chef)
+ Periksa `slurmctld` status `(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](https://slurm.schedmd.com). Untuk unduhan, lihat [https://github.com/SchedMD/slurm/tag](https://github.com/SchedMD/slurm/tags). Untuk kode sumbernya, lihat [https://github.com/SchedMD/slurm](https://github.com/SchedMD/slurm).

## Versi cluster dan SLURM yang didukung
<a name="cluster-slurm-version-table"></a>

Tabel berikut mencantumkan AWS ParallelCluster dan Slurm versi yang AWS mendukung.


| AWS ParallelCluster versi | 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.8-2 | 
| 3.1.2, 3.1.3 | 21.08.6 | 
| 3.1.1 | 21.08.5 | 
| 3.0.0 | 20.11.8 | 

**Topics**
+ [Ukuran dan pembaruan kapasitas cluster](#cluster-capacity-size-and-update)
+ [Pembaruan kapasitas cluster](#cluster-capacity-update)
+ [Pertimbangan dan batasan](#considerations-limitations)
+ [Dampak pada Pekerjaan](#impacts-on-jobs)
+ [Proses pembaruan klaster tentang perubahan kapasitas](#cluster-update-process)
+ [Versi cluster dan SLURM yang didukung](#cluster-slurm-version-table)
+ [Konfigurasi beberapa antrian](configuration-of-multiple-queues-v3.md)
+ [Slurmpanduan untuk beberapa mode antrian](multiple-queue-mode-slurm-user-guide-v3.md)
+ [Slurm mode terlindungi cluster](slurm-protected-mode-v3.md)
+ [Slurmcluster cepat tidak mencukupi kapasitas fail-over](slurm-short-capacity-fail-mode-v3.md)
+ [Slurm penjadwalan berbasis memori](slurm-mem-based-scheduling-v3.md)
+ [Beberapa alokasi tipe instans dengan Slurm](slurm-multiple-instance-allocation-v3.md)
+ [Penskalaan cluster untuk node dinamis](scheduler-node-allocation-v3.md)
+ [Slurmakuntansi dengan AWS ParallelCluster](slurm-accounting-v3.md)
+ [Slurm kustomisasi konfigurasi](slurm-configuration-settings-v3.md)
+ [Slurm dan `prolog` `epilog`](slurm-prolog-epilog-v3.md)
+ [Ukuran dan pembaruan kapasitas cluster](slurm-cluster-capacity-size-and-update.md)