Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Slurmstrategi alokasi node dinamis dalam versi 3.8.0
Dimulai dengan ParallelCluster versi 3.8.0, ParallelCluster menggunakan resume tingkat Pekerjaan atau penskalaan tingkat pekerjaan sebagai strategi alokasi node dinamis default untuk menskalakan cluster: ParallelCluster meningkatkan skala cluster berdasarkan persyaratan setiap pekerjaan, jumlah node yang dialokasikan untuk pekerjaan, dan node mana yang perlu dilanjutkan. ParallelCluster mendapatkan informasi ini dari variabel lingkungan SLURM_RESUME_FILE.
Penskalaan untuk node dinamis adalah proses dua langkah, yang melibatkan peluncuran instans EC2 dan penetapan instans Amazon EC2 yang diluncurkan ke node. Slurm Masing-masing dari dua langkah ini dapat dilakukan dengan menggunakan logika upaya terbaik all-or-nothingatau terbaik.
Untuk peluncuran instans Amazon EC2:
-
all-or-nothingmemanggil peluncuran Amazon EC2 API dengan target minimum sama dengan total kapasitas target
-
upaya terbaik memanggil peluncuran Amazon EC2 API dengan target minimum sama dengan 1 dan total kapasitas target sama dengan kapasitas yang diminta
Untuk penetapan instans Slurm Amazon EC2 ke node:
-
all-or-nothingmenetapkan instans Amazon EC2 Slurm ke node hanya jika memungkinkan untuk menetapkan instans Amazon EC2 ke setiap node yang diminta
-
upaya terbaik menetapkan instans Amazon EC2 Slurm ke node meskipun semua node yang diminta tidak tercakup oleh kapasitas instans Amazon EC2
Kombinasi yang mungkin dari strategi di atas diterjemahkan ke dalam strategi ParallelCluster peluncuran.
contoh
all-or-nothingpenskalaan:
Strategi ini melibatkan AWS ParallelCluster memulai panggilan API instans peluncuran Amazon EC2 untuk setiap pekerjaan, yang mengharuskan semua instance yang diperlukan agar node komputasi yang diminta berhasil diluncurkan. Ini memastikan bahwa klaster hanya menskalakan ketika kapasitas yang diperlukan per pekerjaan tersedia, menghindari instance idle yang tersisa di akhir proses penskalaan.
Strategi ini menggunakan all-or-nothinglogika untuk peluncuran instans Amazon EC2 untuk setiap pekerjaan plus dan all-or-nothinglogika untuk penetapan instans Amazon EC2 ke node. Slurm
Grup strategi meluncurkan permintaan ke dalam batch, satu untuk setiap sumber daya komputasi yang diminta dan masing-masing hingga 500 node. Untuk permintaan yang mencakup beberapa sumber daya komputasi atau melebihi 500 node, ParallelCluster secara berurutan memproses beberapa batch.
Kegagalan kumpulan sumber daya tunggal mana pun mengakibatkan penghentian semua kapasitas yang tidak digunakan terkait, memastikan bahwa tidak ada instance idle yang tersisa di akhir proses penskalaan.
Batasan
-
Waktu yang dibutuhkan untuk penskalaan berbanding lurus dengan jumlah pekerjaan yang diajukan per pelaksanaan program Slurm resume.
-
Operasi penskalaan dibatasi oleh batas akun RunInstances sumber daya, ditetapkan pada 1000 instance secara default. Batasan ini sesuai dengan AWS kebijakan pembatasan API EC2, untuk detail selengkapnya lihat dokumentasi pelambatan API Amazon EC2
-
Saat Anda mengirimkan pekerjaan dalam sumber daya komputasi dengan satu jenis instans, dalam antrian yang mencakup beberapa Availability Zone, panggilan API peluncuran all-or-nothingEC2 hanya berhasil jika semua kapasitas dapat disediakan dalam satu Availability Zone.
-
Saat Anda mengirimkan pekerjaan di sumber daya komputasi dengan beberapa jenis instans, dalam antrian dengan satu Availability Zone, panggilan API peluncuran Amazon EC2 hanya berhasil jika semua kapasitas dapat disediakan oleh satu jenis instans. all-or-nothing
-
Saat Anda mengirimkan pekerjaan di sumber daya komputasi dengan beberapa jenis instans, dalam antrian yang mencakup beberapa Availability Zone, panggilan API peluncuran all-or-nothingAmazon EC2 tidak didukung dan ParallelCluster melakukan penskalaan upaya terbaik sebagai gantinya.
greedy-all-or-nothingpenskalaan:
Varian all-or-nothing strategi ini masih memastikan bahwa klaster hanya menskalakan ketika kapasitas yang diperlukan per pekerjaan tersedia, menghindari instans idle di akhir proses penskalaan, tetapi ini melibatkan ParallelCluster memulai panggilan API instans peluncuran Amazon EC2 yang bertujuan untuk kapasitas target minimum 1, mencoba memaksimalkan jumlah node yang diluncurkan hingga kapasitas yang diminta. Strategi ini menggunakan logika upaya terbaik untuk peluncuran instans EC2 untuk semua pekerjaan ditambah all-or-nothinglogika untuk penetapan instans Amazon EC2 ke node untuk setiap pekerjaan. Slurm
Grup strategi meluncurkan permintaan ke dalam batch, satu untuk setiap sumber daya komputasi yang diminta dan masing-masing hingga 500 node. Untuk permintaan yang mencakup beberapa sumber daya komputasi atau melebihi 500 node, ParellelCluster secara berurutan memproses beberapa batch.
Ini memastikan bahwa tidak ada instance idle yang tersisa di akhir proses penskalaan, dengan memaksimalkan throughput dengan biaya penskalaan berlebih sementara selama proses penskalaan.
Batasan
-
Penskalaan berlebih sementara dimungkinkan, yang menyebabkan biaya tambahan untuk instance yang beralih ke status berjalan sebelum penyelesaian penskalaan.
-
Batas instans yang sama seperti dalam all-or-nothing strategi berlaku, tunduk AWS pada batas akun RunInstances sumber daya.
penskalaan upaya terbaik:
Strategi ini memanggil panggilan API instans peluncuran Amazon EC2 dengan menargetkan kapasitas minimum 1 dan bertujuan untuk mencapai total kapasitas yang diminta dengan biaya meninggalkan instans idle setelah eksekusi proses penskalaan jika tidak semua kapasitas yang diminta tersedia. Strategi ini menggunakan logika upaya terbaik untuk peluncuran instans Amazon EC2 untuk semua pekerjaan ditambah logika upaya terbaik untuk penugasan instans Amazon EC2 ke node Slurm untuk setiap pekerjaan.
Grup strategi meluncurkan permintaan ke dalam batch, satu untuk setiap sumber daya komputasi yang diminta dan masing-masing hingga 500 node. Untuk permintaan yang mencakup beberapa sumber daya komputasi atau melebihi 500 node, ParallelCluster secara berurutan memproses beberapa batch.
Strategi ini memungkinkan penskalaan jauh melampaui batas 1000 instans default atas beberapa eksekusi proses penskalaan, dengan biaya memiliki instans idle di seluruh proses penskalaan yang berbeda.
Batasan
-
Kemungkinan instance idle running di akhir proses penskalaan, untuk kasus ketika tidak mungkin mengalokasikan semua node yang diminta oleh pekerjaan.
Berikut ini adalah contoh yang menunjukkan bagaimana penskalaan node dinamis berperilaku menggunakan strategi ParallelCluster peluncuran yang berbeda. Misalkan Anda telah mengirimkan dua pekerjaan yang meminta masing-masing 20 node, dengan total 40 node dari jenis yang sama, tetapi hanya ada 30 instans Amazon EC2 yang tersedia untuk menutupi kapasitas yang diminta pada EC2.
all-or-nothingpenskalaan:
-
Untuk pekerjaan pertama, API instans peluncuran all-or-nothingAmazon EC2 dipanggil, meminta 20 instans. Panggilan yang berhasil menghasilkan peluncuran 20 instance
-
all-or-nothing penugasan 20 instance yang diluncurkan ke Slurm node untuk pekerjaan pertama berhasil
-
API instans peluncuran all-or-nothingAmazon EC2 lainnya dipanggil, meminta 20 instans untuk pekerjaan kedua. Panggilan tidak berhasil, karena hanya ada kapasitas untuk 10 contoh lainnya. Tidak ada instance yang diluncurkan saat ini
greedy-all-or-nothingpenskalaan:
-
API instans peluncuran Amazon EC2 upaya terbaik dipanggil, meminta 40 instans, yang merupakan total kapasitas yang diminta oleh semua pekerjaan. Ini menghasilkan peluncuran 30 instance
-
all-or-nothingPenugasan 20 instance yang diluncurkan ke Slurm node untuk pekerjaan pertama berhasil
-
all-or-nothingPenugasan lain dari instance yang diluncurkan yang tersisa ke Slurm node untuk pekerjaan kedua dicoba, tetapi karena hanya ada 10 instance yang tersedia dari total 20 yang diminta oleh pekerjaan, penugasan tidak berhasil
-
10 instans yang diluncurkan yang tidak ditetapkan dihentikan
penskalaan upaya terbaik:
-
API instans peluncuran Amazon EC2 upaya terbaik dipanggil, meminta 40 instans, yang merupakan total kapasitas yang diminta oleh semua pekerjaan. Ini menghasilkan peluncuran 30 instance.
-
Penugasan upaya terbaik dari 20 instance yang diluncurkan ke Slurm node untuk pekerjaan pertama berhasil.
-
Penugasan upaya terbaik lainnya dari 10 instance yang diluncurkan ke Slurm node untuk pekerjaan kedua berhasil, bahkan jika total kapasitas yang diminta adalah 20. Tetapi karena pekerjaan itu meminta 20 node, dan dimungkinkan untuk menetapkan instans Amazon EC2 hanya ke 10 dari mereka, pekerjaan tidak dapat dimulai dan instance dibiarkan berjalan menganggur, hingga kapasitas yang cukup ditemukan untuk memulai 10 instance yang hilang pada panggilan selanjutnya dari proses penskalaan, atau penjadwal menjadwalkan pekerjaan di node komputasi lain yang sudah berjalan.