Menggunakan ALELEON Supercomputer via Terminal: Perbedaan antara revisi

Dari ALELEON by EFISON
(Overhaul maintenance 01/02/2023 part 1: paraphrasing hingga bagian module env)
(→‎3 - Menjalankan Komputasi ke Compute Node via SLURM: Overhaul maintenance 01/02/2023 part 2: penyederhanaan tutorial SBATCH SLURM)
Baris 12: Baris 12:
  $ command ''<input-yang-ditulis-user>''
  $ command ''<input-yang-ditulis-user>''
== '''1 - Login SSH''' ==
== '''1 - Login SSH''' ==
SIlahkan gunakan software shell sesuai preferensi masing-masing user untuk login SSH (contoh: PuTTY, Windows Terminal / Powershell, MobaXTerm, Terminal Linux, Terminal MacOS, dll).  
SIlahkan gunakan software shell sesuai preferensi masing-masing user untuk login SSH (contoh: PuTTY, Windows Terminal / Powershell, MobaXTerm, Terminal Linux, Terminal MacOS, dll). User melakukan login SSH setelah terhubung dengan koneksi VPN EFISON dengan kredensial:   
User melakukan login SSH setelah terhubung dengan koneksi VPN EFISON dengan kredensial:   
{| class="wikitable"
{| class="wikitable"
|+Kredensial login SSH
|+Kredensial login SSH
Baris 72: Baris 71:
[[Berkas:Slurmm.png|al=|600x600px]]
[[Berkas:Slurmm.png|al=|600x600px]]


User menjalankan job komputasi melalui '''SLURM''', yaitu program manajemen untuk menjalankan komputasi user pada Compute Node sekaligus mengatur antrian antar job.
User menjalankan job komputasi melalui '''SLURM''', yaitu program manajemen untuk menjalankan komputasi user pada Compute Node sekaligus mengatur antrian job semua user.
 
---
 
=== Menyiapkan File Input Komputasi ===
User dapat langsung menjalankan komputasi di direktori HOME masing-masing. User dapat melakukan upload file komputasi ke ALELEON Supercomputer melalui:
 
* Aplikasi [[Upload File dengan Aplikasi FTP|'''FTP''']] seperti FileZilla atau lainnya.
* Menggunakan [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#2_-_Halaman_Dashboard_EFIRO '''EFIRO Files'''] melalui menu '''<code>Files > Home Directory</code>'''
 
---
=== Menggunakan SLURM ===
Berikut adalah perintah dasar esensial bagi user dalam  menggunakan SLURM untuk job submission:
{| class="wikitable"
{| class="wikitable"
|'''Menjalankan job komputasi'''
|+Langkah menjalankan job komputasi dengan SLURM
$ '''sbatch''' ''<SLURM-script>''
|'''1'''
|User menjalankan komputasi pada direktori HOME user. Siapkan file yang dibutuhkan untuk menjalankan komputasi user.


* SLURM Script (atau Submit Script) adalah bash script yang berisikan alokasi resources (CPU, GPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user.
* [[Upload File dengan Aplikasi FTP|'''User dapat melakukan upload / download file dengan bantuan aplikasi FTP''']] seperti FileZilla, WinSCP, dan lainnya.
* Berikut adalah panduan menulis SLURM Script di ALELEON Supercomputer:
** Aturan umum -> [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']]
** Contoh SLURM Script berdasarkan software -> [[Daftar Software Komputasi dan Tutorial Penggunaan|'''Daftar Software Komputasi dan Tutorial Penggunaan''']]
|}
{| class="wikitable"
|'''Melihat status antrian job'''
$ '''squeue'''


* Tambahan opsi flag:
''Untuk kerapian data, disarankan untuk menaruh satu job pada satu folder tersendiri.''
** '''-l''': menampilkan squeue dengan info yang lebih lengkap.
$ mkdir <''folder-job-supaya-rapi''>
** '''-u $USER''': menampilkan squeue untuk job user saja.
$ cd <''folder-job-supaya-rapi''>
|}
|-
{| class="wikitable"
| rowspan="2" |'''2'''
|'''Membatalkan job SLURM yang sedang berjalan dengan nomor job ID.'''
|User membuat '''SLURM Submit Script''' yaitu script bash yang berisikan alokasi kebutuhan komputasi (CPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user.  
$ '''scancel''' ''<job-ID>''
$ nano <''nama-SLURM-Job-script''>.sh
 
Contoh membuat script dengan nama "skripsi.sh"
* User hanya bisa membatalkan job yang dijalankan user sendiri.
$ nano skripsi.sh
|}
''*gunakan text editor terminal kesukaan masing-masing user atau bisa langsung FTP dari komputer pribadi user.''
 
== '''5 - Contoh Menggunakan SLURM''' ==
Contoh user akan menjalankan program bernama 'skripsi''''.'''
{| class="wikitable"
|'''1'''
|User menyiapkan file untuk menjalankan program 'skripsi'.
|-
|-
|'''2'''
|'''Preferensi membuat SLURM Submit Script di ALELEON Supercomputer:'''  
|'''User membuat SLURM script yang berisikan alokasi resources dan perintah untuk menjalankan program 'skripsi'.'''
* '''[[Submit Script ALELEON Supercomputer|Pengenalan dasar Submit Script dan aturan menentukan alokasi kebutuhan komputasi di ALELEON Supercomputer.]]'''
* Biasanya SLURM script ditaruh pada satu direktori dengan program yang akan dijalankan.
* '''[[Daftar Software Komputasi dan Tutorial Penggunaan|Contoh template SLURM Submit Script untuk masing-masing software komputasi.]]'''
* Penamaan SLURM script bisa bebas dimana pada contoh ini bernama 'slurm-skripsi'.
 
$ ls
skripsi  '''slurm-skripsi'''
|-
|-
|'''3'''
|'''3'''
|Jalankan SLURM submission script tersebut dengan perintah '''sbatch'''. Perhatikan user mendapatkan nomor ID dari job tersebut.
|Setelah menulis dan save script, jalankan job submission dengan perintah '''sbatch'''.
  $ '''sbatch ''slurm-skripsi'''''
  $ '''sbatch''' <''nama-SLURM-Job-script''>.sh
Submitted batch job 231
Contoh menjalankan script skripsi.sh diatas. Perhatikan bahwa user akan mendapatkan job ID.
|-
  $ sbatch skripsi.sh
| rowspan="2" |'''4'''
  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.
  $ '''squeue -u $USER'''
  Mon Mar 22 10:43:22 2021
              JOBID PARTITION    NAME    USER  ST      TIME  NODES NODELIST(REASON)
                231     epyc slurm-sc  olala01  R      2:00      1 epyc001
|-
|-
|Apabila user ingin membatalkan job komputasi yang tengah berjalan via SLURM, gunakan perintah '''scancel''' ''<job-ID>'', contoh:
|'''4A'''
  $ '''scancel 231'''
|User dapat melihat status jalannya job dengan perintah squeue plus flag -ul $USER. Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu.
$ '''squeue -ul $USER'''
Apabila ingin melihat status semua job, jalankan perintah squeue -l.
  $ squeue -l
Info squeue lebih lengkap dapat dipelajari pada '''subbab 4.'''
|-
|-
|'''5'''
|'''4B'''
|Job selesai bila sudah tidak terlihat di daftar squeue. Lihat apakah job menghasilkan output yang diinginkan atau tidak.
|Apabila user ingin membatalkan job, gunakan perintah scancel berdasarkan job ID.
  $ '''ls'''
  $ '''scancel''' <''job-ID-submission-user''>
skripsi  slurm-skripsi  result-231.txt revisiii.txt
Contoh user membatalman job dengan ID 231.
  $ scancel 231
|}
|}


== '''6 - Memonitor Jalannya Job dengan squeue''' ==
== '''4 - Memonitor Jalannya Job dengan squeue''' ==
User dapat memantau status jalannya job atau melihat antrian job dengan perintah squeue. Info esensial untuk user adalah bagian STATE dan NODELIST(REASON).  
User dapat memantau status jalannya job atau melihat antrian job dengan perintah squeue. Info esensial untuk user adalah bagian STATE dan NODELIST(REASON).  



Revisi per 1 Februari 2023 09.51

0 - Pendahuluan

Tutorial ini menjabarkan cara klasik menggunakan ALELEON Supercomputer via tampilan terminal.

Kompetensi User

User dapat penggunaan terminal Linux:

  • Familiar dengan perintah dasar Linux seperti cd, ls, mkdir, cp, mv, rm, cat, less, wget, dan lainnya.
  • Familiat dengan shell text editor sesuai referensi penggunaan masing-masing (contoh nano, vim, vi, emacs).

Persetujuan Prefix

Simbol $ menandakan perintah terminal, sedangkan tanda bracket <> menandakan parameter input yang ditulis oleh user:

$ command <input-yang-ditulis-user>

1 - Login SSH

SIlahkan gunakan software shell sesuai preferensi masing-masing user untuk login SSH (contoh: PuTTY, Windows Terminal / Powershell, MobaXTerm, Terminal Linux, Terminal MacOS, dll). User melakukan login SSH setelah terhubung dengan koneksi VPN EFISON dengan kredensial:

Kredensial login SSH
Username dan password Diberikan admin ALELEON
Host untuk user Windows / MacOS aleleon.hpc
Host untuk user Linux 10.192.50.10
Port 22
Contoh perintah login SSH standar
Kondisi user Perintah SSH
SSH dari OS Windows / MacOS $ ssh <username>@aleleon.hpc
SSH dari OS Linux $ ssh <username>@10.192.50.10

ALELEON Supercomputer juga mendukung SSH X11 untuk tampilan grafis. Berikut adalah panduan untuk melakukan SSH X11:

Login SSH X11
Dari OS Metode
Linux $ ssh -X <username>@10.192.50.10
Windows EFISON merekomendasikan software MobaXTerm Home Edition
MacOS $ ssh -Y <username>@aleleon.hpc

2A - Selamat Datang di Login Node

Setelah login, user masuk ke Login Node untuk berinteraksi dengan ALELEON Supercomputer. Pada Login Node, user dapat melakukan kegiatan manajemen data, download / upload, compiling, menyiapkan job komputasi, dan submit job komputasi (job submission) yang akan dijalankan oleh Compute Node.

  • Dimohon untuk tidak menjalankan komputasi berat di Login Node karena mempunyai spesifikasi terbatas dan akan mengganggu user lainnya.
  • Admin EFISON berhak memberikan peringatan kepada user atau menghentikan job komputasi user yang memakan semua resources Login Node dalam waktu lama.

Sementara itu Compute Node berperan untuk menjalankan job komputasi semua user yang disubmit melalui SLURM. Tutorial dijelaskan pada bagian 3.

2B - Mengakses Software di Login Node dengan Module Environment

Apabila user ingin mengakses software yang terinstal di ALELEON Supercomputer pada Login Node (untuk keperluan selain menjalankan komputasi), user dapat menggunakan Module Environment.

3 - Menjalankan Komputasi ke Compute Node via SLURM

User menjalankan job komputasi melalui SLURM, yaitu program manajemen untuk menjalankan komputasi user pada Compute Node sekaligus mengatur antrian job semua user.

Langkah menjalankan job komputasi dengan SLURM
1 User menjalankan komputasi pada direktori HOME user. Siapkan file yang dibutuhkan untuk menjalankan komputasi user.

Untuk kerapian data, disarankan untuk menaruh satu job pada satu folder tersendiri.

$ mkdir <folder-job-supaya-rapi>
$ cd <folder-job-supaya-rapi>
2 User membuat SLURM Submit Script yaitu script bash yang berisikan alokasi kebutuhan komputasi (CPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user.
$ nano <nama-SLURM-Job-script>.sh

Contoh membuat script dengan nama "skripsi.sh"

$ nano skripsi.sh

*gunakan text editor terminal kesukaan masing-masing user atau bisa langsung FTP dari komputer pribadi user.

Preferensi membuat SLURM Submit Script di ALELEON Supercomputer:
3 Setelah menulis dan save script, jalankan job submission dengan perintah sbatch.
$ sbatch <nama-SLURM-Job-script>.sh

Contoh menjalankan script skripsi.sh diatas. Perhatikan bahwa user akan mendapatkan job ID.

$ sbatch skripsi.sh
Submitted batch job 231
4A User dapat melihat status jalannya job dengan perintah squeue plus flag -ul $USER. Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu.
$ squeue -ul $USER

Apabila ingin melihat status semua job, jalankan perintah squeue -l.

$ squeue -l

Info squeue lebih lengkap dapat dipelajari pada subbab 4.

4B Apabila user ingin membatalkan job, gunakan perintah scancel berdasarkan job ID.
$ scancel <job-ID-submission-user>

Contoh user membatalman job dengan ID 231.

$ scancel 231

4 - Memonitor Jalannya Job dengan squeue

User dapat memantau status jalannya job atau melihat antrian job dengan perintah squeue. Info esensial untuk user adalah bagian STATE dan NODELIST(REASON).

  • STATE (ST) memberikan kondisi jalannya program user.
  • NODELIST(REASON) memberikan detail verbose status jalannya program user.
Daftar STATE yang biasa muncul
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. Berikut adalah daftar NODELIST yang bisa terjadi di ALELEON Supercomputer:

Daftar info NODELIST pada job tidak berjalan yang telah dikonfirmasi terjadi
NODELIST Penjelasan
Resources

Priority

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 ke admin EFISON apabila menjumpai NODELIST yang tidak terdapat pada daftar diatas ketika job user tidak berjalan.