Submit Script ALELEON Supercomputer
Halaman ini menjadi suplemen untuk konten: |
Halaman ini menjelaskan panduan memahami, membuat, dan mengisi SLURM Submit Script (atau disingkat Submit Script) yang merupakan 'formulir' untuk menjalankan komputasi ke Compute Node menggunakan sistem manajemen SLURM.
Struktur Submit Script
Submit Script mempunyai 4 bagian utama:
- Header #!/bin/bash (karena script ini ditulis dengan bahasa bash)
- Parameter SBATCH untuk mengalokasikan resources job seperti CPU, RAM, GPU, time, dll.
- Pada penggunaan superkomputer, user menentukan sendiri jumlah alokasi komputasi (CPU, RAM, GPU, time limit) yang akan dipakai untuk menjalankan komputasi asalkan tidak melebihi kapasitas Compute Node ALELEON Supercomputer.
- Apabila membutuhkan, memuat modul software tertentu untuk menjalankan komputasi user dengan Module Environment
- Alur perintah menjalankan program user.
Parameter SBATCH esensial
Parameter SBATCH berfungsi untuk mengatur alokasi komputasi (CPU, RAM, GPU, time limit) dan output program. SLURM mempunyai ratusan opsi untuk parameter SBATCH dimana pada tutorial ini kami memberikan daftar SBATCH yang esensial untuk menjalankan komputasi di ALELEON Supercomputer.
Menulis SBATCH
SBATCH ditulis dengan contoh format berikut:
# Contoh penulisan SBATCH yang benar
#SBATCH --ntasks=32
#SBATCH --mem=64GB
#SBATCH --time=01:00:00
#SBATCH --output=result-%j.txt
#SBATCH --error=error-%j.txt
# Contoh penulisan SBATCH yang salah
# Yaitu ada spasi sebelum dan sesudah =
#SBATCH --ntasks = 32
#SBATCH --mem= 64GB
Keterangan:
- Penulisan disambung antara nama parameter SBATCH. simbol =, dan nilai SBATCH
#SBATCH --partition
Menentukan partisi Compute Node yang akan digunakan untuk menjalankan job komputasi user. ALELEON Supercomputer mempunyai 2 partisi Compute Node:
Partisi Compute Node | Menulis SBATCH |
---|---|
epyc (Compute Node CPU) | Merupakan partisi default
|
ampere (Compute Node GPU) | #SBATCH --partition=ampere
|
#SBATCH --ntasks
Menentukan jumlah core CPU untuk menjalankan job komputasi user. ALELEON Supercomputer mengaktifkan SMT (Simultaneous Multithreading) pada semua CPU sehingga ntasks mendefinisikan jumlah core thread CPU. Berikut adalah jumlah maksimal ntasks pada ALELEON Supercomputer:
Skenario Penggunaan | Nilai maksimal ntasks |
---|---|
Fair policy usage1 | 128 |
Komputasi non-MPI di Partisi epyc (CPU)2 4 | 128 |
Komputasi MPI di Partisi epyc (CPU)3 4 | 384 |
Komputasi MPI dan non-MPI di Partisi ampere (GPU) | 32 |
Keterangan:
|
#SBATCH --gpus
coming soon
#SBATCH --mem
coming soon
#SBATCH --time
coming soon
#SBATCH --error
coming soon
#SBATCH --output
coming soon
SBATCH | Penjelasan | |||||
---|---|---|---|---|---|---|
nodes | Alokasi jumlah Compute Node CPU yang digunakan. | |||||
#SBATCH --nodes=<jumlah-compute-node>
| ||||||
ntasks | Alokasi jumlah core CPU yang digunakan. | |||||
#SBATCH --ntasks=<jumlah-core-CPU>
| ||||||
Note:
| ||||||
Apabila user ingin menjalankan komputasi paralel lebih dari 2 Compute Node (dengan program yang mendukung seperti MPI), silahkan lihat panduan tambahan: | ||||||
mem | Alokasi jumlah memori RAM yang digunakan. Admin merekomendasikan satuan MB atau GB. | |||||
#SBATCH --mem=<jumlah-memori>MB|GB
| ||||||
Partisi epyc mempunyai satu node spesial dengan kapasitas RAM hingga 500GB (dibandingkan standar 240GB). Apabila user membutuhkan RAM lebih dari 240GB, gunakan kombinasi SBATCH berikut:
#SBATCH --nodelist=epyc001 #SBATCH --mem=<maks-hingga-500GB> Note:
| ||||||
time | Alokasi limit waktu untuk menjalankan job. Apabila waktu jalannya program melebihi limit maka akan dihentikan (kill) secara otomatis oleh SLURM. | |||||
#SBATCH --time=<HH:MM:SS> atau #SBATCH --time=<D-HH:MM:SS>
| ||||||
output | Output textfile untuk merekap output terminal. User mendefinisikan nama dan format file.
| |||||
#SBATCH --output=<nama-file-output>.<format-file>
| ||||||
error | Output textfile untuk merekap output verbose (status jalannya program dan error log ketika program gagal berjalan).
| |||||
#SBATCH --error=<nama-file-output>.<format-file>
|
SBATCH Notifikasi e-mail
SLURM ALELEON Supercomputer dapat mengirim notifikasi email kepada user untuk mengabarkan apabila job user sudah berjalan atau selesai. SLURM ALELEON Supercomputer menggunakan nama email Jojo untuk mengirim notifikasi email.
Silahkan tambahan SBATCH berikut apabila user ingin menerima notifikasi email dari SLURM:
#SBATCH --mail-user=<alamat-email-user> #SBATCH --mail-type=begin #SBATCH --mail-type=end
- mail-user
- Alamat email user untuk menerima notifikasi SLURM
- mail-type=begin
- Notifikasi email yang menginfokan job sudah berjalan.
- mail-type=end
- Notifikasi email yang menginfokan job sudah selesai.
- Sekaligus memberikan cuplikan 20 baris terakhir dari file output SBATCH output dan error job user.
Memuat Software dengan module load
Modul software pada SLURM Submit Script berfungsi supaya Compute Node dapat menjalankan software yang dibutuhkan oleh komputasi user. Masukkan line script berikut:
module load <nama-modul-software-yang-digunakan-untuk-komputasi-user>
Tulis script module load tersebut sebelum menulis run script jalannya program.
- Daftar lengkap nama modul software dapat ditemukan pada Katalog Software ALELEON Supercomputer.
Daftar Template Submit Script
User dapat melihat daftar lengkap template Submit Script pada laman ini: