Submit Script ALELEON Supercomputer: Perbedaan antara revisi

Dari ALELEON by EFISON
(→‎SBATCH untuk Compute Node GPU (Partisi ampere): paraphrasing penggunaan CCH dan GH)
(persiapan overhaul penulisan wiki SBATCH)
Baris 5: Baris 5:
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#3_-_Menjalankan_Komputasi_ke_Compute_Node_via_Job_Composer '''Penggunaan EFIRO - menjalankan komputasi ke Compute Node via Job Composer''']
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#3_-_Menjalankan_Komputasi_ke_Compute_Node_via_Job_Composer '''Penggunaan EFIRO - menjalankan komputasi ke Compute Node via Job Composer''']
|}
|}
Halaman ini menjelaskan panduan memahami, membuat, dan mengisi SLURM Submit Script (atau disingkat Submit Script) untuk melakukan job submission ke Compute Node.   
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.   
 
== '''Bahasa Bash''' ==
Submit Script menggunakan bahasa bash dengan standar versi 4.4.


=='''Struktur Submit Script'''==
=='''Struktur Submit Script'''==
Secara umum, Submit Script mempunyai 4 bagian utama.
Submit Script mempunyai 4 bagian utama:


[[Berkas:Slurmsubmitscript.png|al=|nirbing|500x500px]]
#Header '''#!/bin/bash''' (karena script ini ditulis dengan bahasa bash)
# Header '''#!/bin/bash''' karena Submit Script adalah bash script.
#'''Parameter SBATCH''' untuk mengalokasikan resources job seperti CPU, RAM, GPU, time, dll.
#'''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]'''.
#*''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.''
# Alur perintah untuk menjalankan program user.
# Apabila membutuhkan, memuat modul software tertentu untuk menjalankan komputasi user dengan '''[https://wiki.efisonlt.com/wiki/Module_Environment#Module_Environment_di_SLURM_Submit_Script Module Environment]'''
# Alur perintah menjalankan program user.
 
[[Berkas:Slurmsubmitscript.png|al=|nir|jmpl|''Struktur SLURM Submit Script'']]
 
== '''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: <syntaxhighlight lang="bash">
# 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
</syntaxhighlight>'''''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:
{| class="wikitable"
{| class="wikitable"
|'''Note:'''
!Partisi Compute Node
*''Terdapat ratusan jenis [https://slurm.schedmd.com/sbatch.html parameter SBATCH pada SLURM] dari yang standar hingga kompleks.''
!Menulis SBATCH
* ''Pada halaman ini, admin EFISON merangkum parameter SBATCH yang esensial untuk menggunakan ALELEON Supercomputer.''
|-
|epyc (Compute Node CPU)
|Merupakan partisi default
 
* user tidak perlu menulis SBATCH parameter untuk epyc
|-
|ampere (Compute Node GPU)
|<code>#SBATCH --partition=ampere</code>
|}
|}


== '''Limitasi Sementara Alokasi Komputasi''' ==
=== #SBATCH --ntasks ===
Per tanggal 3 Februari 2023, ALELEON Supercomputer mengimplementasikan aturan baru berupa limitasi fair usage. Hal ini dilakukan untuk menjamin kualitas layanan ALELEON Supercomputer kepada seluruh pengguna. Mohon maaf atas ketidaknyamannya.
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:
 
Berikut adalah limitasi fair usage '''per akun untuk''' '''total akumulasi semua job masing-masing user yang berjalan.'''
{| class="wikitable"
{| class="wikitable"
!Alokasi komputasi
!Skenario Penggunaan
!Limit maksimal
!Nilai maksimal ntasks
|-
|-
|CPU
|Fair policy usage<sup>''1''</sup>
|128
|128
|-
|-
|Memori RAM
|Komputasi non-MPI di Partisi epyc (CPU)''<sup>2 4</sup>''
|128GB
|128
|-
|-
|GPU
|Komputasi MPI di Partisi epyc (CPU)<sup>''3 4''</sup>
|2
|384
|-
|-
|Limit waktu komputasi
|Komputasi MPI dan non-MPI di Partisi ampere (GPU)
|3 hari (3-00:00:00)
|32
|-
| colspan="2" |'''''Keterangan:'''''
# Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.
#* User dapat mengajukan permintaan membuka limitasi apabila job membutuhkan alokasi lebih.
#* Info lebih detail lihat laman [[Limitasi Fair Usage ALELEON Supercomputer|'''Limitasi Fair Usage ALELEON Supercomputer''']]
# Program komputasi non-MPI hanya dapat berjalan satu node dimana mempunyai 128 core thread CPU.
# Program komputasi MPI mendukung komputasi paralel untuk berjalan ''multi-node''.
#* Untuk menjalankan ntasks lebih dari 128, lihat laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']]
# Tim admin dapat membantu user untuk membedakan program komputasi MPI dan non-MPI.
#* Daftar [[Daftar Software Komputasi dan Tutorial Penggunaan|'''software komputasi ALELEON Supercomputer''']] memberikan indikator  program MPI atau non-MPI.
|}
|}
Ketika job yang sedang berjalan pada akun mencapai batas fair usage tersebut, maka job baru yang masuk ke antrian akan menunggu sampai job yang berjalan selesai dan alokasi fair usage dapat digunakan kembali.


=== Permintaan Membuka Limitasi Sementara ===
=== #SBATCH --gpus ===
Ketika membutuhkan alokasi komputasi yang lebih besar dari limit diatas, user dapat mengajukan pembukaan limitasi sementara '''melalui laporan kendala dengan mengklik gambar ini.'''
coming soon


* Tim admin akan memutuskan alokasi pembukaan limitasi tersebut menyesuaikan ketersediaan sumber daya komputasi dan antrian job pengguna lain di ALELEON Supercomputer.
=== #SBATCH --mem ===
coming soon


[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]
=== #SBATCH --time ===
coming soon


== '''SBATCH untuk Compute Node CPU (Partisi epyc)''' ==
=== #SBATCH --error ===
Berikut adalah daftar SBATCH yang esensial (dan biasanya akan ditemukan pada banyak template) untuk menjalankan komputasi di Compute Node CPU atau Partisi epyc.
coming soon
'''#SBATCH --nodes='''<''jumlah-compute-node''>
 
'''#SBATCH --ntasks='''<''jumlah-core-CPU''>
=== #SBATCH --output ===
'''#SBATCH --mem='''<''jumlah-memori-RAM''>
coming soon
'''#SBATCH --time='''<''jumlah-limit-waktu-komputasi''>
{| class="mw-collapsible mw-collapsed"
'''#SBATCH --output='''<''output-textfile''>
'''#SBATCH --error='''<''output-verbose-dan-error-log-textfile''>
{| class="wikitable"
|+Info Detail SBATCH Partisi epyc
!SBATCH
!SBATCH
!Penjelasan
!Penjelasan
Baris 82: Baris 116:
|-
|-
|'''<code>#SBATCH --ntasks=<''jumlah-core-CPU''></code>'''
|'''<code>#SBATCH --ntasks=<''jumlah-core-CPU''></code>'''
* Contoh mengalokasikan 32 core CPU:  
* Contoh mengalokasikan 32 core CPU:


<code>#SBATCH --ntasks='''32'''</code>
<code>#SBATCH --ntasks='''32'''</code>
Baris 149: Baris 183:
|-
|-
|'''<code>#SBATCH --output=<''nama-file-output''>.<''format-file''></code>'''
|'''<code>#SBATCH --output=<''nama-file-output''>.<''format-file''></code>'''
*Contoh mendefinisikan file output dengan format txt bersama job-ID:  
*Contoh mendefinisikan file output dengan format txt bersama job-ID:
<code>#SBATCH --output='''result-%j.txt'''</code>
<code>#SBATCH --output='''result-%j.txt'''</code>
* Ketika job berjalan (contoh) dengan job-ID 670, maka nama file output menjadi '''result-670.txt'''.
* Ketika job berjalan (contoh) dengan job-ID 670, maka nama file output menjadi '''result-670.txt'''.
Baris 155: Baris 189:
| rowspan="2" |'''error'''
| rowspan="2" |'''error'''
|'''Output textfile untuk merekap output verbose (status jalannya program dan error log ketika program gagal berjalan).'''
|'''Output textfile untuk merekap output verbose (status jalannya program dan error log ketika program gagal berjalan).'''
* Bermanfaat untuk melakukan ''troubleshooting'' ketika program gagal berjalan. Apabila membutuhkan support, admin biasanya akan meminta file output dari SBATCH error ini.  
* Bermanfaat untuk melakukan ''troubleshooting'' ketika program gagal berjalan. Apabila membutuhkan support, admin biasanya akan meminta file output dari SBATCH error ini.
* Pola penamaan mengikuti SBATCH output diatas.  
* Pola penamaan mengikuti SBATCH output diatas.  
|-
|-
Baris 163: Baris 197:
* Ketika job berjalan (contoh) dengan job-ID 670, maka nama file error menjadi '''error-670.txt'''.
* Ketika job berjalan (contoh) dengan job-ID 670, maka nama file error menjadi '''error-670.txt'''.
|}
|}
== '''SBATCH untuk Compute Node GPU (Partisi ampere)''' ==
Berikut adalah daftar SBATCH yang esensial untuk menjalankan komputasi di Compute Node GPU atau Partisi ampere.
'''#SBATCH --partition=ampere'''
'''#SBATCH --gpus='''<''jumlah-GPU''>
'''#SBATCH --ntasks='''<''jumlah-core-CPU''>
'''#SBATCH --mem='''<''jumlah-memori-RAM''>
'''#SBATCH --time='''<''jumlah-limit-waktu-komputasi''>
'''#SBATCH --output='''<''output-textfile''>
'''#SBATCH --error='''<''output-verbose-dan-error-log-textfile''>
{| class="wikitable"
|+Info Detail SBATCH Partisi ampere
!SBATCH
!Penjelasan
|-
| colspan="2" |'''<code>#SBATCH --partition=ampere</code>''' bertujuan untuk menjalankan job submission di Compute Node GPU.
|-
| rowspan="3" |'''gpus'''
|'''Alokasi jumlah GPU yang digunakan.'''
|-
|'''<code>#SBATCH --gpus=<''jumlah-GPU''></code>'''
* Contoh mengalokasikan 1 GPU:
<code>#SBATCH --gpus=1</code>
{| class="wikitable"
!Jumlah gpu maksimal
!2
|}
|-
|'''Note:'''
* ''Kredit GPU Hour (GH) akan berkurang sejumlah gpus yang didefinisikan user per jam-nya.''
|-
| rowspan="3" |'''ntasks'''
|'''Alokasi jumlah core CPU yang digunakan.'''
|-
|'''<code>#SBATCH --ntasks=<''jumlah-core-CPU''></code>'''
* Contoh mengalokasikan 8 core CPU:
<code>#SBATCH --ntasks=8</code>
{| class="wikitable"
!Jumlah ntasks maksimal
!32
|}
|-
|'''Note:'''
*''ALELEON Supercomputer menyalakan SMT (Simultaneous Multithreading) pada semua CPU sehingga '''ntasks mengisi core thread CPU.'''''
*''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.''
* ''Kredit CPU Core Hour (CCH) akan berkurang sejumlah ntasks yang didefinisikan user per jam-nya.''
|-
| rowspan="2" |'''mem'''
|'''Alokasi jumlah memori RAM yang digunakan. Admin merekomendasikan satuan MB atau GB.'''
|-
|'''<code>#SBATCH --mem=<''jumlah-memori''<nowiki>>MB|GB</nowiki></code>'''
* Contoh mengalokasikan memori RAM 32GB:
<code>#SBATCH --mem=32GB</code>
* Contoh mengalokasikan memori RAM 7500MB:
<code>#SBATCH --mem=7500MB</code>
{| class="wikitable"
!Jumlah mem maksimal
!120GB
|}
|-
| rowspan="2" |'''time'''
|'''Alokasi limit waktu untuk menjalankan job. Apabila waktu jalannya program melebihi limit maka akan dihentikan (''kill'') secara otomatis oleh SLURM.'''
|-
|'''<code>#SBATCH --time=<''HH:MM:SS''></code>'''<code>atau '''#SBATCH --time=<''D-HH:MM:SS''>'''</code>
* Contoh mengalokasikan limit waktu 10 jam 30 menit:
<code>#SBATCH --time=10:30:00</code>
* Contoh mengalokasikan limit waktu 2 hari:


<code>#SBATCH --time=2-00:00:00</code>
{| class="wikitable"
!Jumlah time maksimal
!3-00:00:00 (3 hari)
|}
|-
| rowspan="2" |'''output'''
|'''Output textfile untuk merekap output terminal.''' User mendefinisikan nama dan format file.
* Terdapat pola penamaan dari SLURM yaitu '''%j''' untuk merekap nomor Job ID.
* Format file dibebaskan (biasanya menggunakan .txt atau .out).
|-
|'''<code>#SBATCH --output=<''nama-file-output''>.<''format-file''></code>'''
*Contoh mendefinisikan file output dengan format txt bersama job-ID:
<code>#SBATCH --output='''result-%j.txt'''</code>
* Ketika job berjalan (contoh) dengan job-ID 670, maka nama file output menjadi '''result-670.txt'''.
|-
| rowspan="2" |'''error'''
|'''Output textfile untuk merekap output verbose (status jalannya program dan error log ketika program gagal berjalan).'''
* Bermanfaat untuk melakukan ''troubleshooting'' ketika program gagal berjalan. Apabila membutuhkan support, admin biasanya akan meminta file output dari SBATCH error ini.
* Pola penamaan mengikuti SBATCH output diatas.
|-
|'''<code>#SBATCH --error=<''nama-file-output''>.<''format-file''></code>'''
* Contoh mendefinisikan file error dengan format txt bersama job-ID:
<code>SBATCH --output='''error-%j.txt'''</code>
* Ketika job berjalan (contoh) dengan job-ID 670, maka nama file error menjadi '''error-670.txt'''.
|}
== '''SBATCH Notifikasi e-mail''' ==
== '''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.   
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.   
Baris 284: Baris 219:
Tulis script module load tersebut sebelum menulis run script jalannya program.
Tulis script module load tersebut sebelum menulis run script jalannya program.
* Daftar lengkap nama modul software dapat ditemukan pada [[Katalog Software ALELEON Supercomputer|'''Katalog Software ALELEON Supercomputer''']].
* Daftar lengkap nama modul software dapat ditemukan pada [[Katalog Software ALELEON Supercomputer|'''Katalog Software ALELEON Supercomputer''']].
== '''Template Submit Script''' ==
Admin EFISON menyediakan referensi untuk template Submit Script berdasarkan skenario dan software komputasi.
=== 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"


=== Daftar Template Submit Script ===
=== Daftar Template Submit Script ===

Revisi per 13 Oktober 2023 10.50

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:

  1. Header #!/bin/bash (karena script ini ditulis dengan bahasa bash)
  2. 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.
  3. Apabila membutuhkan, memuat modul software tertentu untuk menjalankan komputasi user dengan Module Environment
  4. Alur perintah menjalankan program user.
Struktur SLURM Submit Script

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
  • user tidak perlu menulis SBATCH parameter untuk epyc
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:
  1. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.
  2. Program komputasi non-MPI hanya dapat berjalan satu node dimana mempunyai 128 core thread CPU.
  3. Program komputasi MPI mendukung komputasi paralel untuk berjalan multi-node.
  4. Tim admin dapat membantu user untuk membedakan program komputasi MPI dan non-MPI.

#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>
  • Contoh mengalokasikan 1 node:

#SBATCH --nodes=1

Jumlah nodes maksimal 3
ntasks Alokasi jumlah core CPU yang digunakan.
#SBATCH --ntasks=<jumlah-core-CPU>
  • Contoh mengalokasikan 32 core CPU:

#SBATCH --ntasks=32

Jumlah ntasks maksimal
Per Compute Node atau nodes 128
Semua Compute Node 384
Note:
  • ALELEON Supercomputer menyalakan SMT (Simultaneous Multithreading) pada semua CPU sehingga ntasks mengisi core thread CPU.
  • 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.
  • Kredit CPU Core Hour (CCH) akan berkurang sejumlah ntasks yang didefinisikan user per jam-nya.
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
  • Contoh mengalokasikan memori RAM 32GB:

#SBATCH --mem=32GB

  • Contoh mengalokasikan memori RAM 7500MB:

#SBATCH --mem=7500MB

Jumlah mem maksimal 240GB
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:

  • Hanya untuk user yang benar-benar membutuhkan komputasi dengan RAM lebih dari 240GB!
  • Compute epyc001 juga digunakan oleh user lainnya jadi bersiaplah untuk mengantri apabila alokasi epyc01 belum dapat memenuhi permintaan user dengan RAM lebih dari 240GB.
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>
  • Contoh mengalokasikan limit waktu 10 jam 30 menit:

#SBATCH --time=10:30:00

  • Contoh mengalokasikan limit waktu 2 hari:

#SBATCH --time=2-00:00:00

Jumlah time maksimal 3-00:00:00 (3 hari)
output Output textfile untuk merekap output terminal. User mendefinisikan nama dan format file.
  • Terdapat pola penamaan dari SLURM yaitu %j untuk merekap nomor Job ID.
  • Format file dibebaskan (biasanya menggunakan .txt atau .out).
#SBATCH --output=<nama-file-output>.<format-file>
  • Contoh mendefinisikan file output dengan format txt bersama job-ID:

#SBATCH --output=result-%j.txt

  • Ketika job berjalan (contoh) dengan job-ID 670, maka nama file output menjadi result-670.txt.
error Output textfile untuk merekap output verbose (status jalannya program dan error log ketika program gagal berjalan).
  • Bermanfaat untuk melakukan troubleshooting ketika program gagal berjalan. Apabila membutuhkan support, admin biasanya akan meminta file output dari SBATCH error ini.
  • Pola penamaan mengikuti SBATCH output diatas.
#SBATCH --error=<nama-file-output>.<format-file>
  • Contoh mendefinisikan file error dengan format txt bersama job-ID:

SBATCH --output=error-%j.txt

  • Ketika job berjalan (contoh) dengan job-ID 670, maka nama file error menjadi error-670.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.

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 Template Submit Script

User dapat melihat daftar lengkap template Submit Script pada laman ini:

Daftar Software Komputasi dan Tutorial Penggunaan