Submit Script ALELEON Supercomputer: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) (→Menggunakan Paralel Multi-Node: spacing) |
WilsonLisan (bicara | kontrib) (Mengalokasikan contoh SLURM script pada laman terpisah) |
||
Baris 176: | Baris 176: | ||
<nowiki>#</nowiki>SBATCH --cpus-per-task='''8''' | <nowiki>#</nowiki>SBATCH --cpus-per-task='''8''' | ||
|} | |} | ||
== '''Contoh SLURM | == '''Contoh SLURM Script''' == | ||
EFISON merangkum contoh SLURM script untuk penggunaan berbagai skenario komputasi pada laman '''[[Contoh SLURM Script]]'''. | |||
=='''Contoh SLURM Script Software Spesifik'''== | |||
EFISON juga merangkum contoh SLURM script untuk software komputasi saintifik pada laman '''[https://wiki.efisonlt.com/wiki/Software_di_HPC_Aleleon_Mk.II#Daftar_Software_Komputasi Software di HPC Aleleon Mk.II]'''. | |||
=='''Membaca Status squeue'''== | |||
== '''Membaca squeue''' == | |||
Sesuai penjelasan diatas, user dapat melihat status dan antrian jalannya program melalui perintah squeue. | Sesuai penjelasan diatas, user dapat melihat status dan antrian jalannya program melalui perintah squeue. | ||
[[Berkas:Status_squeue.png|al=|nir|jmpl|900x900px|Penjelasan bagian squeue]] | [[Berkas:Status_squeue.png|al=|nir|jmpl|900x900px|Penjelasan bagian squeue]] |
Revisi per 10 September 2021 10.47
SLURM adalah software manajemen yang digunakan oleh HPC Aleleon Mk.II untuk mengantarkan dan mengatur antrian job komputasi user ke Compute Node. Bila tidak menggunakan SLURM maka job user akan berjalan di Login Node yang tidak layak untuk komputasi.
Perintah Dasar SLURM
Berikut adalah perintah dasar bagi user untuk menggunakan SLURM:
Perintah | Penjelasan |
---|---|
$ sbatch <slurm-script> |
Menjalankan job komputasi user yang ditulis pada SLURM script ke Compute Node. SLURM Script adalah bash script yang berisikan alokasi resources (CPU, GPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user. |
$ squeue |
Melihat status dan antrian semua komputasi. Tambahan opsi:
|
$ scancel <job-ID> |
Membatalkan job SLURM yang sedang berjalan |
Contoh Penggunaan SLURM
User akan menjalankan program bernama 'kerjaan-skripsi' di Compute Node. User membuat SLURM script yang berisikan alokasi resources dan perintah untuk menjalankan program 'kerjaan-skripsi'.
- Ada baiknya SLURM script ditaruh pada satu direktori dengan program yang akan dijalankan.
- Penamaan SLURM script bisa bebas dimana pada contoh ini bernama 'slurm-skripsi'.
[olala01@login myjob]$ ls kerjaan-skripsi slurm-skripsi
Jalankan SLURM submission script tersebut dengan perintah sbatch. Perhatikan bahwa user akan mendapatkan nomor ID dari job tersebut.
[olala01@login myjob]$ sbatch slurm-skripsi Submitted batch job 231
User dapat melihat status jalannya job masing-masing dengan perintah squeue -u $USER. Keterangan dari kolom ST (STATUS) adalah R (RUNNING), menandakan program kerjaan-skripsi user sedang berjalan di Compute Node.
[olala01@login myjob]$ squeue -u $USER Mon Mar 22 10:43:22 2021 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 231 gpu_amper slurm-sc olala01 R 2:00 1 epyc01
Job selesai bila sudah tidak terlihat di daftar squeue. Lihat apakah job menghasilkan output yang diinginkan atau tidak.
[olala01@login myjob]$ ls kerjaan-skripsi slurm-skripsi result-231.out result-231.err
Apabila user ingin membatalkan program yang tengah berjalan via SLURM, gunakan perintah scancel job ID:
[olala01@login myjob]$ scancel 231
SLURM Script
SLURM script adalah bash-script yang berisikan alokasi resources (CPU, RAM, GPU, walltime, output, dll) dan alur jalannya program. Terdapat 4 komponen penting pada SLURM script:
- Header #!/bin/bash untuk bash script.
- Parameter alokasi resources CPU, memori, waktu, output, dll dengan SBATCH.
- Pengaturan Module Environment untuk memuat software yang dibutuhkan.
- Alur perintah untuk menjalankan komputasi user.
Resources HPC Aleleon Mk.II
Sebelum menggunakan SLURM, user harus mengetahui alokasi maksimal hardware dari HPC Aleleon Mk.II yang dijelaskan pada tabel dibawah ini.
Partisi | Keterangan | Jumlah Node | Jumlah Core CPU per node | Jumlah RAM per node | Jumlah GPU per node |
---|---|---|---|---|---|
epyc (DEFAULT) | compute node CPU | 3 | 128 | 250GB | 0 |
gpu_ampere | compute node GPU | 1 | 128 | 125GB | 2 |
Parameter Resources SBATCH Esensial
Terdapat ratusan jenis parameter SBATCH pada SLURM. Berikut adalah parameter esensial yang digunakan pada HPC Aleleon Mk.II.
Parameter | Resource | Penjelasan |
---|---|---|
#SBATCH --ntasks= |
Core CPU | Alokasi jumlah core CPU yang akan digunakan. Contoh mengalokasikan 64 core CPU:
#SBATCH --ntasks=64 |
#SBATCH --mem= |
Memori RAM | Alokasi memori RAM yang akan digunakan. User bisa menetapkan satuan apapun namun kami merekomendasikan satuan GB. Contoh mengalokasikan memori 64GB:
#SBATCH --mem=64GB |
#SBATCH --time= |
Walltime | Waktu maksimal yang dialokasikan untuk job. Walltime maksimal yang diizinkan saat ini adalah 14 hari. Format waktu <walltime> yang digunakan:
|
#SBATCH --output= |
Output terminal | Merekap output terminal dari program user. Terdapat variabel spesial yaitu %j untuk merekap JOB ID. Format file dibebaskan. Contoh:
#SBATCH --output=hasil-%j.out |
#SBATCH --error= |
Output verbose | Merekap output verbose program, berguna untuk melakukan troubleshooting dikala program user tidak berjalan. Contoh:
#SBATCH --error=hasil-%j.err |
Menggunakan Paralel Multi-Node
Berikut adalah dua parameter wajib apabila user menggunakan lebih dari satu node untuk komputasi paralel:
Paramater | Resource | Penjelasan |
---|---|---|
#SBATCH --nodes= |
Node | Alokasi jumlah node Compute Node yang akan digunakan. Contoh mengalokasikan 3 node:
#SBATCH --nodes=3 |
#SBATCH --ntasks-per-node= |
Core CPU per node | Menggantikan parameter ntasks. Alokasi jumlah core CPU per node yang akan digunakan. Contoh mengalokasikan 64 core per node:
$SBATCH --ntasks-per-node=64 |
Menggunakan Compute Node GPU
Berikut adalah dua parameter wajib apabila user menjalankan job di compute node GPU NVIDIA Ampere:
Paramater | Resource | Penjelasan |
---|---|---|
#SBATCH --partition=gpu_ampere |
Partisi GPU | Menjalankan job pada partisi compute node GPU (yang bernama gpu_ampere) |
#SBATCH --gres=gpu:<jumlah-GPU> |
GPU | Contoh menggunakan 2 GPU:
$SBATCH --gres=gpu:2 |
Menggunakan Threading CPU
Berikut adalah parameter untuk mengalokasikan threading CPU untuk user yang menggunakan program paralel threading seperti OpenMP (OMP), hybrid MPI/OMP, OpenBLAS, MKL, dll:
Parameter | Resource | Penjelasan |
---|---|---|
#SBATCH --cpus-per-task= |
Threading CPU | Jumlah threading CPU per core yang digunakan. Contoh mengalokasikan 8 threading per core CPU:
#SBATCH --cpus-per-task=8 |
Contoh SLURM Script
EFISON merangkum contoh SLURM script untuk penggunaan berbagai skenario komputasi pada laman Contoh SLURM Script.
Contoh SLURM Script Software Spesifik
EFISON juga merangkum contoh SLURM script untuk software komputasi saintifik pada laman Software di HPC Aleleon Mk.II.
Membaca Status squeue
Sesuai penjelasan diatas, user dapat melihat status dan antrian jalannya program melalui perintah squeue.
Info yang esensial untuk user adalah bagian STATE dan NODELIST(REASON). STATE (ST) memberikan kondisi jalannya program user sementara itu NODELIST(REASON) memberikan detail verbose status jalannya program user.
STATE | Kepanjangan | Penjelasan |
---|---|---|
R | RUN | Job berjalan |
PD | PENDING | Job tertahan, lihat keterangan NODELIST |
CG | COMPLETING | Job selesai dan dalam proses clean-up SLURM |
CA | CANCELED | Job dibatalkan oleh user |
PR | PREEMPETED | Job dibatalkan oleh sys-admin Aleleon, alasan akan dikabarkan melalui email |
S | SUSPENDED | Job ditahan oleh sys-admin Aleleon |
Pada saat job berjalan (RUNNING) maka NODELIST akan menampilkan info nama node tempat job berjalan. Sementara itu NODELIST akan memberikan alasan verbose pada saat job tidak berjalan (STATE selain RUNNING). Berikut adalah daftar NODELIST yang bisa terjadi di HPC Aleleon Mk.II:
NODELIST | Penjelasan |
---|---|
Resources | Job menunggu alokasi resources (CPU, RAM, GPU) yang dipesan oleh SLURM submission script user |
AssocMaxWallDurationPerJobLimit | Job tidak dapat berjalan karena melewati batas walltime maksimum partisi |
QOSMaxCpuPerUserLimit | Job melewati batas alokasi CPU user (lihat laman QOS User untuk penjelasan lebih lanjut). |
User dapat lapor admin melalui email support@efisonlt.com apabila menjumpai NODELIST yang tidak terdapat pada daftar diatas ketika job user tidak berjalan.