Submit Script ALELEON Supercomputer: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) (→SBATCH Partisi gpu_ampere / Compute Node GPU: paraphrasing) |
WilsonLisan (bicara | kontrib) (Overhaul maintenance 02/02/2023: paraphrasing introduction, part script, dan eksperimen formatting tabel SBATCH) |
||
Baris 1: | Baris 1: | ||
Halaman ini menjelaskan panduan memahami, membuat, dan mengisi SLURM Submit Script untuk melakukan job submission ke Compute Node. | |||
=='''Struktur Submit Script'''== | =='''Struktur Submit Script'''== | ||
Secara umum, Submit Script atau SLURM Script dipecah menjadi 4 bagian penting. | Secara umum, Submit Script atau SLURM Script dipecah menjadi 4 bagian penting. | ||
[[Berkas: | |||
[[Berkas:Slurmsubmitscript.png|al=|nirbing|500x500px]] | |||
# Header '''#!/bin/bash''' karena Submit Script adalah bash script. | # Header '''#!/bin/bash''' karena Submit Script adalah bash script. | ||
#'''Parameter SBATCH''' untuk | #'''Parameter SBATCH''' untuk mengalokasikan resources job seperti CPU, RAM, GPU, time, dll. | ||
# Memuat modul software yang dibutuhkan untuk menjalankan komputasi user dengan '''[https://wiki.efisonlt.com/wiki/Module_Environment#Module_Environment_di_SLURM_Submit_Script Module Environment]'''. | |||
# | |||
# Perintah utama untuk menjalankan program user. | # Perintah utama untuk menjalankan program user. | ||
{| class="wikitable" | |||
|'''Note:''' | |||
*''Terdapat ratusan jenis [https://slurm.schedmd.com/sbatch.html parameter SBATCH pada SLURM] dari yang standar hingga kompleks.'' | |||
* ''Pada halaman ini, admin EFISON merangkum parameter SBATCH yang esensial untuk menggunakan ALELEON Supercomputer.'' | |||
|} | |||
== '''Tanda ////''' == | == '''Tanda ////''' == | ||
Dalam membuat template SLURM Submit Script, admin EFISON menggunakan tanda 4 garing (////) untuk '''menandai bagian yang perlu diisi oleh user'''. Contoh terdapat bagian script untuk menaruh nama file input: | |||
FILE_INPUT="'''////'''.in" | |||
Artinya user mengisi nama file input dengan menggantikan tanda //// di dalam braket tanda petik, contoh menjadi: | Artinya user mengisi nama file input dengan menggantikan tanda //// di dalam braket tanda petik, contoh menjadi: | ||
FILE_INPUT="'''myskripsi'''.in" | |||
== '''SBATCH untuk Compute Node CPU (Partisi epyc)''' == | |||
Berikut adalah daftar SBATCH yang esensial (dan biasanya akan ditemukan pada banyak template) untuk menjalankan komputasi di Compute Node CPU atau Partisi epyc. | |||
{| class="wikitable" | |||
|+SBATCH Partisi epyc | |||
!SBATCH | |||
!Penjelasan | |||
|- | |||
|nodes | |||
|Alokasi jumlah Compute Node CPU yang digunakan. | |||
|- | |||
| | |||
|'''<code>#SBATCH --nodes=<jumlah-compute-node></code>'''Contoh mengalokasikan 1 node: | |||
<code>#SBATCH --nodes=1</code> | |||
{| class="wikitable" | {| class="wikitable" | ||
| | !Jumlah nodes maksimal | ||
!3 | |||
|} | |||
|- | |||
| | |||
| | |||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Penjelasan dan rentang nilai parameter SBATCH Partisi epyc | |+Penjelasan dan rentang nilai parameter SBATCH Partisi epyc |
Revisi per 2 Februari 2023 01.56
Halaman ini menjelaskan panduan memahami, membuat, dan mengisi SLURM Submit Script untuk melakukan job submission ke Compute Node.
Struktur Submit Script
Secara umum, Submit Script atau SLURM Script dipecah menjadi 4 bagian penting.
- Header #!/bin/bash karena Submit Script adalah bash script.
- Parameter SBATCH untuk mengalokasikan resources job seperti CPU, RAM, GPU, time, dll.
- Memuat modul software yang dibutuhkan untuk menjalankan komputasi user dengan Module Environment.
- Perintah utama untuk menjalankan program user.
Note:
|
Tanda ////
Dalam membuat template SLURM Submit Script, admin EFISON menggunakan tanda 4 garing (////) untuk menandai bagian yang perlu diisi oleh user. Contoh terdapat bagian script untuk menaruh nama file input:
FILE_INPUT="////.in"
Artinya user mengisi nama file input dengan menggantikan tanda //// di dalam braket tanda petik, contoh menjadi:
FILE_INPUT="myskripsi.in"
SBATCH untuk Compute Node CPU (Partisi epyc)
Berikut adalah daftar SBATCH yang esensial (dan biasanya akan ditemukan pada banyak template) untuk menjalankan komputasi di Compute Node CPU atau Partisi epyc.
SBATCH | Penjelasan | ||
---|---|---|---|
nodes | Alokasi jumlah Compute Node CPU yang digunakan. | ||
#SBATCH --nodes=<jumlah-compute-node> Contoh mengalokasikan 1 node:
| |||
Alokasi Komponen | SBATCH | Nilai MAKSIMAL | Contoh penulisan |
---|---|---|---|
Jumlah Compute Node | --nodes | 3 | #SBATCH --nodes=1
|
Jumlah Core thread CPU | --ntasks |
|
#SBATCH --ntasks=64
|
Untuk menjalankan program parallel multi-node, lihat: | |||
Kapasitas RAM | --mem | 240GB | #SBATCH --mem=128GB
|
Penulisan angka dan satuan digabung | |||
Walltime | --time | 14-00:00:00 | #SBATCH --time=08:00:00
|
Format penulisan HH:MM:SS atau D-HH:MM:SS | |||
Output terminal | --output | Lihat penjelasan dibawah | |
Output verbose | --error |
Catatan penting:
- nodes
- Lihat tabel Dukungan Hardware pada Daftar Software Komputasi atau di halaman tutorial masing-masing software untuk menentukan apakah dapat berjalan multi-node (> 1 node) atau hanya single-node (1 node saja).
- ntasks
- Berdasarkan arsiktektur CPU AMD yang digunakan ALELEON Supercomputer, user direkomendasikan untuk memilih jumlah ntasks berdasarkan kelipatan 4, dimulai dari 1,2,4, kemudian naik kelipatan 4 menjadi 8, 12, 16, 20, 24, 28, 32, 36, 40, dan seterusnya.
- Penghitungan kredit CPU Core Hour (CCH) berdasarkan jumlah ntasks yang didefinisikan user.
- output
- Merekap output program yang keluar di terminal. User memberikan sendiri nama file (satu kata tanpa spasi) diikuti dengan format file seperti .txt atau .out yang sering digunakan.
- Terdapat pola penamaan dari SLURM yaitu %j yang merekap job-ID.
- Contoh penamaan output yang sering digunakan:
#SBATCH --output=result-%j.txt
- Apabila job berjalan dengan no. ID 2555, maka nama output menjadi result-2555.txt
- error
- Merekap output verbose program yaitu status jalannya program dan error log ketika program gagal selesai.
- Output error bermanfaat bagi user untuk melakukan troubleshooting disaat program gagal berjalan. Admin EFISON merekomendasikan user untuk selalu menggunakan parameter error ini.
- Format penamaan mengikuti parameter output diatas, contoh:
#SBATCH --error=error-%j.txt
SBATCH Partisi gpu_ampere / Compute Node GPU
# Alokasi GPU, core thread CPU, RAM, time limit, output program & error #SBATCH --partition=gpu_ampere #SBATCH --gres=gpu://// #SBATCH --ntasks=//// #SBATCH --mem=//// #SBATCH --time=//// #SBATCH --output=//// #SBATCH --error=////
Alokasi Komponen | SBATCH | Nilai MAKSIMAL | Contoh penulisan |
---|---|---|---|
Compute Node GPU | --partition | #SBATCH --partition=gpu_ampere
| |
Jumlah GPU | --gres=gpu: | 3 | #SBATCH --gres=gpu:1
|
Jumlah Core thread CPU | --ntasks | 32 | #SBATCH --ntasks=16
|
Kapasitas RAM | --mem | 120GB | #SBATCH --mem=64GB
|
Penulisan angka dan satuan digabung | |||
Walltime | --time | 14-00:00:00 | #SBATCH --time=08:00:00
|
Format penulisan HH:MM:SS atau D-HH:MM:SS | |||
Output terminal | --output | Lihat penjelasan dibawah | |
Output verbose | --error |
Catatan penting:
- gres=gpu:<jumlah-GPU>
- Penghitungan kredit GPU Hour (GH) berdasarkan jumlah gres gpu yang didefinisikan user.
- ntasks
- Berdasarkan arsiktektur CPU AMD yang digunakan ALELEON Supercomputer, user direkomendasikan untuk memilih jumlah ntasks berdasarkan kelipatan 4, dimulai dari 1,2,4, kemudian naik kelipatan 4 menjadi 8, 12, 16, 20, 24, 28, 32.
- Penghitungan kredit CPU Core Hour (CCH) berdasarkan jumlah ntasks yang didefinisikan user.
- output
- Merekap output program yang keluar di terminal. User memberikan sendiri nama file (satu kata tanpa spasi) diikuti dengan format file seperti .txt atau .out yang sering digunakan.
- Terdapat pola penamaan dari SLURM yaitu %j yang merekap job-ID.
- Contoh penamaan output yang sering digunakan:
#SBATCH --output=result-%j.txt
- Apabila job berjalan dengan no. ID 2555, maka nama output menjadi result-2555.txt
- error
- Merekap output verbose program yaitu status jalannya program dan error log ketika program gagal selesai.
- Output error bermanfaat bagi user untuk melakukan troubleshooting disaat program gagal berjalan. Admin EFISON merekomendasikan user untuk selalu menggunakan parameter error ini.
- Format penamaan mengikuti parameter output diatas, contoh:
#SBATCH --error=error-%j.txt
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. SBATCH notifikasi e-mail secara default ada pada semua template di Job Composer.
#SBATCH --mail-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 mulai.
- mail-type=end
- Notifikasi email yang menginfokan job sudah selesai.
- Sekaligus memberikan cuplikan 20 baris terakhir dari SBATCH output dan error job user.
Memuat Software dengan module load
Untuk menjalankan software di Compute Node, user harus memuat software yang dibutuhkan melalui perintah module load pada Submit Script:
module load nama-modul-software
- Perintah module load harus ditaruh sebelum penulisan perintah menjalankan program.
- Template software komputasi sudah menyertakan module load yang diperlukan.
- Pada template umum (misalnya Default Template, MPI - Template Kosong, Python - Template Kosong, dll), user harus menulis sendiri module load yang dibutuhkan.
- Daftar lengkap nama modul software dapat ditemukan pada Katalog Software ALELEON Supercomputer.