Submit Script ALELEON Supercomputer: Perbedaan antara revisi

Dari ALELEON by EFISON
k (WilsonLisan memindahkan halaman SLURM Script ALELEON Supercomputer ke Submit Script ALELEON Supercomputer: Menyetarakan dengan nama di OOD)
(reformat)
Baris 1: Baris 1:
Halaman ini menjelaskan panduan memahami dan mengisi parameter resources pada SLURM Script beserta contohnya berdasarkan hardware ALELEON Supercomputer.    
Halaman ini menjelaskan panduan mengisi Submit Script yang merupakan:    


== '''Tanda ////''' ==
* Script untuk mengalokasikan hardware komputasi dan menjalankan software user ke Compute Node.  
Tanda 4 garing (////) digunakan oleh admin EFISON untuk '''menandai bagian yang perlu diisi oleh user'''. Contoh terdapat bagian script untuk menaruh nama file input:  
* ALELEON Supercomputer menggunakan manajemen [https://slurm.schedmd.com/sbatch.html '''SLURM'''] sehingga Submit Script mengikuti tata cara penulisan SLURM.  
file_input="////.inp"
Artinya user mengisi nama file input dengan menggantikan tanda //// di dalam braket tanda petik, contoh menjadi:
file_input="'''ayam_goreng'''.inp"


=='''Struktur SLURM 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:Jcscriptrev2.png|al=|nir|jmpl|'''Bagian Submit Script''']]
[[Berkas:Jcscriptrev2.png|al=|nirbing|619x619px]]
# Header '''#!/bin/bash''' karena SLURM Script adalah bash script.
# Header '''#!/bin/bash''' karena SLURM 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.
#* Terdapat ratusan jenis [https://slurm.schedmd.com/sbatch.html parameter SBATCH pada SLURM] dari yang standar hingga ''advanced''. Pada halaman ini, admin EFISON merangkum parameter SBATCH yang '''esensial untuk penggunaan ALELEON Supercomputer.'''
#* Terdapat ratusan jenis [https://slurm.schedmd.com/sbatch.html parameter SBATCH pada SLURM] dari yang standar hingga ''advanced''.  
# [[Module Environment|'''Memuat software yang dibutuhkan untuk menjalankan job user dengan Module Environment.''']] Apabila user tidak memuat modul software yang benar maka job tidak akan berjalan.
#* Pada halaman ini, admin EFISON merangkum parameter SBATCH yang esensial untuk menggunakan ALELEON Supercomputer.
# Memuat software yang dibutuhkan untuk menjalankan job user dengan [[Module Environment]] melalui perintah module load. Apabila user tidak memuat modul software yang benar maka job tidak akan berjalan.
# Perintah utama untuk menjalankan program user.
# Perintah utama untuk menjalankan program user.


=='''Resources ALELEON Supercomputer di SLURM'''==
== '''Tanda ////''' ==
Sebelum menentukan alokasi resource job pada SBATCH, user harus mengetahui spesifikasi hardware dari ALELEON Supercomputer:
Tanda 4 garing (////)  '''menandai bagian yang perlu diisi oleh user'''. Contoh terdapat bagian script untuk menaruh nama file input:
file_input="////.inp"
Artinya user mengisi nama file input dengan menggantikan tanda //// di dalam braket tanda petik, contoh menjadi:  
{| class="wikitable"
{| class="wikitable"
!Komponen
|file_input="'''thesis'''.inp"
!Kapasitas
|-
| colspan="2" |'''Partisi epyc - Compute Node CPU'''
|-
|Node
|'''3'''
|-
|Core CPU per node
|'''128'''
|-
|Core CPU total
|'''384'''
|-
|RAM per node
|'''240GB'''
|-
| colspan="2" |'''Partisi gpu_ampere - Compute Node GPU'''
|-
|Node
|'''1'''
|-
|Core CPU
|'''128'''
|-
|GPU
|'''2'''
|-
|RAM
|'''125GB'''
|}
|}
EFISON mengaktifkan '''SMT (Simultaneous Multi-Threading)''' pada semua CPU AMD di ALELEON Supercomputer sehingga masing-masing CPU mempunyai '''2 core thread per 1 core fisik'''. Info lebih detail dapat dipelajari pada laman '''[[Spesifikasi ALELEON Supercomputer]]'''.
Secara default, penggunaan CPU pada ALELEON Supercomputer didasarkan pada '''core thread,''' termasuk '''[[Core Hour|penghitungan penggunaan komputasi CPU Core Hour user]]'''.


== '''SBATCH Partisi epyc / Compute Node CPU''' ==
== '''SBATCH Partisi epyc / Compute Node CPU''' ==
Baris 63: Baris 30:
  #SBATCH --output=////
  #SBATCH --output=////
  #SBATCH --error=////
  #SBATCH --error=////
 
{| class="wikitable"
!Komponen
!SBATCH
!Nilai Maksimal
|-
|Node
|nodes
|'''3'''
|-
|Core thread CPU
|ntasks
|'''128''' per node
'''384''' total
|-
|RAM
|mem
|'''240GB''' per node
|-
|Walltime
|time
|'''14-00:00:00'''
|}
* '''nodes'''
* '''nodes'''
** Alokasi jumlah '''node''' yang digunakan.
** Alokasi jumlah '''node atau unit server Compute Node''' yang digunakan.
** Contoh mengalokasikan 1 node: '''#SBATCH --nodes=1'''
** Contoh mengalokasikan 1 node: '''#SBATCH --nodes=1.'''
** Nilai maksimal nodes = '''3'''
** Lihat tabel Dukungan Hardware pada [https://wiki.efisonlt.com/wiki/Katalog_Software_ALELEON_Supercomputer#Daftar_Software_Komputasi '''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'''  
* '''ntasks'''  
** Alokasi jumlah '''core thread CPU''' yang digunakan.
** Alokasi jumlah '''core thread CPU''' yang digunakan.
** Contoh mengalokasikan 32 core thread CPU: '''#SBATCH --ntasks=32'''
** Contoh mengalokasikan 32 core thread CPU: '''#SBATCH --ntasks=32.'''
** Nilai maksimal ntasks adalah '''kelipatan''' '''128 per 1 node''':
** 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.
** '''Catatan penting:'''
*** Penghitungan kredit CPU Core Hour (CCH) berdasarkan jumlah ntasks yang didefinisikan user.
*** CPU AMD pada ALELEON Supercomputer berjalan dengan '''SMT (Simultaneous Multi-Threading) aktif''' sehingga ntasks mewakili core thread CPU.
---
 
Berikut adalah aturan umum menetapkan nilai nodes dan ntasks di Partisi epyc:
{| class="wikitable"
{| class="wikitable"
!Jumlah node
!Jumlah ntasks
!ntasks maks
!Jumlah nodes
|-
|-
|1 - 128
|1
|1
|128
|-
|-
|129 - 256
|2
|2
|256
|-
|-
|257 - 384
|3
|3
|384
|}
|}
Khusus untuk multi-node program MPI lihat [[MPI ALELEON Supercomputer#MPI%20Satu%20Node%20vs%20Multi%20Node|'''MPI Satu Node vs Multi Node''']].
---
*'''mem'''  
*'''mem'''  
** Alokasi '''kapasitas RAM''' '''per node''' yang digunakan, diikuti dengan satuan KB, MB, atau GB.
** Alokasi '''kapasitas RAM''' '''per node''' yang digunakan, diikuti dengan satuan KB, MB, atau GB.
** Contoh mengalokasikan RAM 32GB: '''#SBATCH --mem=32GB'''
** Contoh mengalokasikan RAM 32GB: '''#SBATCH --mem=32GB'''
** Nilai maksimal mem = '''240GB'''
** Tidak ada aturan baku untuk memilih jumlah RAM. Apabila tidak dapat memperkirakan kebutuhan RAM, admin EFISON menyarankan user untuk memilih jumlah RAM 0.5GB per ntasks sebagai basis, contoh:
***ntasks=8, alokasikan mem 4GB.
***ntasks=32, alokasikan mem 16GB.
**User dapat menggunakan kapasitas RAM yang lebih besar apabila mengetahui bahwa program yang dijalankan membutuhkan kapasitas RAM besar atau alokasi RAM 0.5GB per ntasks tidak cukup.
*'''time'''  
*'''time'''  
** Alokasi '''walltime (waktu maksimal)''' yang diizinkan untuk menjalankan job, mengikuti format penulisan:  
** Alokasi '''walltime (waktu maksimal)''' yang diizinkan untuk menjalankan job, mengikuti format penulisan:  
*** HH:MM:SS. Contoh alokasi 2 jam: '''#SBATCH --time=02:00:00'''
*** HH:MM:SS. Contoh alokasi 2 jam: '''#SBATCH --time=02:00:00'''
*** D-HH:MM:SS. Contoh alokasi 2 hari: '''#SBATCH --time=2-00:00:00'''
*** D-HH:MM:SS. Contoh alokasi 2 hari: '''#SBATCH --time=2-00:00:00'''
** Nilai maksimal walltime = '''14-00:00:00'''
*'''output'''  
*'''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.
** 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.
Baris 104: Baris 103:
** Format penamaan mengikuti parameter output diatas, contoh: '''#SBATCH --error=error-%j.txt'''
** Format penamaan mengikuti parameter output diatas, contoh: '''#SBATCH --error=error-%j.txt'''
== '''SBATCH Partisi gpu_ampere / Compute Node GPU''' ==
== '''SBATCH Partisi gpu_ampere / Compute Node GPU''' ==
Secara umum mengikuti format SBATCH yang sama dengan penjelasan SBATCH Partisi epyc diatas plus diikuti dengan tambahan parameter:
  # Alokasi GPU, core thread CPU, RAM, time limit, output program & error
  # Alokasi GPU, core thread CPU, RAM, time limit, output program & error
  '''#SBATCH --partition=gpu_ampere'''
  '''#SBATCH --partition=gpu_ampere'''
Baris 113: Baris 111:
  #SBATCH --output=////
  #SBATCH --output=////
  #SBATCH --error=////
  #SBATCH --error=////
 
{| class="wikitable"
* '''partition=gpu_ampere'''
!Komponen
!SBATCH
!Nilai Maksimal
|-
|Node
|nodes
|'''1'''
|-
|Core thread CPU
|ntasks
|'''32'''
|-
|GPU
|gres=gpu
|'''3'''
|-
|RAM
|mem
|'''125GB'''
|-
|Walltime
|time
|'''14-00:00:00'''
|}
*'''partition=gpu_ampere'''
** Mengalokasikan job ke Compute Node GPU gpu_ampere
** Mengalokasikan job ke Compute Node GPU gpu_ampere
* '''gres=gpu:<jumlah-GPU>'''
*'''gres=gpu:<jumlah-GPU>'''
** Alokasi '''Jumlah GPU''' yang digunakan.
** Alokasi '''Jumlah GPU''' yang digunakan.
** Contoh mengalokasikan 1 GPU: '''#SBATCH --gres=gpu:1'''
** Contoh mengalokasikan 1 GPU: '''#SBATCH --gres=gpu:1'''
** Nilai maksimal GPU = '''gpu:2'''
** Contoh mengalokasikan 2 GPU: '''#SBATCH --gres=gpu:2'''
* Nilai maksimal ntasks = '''128'''
** '''Catatan penting:'''
* Nilai maksimal mem = '''125GB'''
*** Penghitungan kredit GPU Hour (GH) berdasarkan jumlah gres gpu yang didefinisikan user.
* Nilai maksimal walltime = '''14-00:00:00'''
* '''ntasks'''
** Alokasi jumlah '''core thread CPU''' yang digunakan.
** Contoh mengalokasikan 32 core thread CPU: '''#SBATCH --ntasks=32.'''
** 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.
** '''Catatan penting:'''
*** Penghitungan kredit CPU Core Hour (CCH) berdasarkan jumlah ntasks yang didefinisikan user.
*** CPU AMD pada ALELEON Supercomputer berjalan dengan '''SMT (Simultaneous Multi-Threading) aktif''' sehingga ntasks mewakili core thread CPU.
*'''mem'''
** Alokasi '''kapasitas RAM''' '''per node''' yang digunakan, diikuti dengan satuan KB, MB, atau GB.
** Contoh mengalokasikan RAM 32GB: '''#SBATCH --mem=32GB'''
** Tidak ada aturan baku untuk memilih jumlah RAM. Apabila tidak dapat memperkirakan kebutuhan RAM, admin EFISON menyarankan user untuk memilih jumlah RAM 0.5GB per ntasks sebagai basis, contoh:
***ntasks=8, alokasikan mem 4GB.
***ntasks=32, alokasikan mem 16GB.
**User dapat menggunakan kapasitas RAM yang lebih besar apabila mengetahui bahwa program yang dijalankan membutuhkan kapasitas RAM besar atau alokasi RAM 0.5GB per ntasks tidak cukup.
*'''time'''  
** Alokasi '''walltime (waktu maksimal)''' yang diizinkan untuk menjalankan job, mengikuti format penulisan:
*** HH:MM:SS. Contoh alokasi 2 jam: '''#SBATCH --time=02:00:00'''
*** D-HH:MM:SS. Contoh alokasi 2 hari: '''#SBATCH --time=2-00:00:00'''
*'''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 penamaan pattern 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 seperti "job sudah berjalan!" dan error log ketika program gagal selesai.
** Output error sangat 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''' ==
== '''SBATCH Notifikasi e-mail''' ==
SLURM pada 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. User dapat menambahkan parameter berikut untuk menerima notifikasi email dari SLURM:
SLURM pada 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-user=////
  #SBATCH --mail-type=begin
  #SBATCH --mail-type=begin
Baris 137: Baris 185:
** Sekaligus memberikan cuplikan 20 baris terakhir dari SBATCH output dan error job user.
** Sekaligus memberikan cuplikan 20 baris terakhir dari SBATCH output dan error job user.


=='''Dasar Menentukan Alokasi nodes, ntasks, dan mem'''==
== '''Memuat Software dengan module load''' ==
Berikut adalah aturan dan rekomendasi admin EFISON untuk user supaya dapat mengalokasikan resources komputasi nodes, ntasks, dan mem dengan benar di ALELEON Supercomputer:
Untuk menjalankan software di Compute Node, user harus '''memuat software yang dibutuhkan melalui perintah module load pada Submit Script:'''
----
module load '''nama-modul-software'''


===Menentukan Jumlah Node===
* Perintah module load harus ditaruh sebelum penulisan perintah menjalankan program.
{| class="wikitable"
!Jenis Program
!nodes maksimal
|-
|Non-MPI
|1
|-
|MPI atau paralel
|3
|}Jumlah node ditentukan dari jenis program yang dijalankan yaitu program MPI dan non-MPI:
*Program MPI adalah program yang ditulis berdasarkan pemrograman paralel MPI ('''Message Parallel Interface''') di mana dapat berjalan pada satu atau lebih dari satu node.
*Program non-MPI adalah program yang tidak ditulis dengan pemodelan MPI atau paralel sehingga '''hanya dapat berjalan pada 1 node.'''
Apabila user menjalankan program komputasi yang tersedia di ALELEON Supercomputer, user dapat mengetahui bahwa program tersebut adalah MPI atau tidak dengan memperhatikan kolom "Dukungan MPI" di [https://wiki.efisonlt.com/wiki/Katalog_Software_ALELEON_Supercomputer#Daftar_Software_Komputasi_.28Global.29 '''tabel daftar software komputasi ALELEON Supercomputer''']
 
---
===Jumlah Core Thread CPU: Kelipatan 4===
Berdasarkan arsiktektur CPU AMD yang digunakan oleh ALELEON Supercomputer, user direkomendasikan untuk memilih jumlah core thread CPU (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.


---
* Template software komputasi sudah menyertakan module load yang diperlukan.
===Memperkirakan Kapasitas RAM yang Digunakan===
* Pada template umum (misalnya Default Template, MPI - Template Kosong, Python - Template Kosong, dll), user harus menulis sendiri module load yang dibutuhkan.  
Tidak ada aturan baku untuk mengetahui hal ini karena bergantung dengan jenis software dan besarnya skala input yang dijalankan user. Admin EFISON dapat memberikan saran '''untuk menggunakan jumlah RAM 0.5GB per ntasks sebagai basis'''. Contoh:
* Daftar lengkap nama modul software dapat ditemukan pada [[Katalog Software ALELEON Supercomputer|'''Katalog Software ALELEON Supercomputer''']].
*ntasks=8, alokasikan mem 4GB.
*ntasks=32, alokasikan mem 16GB.
User dapat menggunakan '''kapasitas RAM yang lebih besar''' (contoh 2GB per ntasks atau lebih) apabila user mengetahui bahwa program yang dijalankan membutuhkan kapasitas RAM besar atau program gagal berjalan dengan alokasi RAM 0.5GB per ntasks.

Revisi per 15 Maret 2022 06.42

Halaman ini menjelaskan panduan mengisi Submit Script yang merupakan:

  • Script untuk mengalokasikan hardware komputasi dan menjalankan software user ke Compute Node.
  • ALELEON Supercomputer menggunakan manajemen SLURM sehingga Submit Script mengikuti tata cara penulisan SLURM.

Struktur Submit Script

Secara umum, Submit Script atau SLURM Script dipecah menjadi 4 bagian penting.

Bagian Submit Script
  1. Header #!/bin/bash karena SLURM Script adalah bash script.
  2. Parameter SBATCH untuk mengalokasikan resources job seperti CPU, RAM, GPU, time, dll.
    • Terdapat ratusan jenis parameter SBATCH pada SLURM dari yang standar hingga advanced.
    • Pada halaman ini, admin EFISON merangkum parameter SBATCH yang esensial untuk menggunakan ALELEON Supercomputer.
  3. Memuat software yang dibutuhkan untuk menjalankan job user dengan Module Environment melalui perintah module load. Apabila user tidak memuat modul software yang benar maka job tidak akan berjalan.
  4. Perintah utama untuk menjalankan program user.

Tanda ////

Tanda 4 garing (////) menandai bagian yang perlu diisi oleh user. Contoh terdapat bagian script untuk menaruh nama file input:

file_input="////.inp"

Artinya user mengisi nama file input dengan menggantikan tanda //// di dalam braket tanda petik, contoh menjadi:

file_input="thesis.inp"

SBATCH Partisi epyc / Compute Node CPU

# Alokasi node, core thread CPU, RAM, time limit, output program & error
#SBATCH --nodes=////
#SBATCH --ntasks=////
#SBATCH --mem=////
#SBATCH --time=////
#SBATCH --output=////
#SBATCH --error=////
Komponen SBATCH Nilai Maksimal
Node nodes 3
Core thread CPU ntasks 128 per node

384 total

RAM mem 240GB per node
Walltime time 14-00:00:00
  • nodes
    • Alokasi jumlah node atau unit server Compute Node yang digunakan.
    • Contoh mengalokasikan 1 node: #SBATCH --nodes=1.
    • 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
    • Alokasi jumlah core thread CPU yang digunakan.
    • Contoh mengalokasikan 32 core thread CPU: #SBATCH --ntasks=32.
    • 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.
    • Catatan penting:
      • Penghitungan kredit CPU Core Hour (CCH) berdasarkan jumlah ntasks yang didefinisikan user.
      • CPU AMD pada ALELEON Supercomputer berjalan dengan SMT (Simultaneous Multi-Threading) aktif sehingga ntasks mewakili core thread CPU.

---

Berikut adalah aturan umum menetapkan nilai nodes dan ntasks di Partisi epyc:

Jumlah ntasks Jumlah nodes
1 - 128 1
129 - 256 2
257 - 384 3

Khusus untuk multi-node program MPI lihat MPI Satu Node vs Multi Node.

---

  • mem
    • Alokasi kapasitas RAM per node yang digunakan, diikuti dengan satuan KB, MB, atau GB.
    • Contoh mengalokasikan RAM 32GB: #SBATCH --mem=32GB
    • Tidak ada aturan baku untuk memilih jumlah RAM. Apabila tidak dapat memperkirakan kebutuhan RAM, admin EFISON menyarankan user untuk memilih jumlah RAM 0.5GB per ntasks sebagai basis, contoh:
      • ntasks=8, alokasikan mem 4GB.
      • ntasks=32, alokasikan mem 16GB.
    • User dapat menggunakan kapasitas RAM yang lebih besar apabila mengetahui bahwa program yang dijalankan membutuhkan kapasitas RAM besar atau alokasi RAM 0.5GB per ntasks tidak cukup.
  • time
    • Alokasi walltime (waktu maksimal) yang diizinkan untuk menjalankan job, mengikuti format penulisan:
      • HH:MM:SS. Contoh alokasi 2 jam: #SBATCH --time=02:00:00
      • D-HH:MM:SS. Contoh alokasi 2 hari: #SBATCH --time=2-00:00:00
  • 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 penamaan pattern 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 seperti "job sudah berjalan!" dan error log ketika program gagal selesai.
    • Output error sangat 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=////
Komponen SBATCH Nilai Maksimal
Node nodes 1
Core thread CPU ntasks 32
GPU gres=gpu 3
RAM mem 125GB
Walltime time 14-00:00:00
  • partition=gpu_ampere
    • Mengalokasikan job ke Compute Node GPU gpu_ampere
  • gres=gpu:<jumlah-GPU>
    • Alokasi Jumlah GPU yang digunakan.
    • Contoh mengalokasikan 1 GPU: #SBATCH --gres=gpu:1
    • Contoh mengalokasikan 2 GPU: #SBATCH --gres=gpu:2
    • Catatan penting:
      • Penghitungan kredit GPU Hour (GH) berdasarkan jumlah gres gpu yang didefinisikan user.
  • ntasks
    • Alokasi jumlah core thread CPU yang digunakan.
    • Contoh mengalokasikan 32 core thread CPU: #SBATCH --ntasks=32.
    • 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.
    • Catatan penting:
      • Penghitungan kredit CPU Core Hour (CCH) berdasarkan jumlah ntasks yang didefinisikan user.
      • CPU AMD pada ALELEON Supercomputer berjalan dengan SMT (Simultaneous Multi-Threading) aktif sehingga ntasks mewakili core thread CPU.
  • mem
    • Alokasi kapasitas RAM per node yang digunakan, diikuti dengan satuan KB, MB, atau GB.
    • Contoh mengalokasikan RAM 32GB: #SBATCH --mem=32GB
    • Tidak ada aturan baku untuk memilih jumlah RAM. Apabila tidak dapat memperkirakan kebutuhan RAM, admin EFISON menyarankan user untuk memilih jumlah RAM 0.5GB per ntasks sebagai basis, contoh:
      • ntasks=8, alokasikan mem 4GB.
      • ntasks=32, alokasikan mem 16GB.
    • User dapat menggunakan kapasitas RAM yang lebih besar apabila mengetahui bahwa program yang dijalankan membutuhkan kapasitas RAM besar atau alokasi RAM 0.5GB per ntasks tidak cukup.
  • time
    • Alokasi walltime (waktu maksimal) yang diizinkan untuk menjalankan job, mengikuti format penulisan:
      • HH:MM:SS. Contoh alokasi 2 jam: #SBATCH --time=02:00:00
      • D-HH:MM:SS. Contoh alokasi 2 hari: #SBATCH --time=2-00:00:00
  • 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 penamaan pattern 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 seperti "job sudah berjalan!" dan error log ketika program gagal selesai.
    • Output error sangat 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 pada 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.