Submit Script ALELEON Supercomputer: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) k (WilsonLisan memindahkan halaman Manajemen SLURM ALELEON Supercomputer ke Alokasi Resources Job dan Contoh SLURM Script: Didedikasikan untuk penjelasan resources job dan contoh SLURM Script) |
WilsonLisan (bicara | kontrib) (mendefinisikan page sebagai SBATCH) |
||
Baris 1: | Baris 1: | ||
Salah satu seni dalam menggunakan superkomputer adalah '''user menentukan sendiri alokasi resources untuk menjalankan job''' seperti '''jumlah core CPU, RAM, GPU, walltime, file output, notifikasi email, threading CPU, dll'''. Analogikan seperti kita hendak pesan bungkus di warung makan nasi padang di mana kita menentukan sendiri berapa porsi yang mau dibungkus, jenis lauk, dan jumlahnya. | |||
[[Berkas:Resourcesjob.png|nir|jmpl|700x700px|'''Memilih alokasi resources untuk menjalankan job di superkomputer ibarat kita memilih lauk dan jumlahnya untuk pesan bungkus nasi padang''']] | |||
[[Berkas: | |||
=='''Resources ALELEON Supercomputer'''== | =='''Resources ALELEON Supercomputer'''== | ||
Sebelum menentukan alokasi resource job, user harus mengetahui spesifikasi hardware dari ALELEON Supercomputer yang dijelaskan pada tabel dibawah ini. | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Partisi Hardware ALELEON Supercomputer | |+Partisi Hardware dan Resources ALELEON Supercomputer | ||
!Partisi | !Partisi | ||
!Keterangan | !Keterangan | ||
!Jumlah Node | !Jumlah Node | ||
!Jumlah Core Fisik CPU per node | !Jumlah Core Fisik CPU | ||
!Jumlah Core Thread CPU per node | per node | ||
!Kapasitas RAM per node | !Jumlah Core Thread CPU | ||
!Jumlah GPU per node | per node | ||
!Kapasitas RAM | |||
per node | |||
!Jumlah GPU | |||
per node | |||
|- | |- | ||
|'''epyc''' (DEFAULT) | |'''epyc''' (DEFAULT) | ||
Baris 85: | Baris 36: | ||
Keterangan: | Keterangan: | ||
* '''Partisi adalah pengelompokan jenis Compute Node''' | * '''Partisi adalah pengelompokan jenis Compute Node.''' Partisi epyc khusus untuk komputasi CPU sedangkan Partisi gpu_ampere mempunyai GPU. | ||
* '''Secara default, komputasi pada ALELEON Supercomputer diarahkan ke Partisi epyc.''' Gunakan parameter SBATCH partition untuk menggunakan Partisi gpu_ampere (penjelasan di bawah). | * '''Secara default, komputasi pada ALELEON Supercomputer diarahkan ke Partisi epyc.''' Gunakan parameter SBATCH partition untuk menggunakan Partisi gpu_ampere (penjelasan di bawah). | ||
Baris 91: | Baris 42: | ||
== '''Core Thread CPU pada ALELEON Supercomputer''' == | == '''Core Thread CPU pada ALELEON Supercomputer''' == | ||
EFISON menggunakan CPU [https://www.amd.com/en/products/cpu/amd-epyc-7702p '''AMD EPYC 7702P'''] pada Partisi epyc dan [https://www.amd.com/en/products/cpu/amd-ryzen-threadripper-3990x '''AMD Threadripper 3990X'''] pada Partisi gpu_ampere'''.''' 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'''. | EFISON menggunakan CPU [https://www.amd.com/en/products/cpu/amd-epyc-7702p '''AMD EPYC 7702P'''] pada Partisi epyc dan [https://www.amd.com/en/products/cpu/amd-ryzen-threadripper-3990x '''AMD Threadripper 3990X'''] pada Partisi gpu_ampere'''.''' 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'''. | ||
Secara default, '''penggunaan CPU pada ALELEON Supercomputer didasarkan pada core thread, termasuk [[Core Hour|penghitungan penggunaan komputasi CPU Core Hour user]]'''. | Secara default, '''penggunaan CPU pada ALELEON Supercomputer didasarkan pada core thread, termasuk [[Core Hour|penghitungan penggunaan komputasi CPU Core Hour user]]'''. | ||
Baris 215: | Baris 166: | ||
=== Pengiriman Status Jalannya Job via E-mail === | === Pengiriman Status Jalannya Job via E-mail === | ||
SLURM pada ALELEON Supercomputer dapat mengirim pesan email kepada user untuk mengabarkan apabila job komputasi user sudah berjalan atau selesai. SLURM ALELEON Supercomputer menggunakan alamat email ''' | SLURM pada ALELEON Supercomputer dapat mengirim pesan email kepada user untuk mengabarkan apabila job komputasi user sudah berjalan atau selesai. SLURM ALELEON Supercomputer menggunakan alamat email '''[[/cdn-cgi/l/email-protection|[email protected]]]''' dengan nama '''Jojo''' untuk mengirim pesan ke email user. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Parameter email SLURM | |+Parameter email SLURM | ||
Baris 272: | Baris 223: | ||
=='''Contoh SLURM Script Software Spesifik'''== | =='''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]'''. | 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]'''. | ||
Revisi per 28 Januari 2022 08.47
Salah satu seni dalam menggunakan superkomputer adalah user menentukan sendiri alokasi resources untuk menjalankan job seperti jumlah core CPU, RAM, GPU, walltime, file output, notifikasi email, threading CPU, dll. Analogikan seperti kita hendak pesan bungkus di warung makan nasi padang di mana kita menentukan sendiri berapa porsi yang mau dibungkus, jenis lauk, dan jumlahnya.
Resources ALELEON Supercomputer
Sebelum menentukan alokasi resource job, user harus mengetahui spesifikasi hardware dari ALELEON Supercomputer yang dijelaskan pada tabel dibawah ini.
Partisi | Keterangan | Jumlah Node | Jumlah Core Fisik CPU
per node |
Jumlah Core Thread CPU
per node |
Kapasitas RAM
per node |
Jumlah GPU
per node |
---|---|---|---|---|---|---|
epyc (DEFAULT) | compute node CPU | 3 | 64 | 128 | 250GB | 0 |
gpu_ampere | compute node GPU | 1 | 64 | 128 | 125GB | 2 |
Keterangan:
- Partisi adalah pengelompokan jenis Compute Node. Partisi epyc khusus untuk komputasi CPU sedangkan Partisi gpu_ampere mempunyai GPU.
- Secara default, komputasi pada ALELEON Supercomputer diarahkan ke Partisi epyc. Gunakan parameter SBATCH partition untuk menggunakan Partisi gpu_ampere (penjelasan di bawah).
- Istilah node digunakan sebagai satuan jumlah server. Contoh, Partisi epyc mempunyai 3 node yang artinya mempunyai 3 unit server.
Core Thread CPU pada ALELEON Supercomputer
EFISON menggunakan CPU AMD EPYC 7702P pada Partisi epyc dan AMD Threadripper 3990X pada Partisi gpu_ampere. 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.
Secara default, penggunaan CPU pada ALELEON Supercomputer didasarkan pada core thread, termasuk penghitungan penggunaan komputasi CPU Core Hour user.
Parameter Resources SBATCH Esensial
Terdapat ratusan jenis parameter SBATCH pada SLURM. Admin EFISON merangkum parameter esensial yang digunakan pada ALELEON Supercomputer.
Parameter | Resource | Penjelasan | Alokasi maksimal |
---|---|---|---|
#SBATCH --nodes= |
Node server | Alokasi jumlah node yang digunakan.
Contoh mengalokasikan 1 node: #SBATCH --nodes=1 |
3 |
#SBATCH --ntasks= |
Core thread CPU | Alokasi jumlah core thread CPU yang akan digunakan.
Contoh mengalokasikan 32 core thread CPU: #SBATCH --ntasks=32 |
384 |
#SBATCH --mem= |
Memori RAM | Alokasi memori RAM yang akan digunakan.
User bisa menetapkan satuan KB, MB, atau GB. Contoh mengalokasikan memori 32GB: #SBATCH --mem=32GB |
250GB |
#SBATCH --time= |
Walltime | Waktu maksimal yang dialokasikan untuk job.
Format waktu <walltime> yang digunakan:
|
14-00:00:00 |
#SBATCH --output= |
Output terminal | Merekap output terminal dari program user kedalam format text file.
User memberikan nama file (bebas, satu kata tanpa spasi) dan format file. Format file dibebaskan, misalnya yang sering digunakan format .txt atau .out Terdapat penamaan pattern dari SLURM yaitu %j yang merekap JOB ID. Contoh pengisian output: #SBATCH --output=result-%j.txt
|
- |
#SBATCH --error= |
Output verbose | Merekap output verbose program (contoh: error log ketika program gagal selesai).
Admin EFISON menyarankan user untuk selalu menggunakan parameter ini. Berguna untuk melakukan troubleshooting ketika program user gagal berjalan. Contoh pengisian error output: #SBATCH --error=error-%j.txt |
- |
Menggunakan Compute Node GPU
Berikut adalah dua parameter tambahan untuk menggunakan compute node GPU ALELEON Supercomputer atau Partisi gpu_ampere:
Paramater | Resource | Penjelasan | Alokasi maksimal |
---|---|---|---|
#SBATCH --partition=gpu_ampere |
Partisi GPU | Menjalankan job pada partisi compute node GPU ALELEON Supercomputer. | - |
#SBATCH --gres=gpu:<jumlah-GPU> |
GPU | Jumlah GPU yang digunakan.
Contoh menggunakan 2 GPU: $SBATCH --gres=gpu:2 |
gpu:2 |
Menggunakan Paralelisasi Threading Core pada OpenMP atau BLAS
Berikut adalah parameter untuk mengalokasikan threading para program paralel yang menggunakan metode OpenMP (OMP), hybrid MPI/OMP, atau terintegrasi dengan BLAS:
Parameter | Resource | Penjelasan | Alokasi maksimal |
---|---|---|---|
#SBATCH --cpus-per-task= |
Threading CPU | Jumlah paralelisasi threading per core yang digunakan.
Contoh mengalokasikan paralelisasi 8 threading per core: #SBATCH --cpus-per-task=8 |
64 atau 128 untuk Pure OMP.
4 atau 8 untuk Hybrid MPI/OMP. |
Pengiriman Status Jalannya Job via E-mail
SLURM pada ALELEON Supercomputer dapat mengirim pesan email kepada user untuk mengabarkan apabila job komputasi user sudah berjalan atau selesai. SLURM ALELEON Supercomputer menggunakan alamat email [email protected] dengan nama Jojo untuk mengirim pesan ke email user.
Parameter | Penjelasan |
---|---|
#SBATCH --mail-user= |
Email user untuk menerima pesan dari SLURM |
#SBATCH --mail-type=begin |
Mengirim pesan email bahwa job user sudah berjalan. |
#SBATCH --mail-type=end |
Mengirim pesan email bahwa job user sudah selesai.
Email ini sekaligus berisikan cuplikan 20 baris terakhir dari file output dan error SLURM. |
Menjalankan Komputasi Paralel Multi-Node
Ketika membutuhkan kekuatan komputasi atau jumlah core thread yang besar, user dapat menjalankan komputasi paralel multi-node (lebih dari satu node) pada ALELEON Supercomputer dengan memasukkan jumlah node lebih dari satu. SLURM secara otomatis akan menyebarkan alokasi core thread ntasks ke semua node. Contoh menggunakan 2 node dengan total 128 core thread:
#SBATCH --nodes=2 #SBATCH --ntasks=128
Berapa Jumlah Minimal ntasks untuk Menggunakan Multi-Node?
Tidak ada jawaban pasti atas jawaban ini karena setiap software komputasi mempunyai karakteristik optimasi performa yang berbeda-beda. Ambil contoh user akan menggunakan 96 atau 128 core thread untuk menjalankan software komputasi. Dengan 128 core thread per node pada ALELEON Supercomputer, akan terdapat 2 skenario yang umum terjadi:
- Skenario 1: Software tersebut berjalan optimal pada 1 node karena mempunyai pemograman paralelisasi threading yang efisien.
- Skenario 2: Software tersebut berjalan lebih lambat dibandingkan dengan jumlah core yang lebih kecil (contoh 64 core) pada 1 node dan ternyata berjalan optimal ketika dipecah ke 2 node karena mempunyai pemograman yang, misalnya, membutuhkan cache L3 per task yang besar.
Skenario apa yang akan terjadi? User dapat mengetahuinya dengan melakukan tes benchmark sendiri (perlu disadari akan mengurangi kredit Core Hour user!) atau bertanya kepada forum software tersebut. Maka dari itu EFISON merumuskan kombinasi nodes dan ntasks untuk komputasi multi-node:
Jumlah nodes | Rekomendasi EFISON:
Jumlah ntasks setiap kelipatan 64 |
Jumlah ntasks setiap kelipatan 128 |
---|---|---|
1 | 1 - 64 | 1 - 128 |
2 | 65 - 128 | 129 - 256 |
3 | 129 - 192 | 256 - 384 |
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.