Menggunakan ALELEON Supercomputer via Terminal: Perbedaan antara revisi

Dari ALELEON by EFISON
(paraphrasing)
(overhaul tutorial)
Baris 5: Baris 5:
  $ command '''''<input-yang-ditulis-user>'''''
  $ command '''''<input-yang-ditulis-user>'''''
== '''1 | Login SSH''' ==
== '''1 | Login SSH''' ==
Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke jaringan VPN ALELEON Supercomputer''']] untuk dapat melakukan login ke ALELEON Supercomputer.  
Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke VPN ALELEON Supercomputer''']].  


* SIlahkan gunakan software shell sesuai preferensi masing-masing user untuk login SSH.
* SIlahkan gunakan software shell sesuai preferensi masing-masing user untuk login SSH.
=== Kredensial SSH Login Node Utama ===
User login ke Login Node utama dengan kredensial berikut:
{| class="wikitable"
{| class="wikitable"
|+Kredensial SSH Login Node Utama  
! colspan="2" |Kredensial Login Node Utama
|-
|'''Username dan password'''
|'''Username dan password'''
|''Diberikan oleh admin ALELEON''
|''Diberikan oleh admin ALELEON''
Baris 25: Baris 23:
|<code>22</code> ''(default)''
|<code>22</code> ''(default)''
|-
|-
| colspan="2" |Contoh perintah login melalui terminal:
| colspan="2" |Contoh login via terminal:
* User OS Windows dan MacOS -> <code>'''$ ssh <''username''>@aleleon.hpc'''</code>
* User OS Windows & MacOS -> <code>'''$ ssh <''username''>@aleleon.hpc'''</code>
* User OS Linux -> <code>'''$ ssh <''username''>@10.192.50.10'''</code>
* User OS Linux -> <code>'''$ ssh <''username''>@10.192.50.10'''</code>
|-
|-
| colspan="2" |'''Note khusus:'''  
| colspan="2" |'''''Keterangan:''''' 
* Mempunyai GPU NVIDIA T400.
* Dapat melakukan compiling dengan lib. NVIDIA CUDA 12
** Dapat melakukan compiling dengan lib. NVIDIA CUDA 12
|}
|}
ALELEON Supercomputer mendukung '''SSH X11''' untuk menampilkan window GUI dengan panduan berikut:
ALELEON Supercomputer mendukung '''SSH X11''' untuk menampilkan window GUI:
{| class="wikitable"
{| class="wikitable"
!Dari OS
!Dari OS
Baris 47: Baris 44:
|<code>$ ssh -X ''<username>''@''<hostname>''</code>
|<code>$ ssh -X ''<username>''@''<hostname>''</code>
|}
|}
 
Terdapat login node khusus dengan spesifikasi besar bagi user yang ingin melakukan compiling file skala besar ''(klik expand atau kembangkan)'':
=== Kredensial SSH Login Node Lainnya ===
Apabila tidak dapat login ke Login Node Utama, gunakan Login Node Backup ''(klik expand atau kembangkan)'':
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Kredensial Login Node Backup
! colspan="2" |Kredensial Login Node Besar
|-
|-
|'''Username dan password'''
|'''Username dan password'''
Baris 57: Baris 52:
|-
|-
|'''Host untuk user Windows / MacOS'''
|'''Host untuk user Windows / MacOS'''
|<code>aleleon2.hpc</code>
|<code>aleleon3.hpc</code>
|-
|-
|'''Host untuk user Linux'''
|'''Host untuk user Linux'''
|<code>10.192.50.12</code>
|<code>10.192.50.13</code>
|-
|-
|'''Nomor port'''
|'''Nomor port'''
Baris 66: Baris 61:
|-
|-
| colspan="2" |'''Note khusus:'''  
| colspan="2" |'''Note khusus:'''  
* Mempunyai spesifikasi terbatas (CPU AMD EPYC 4 core dan RAM 16GB).
* Mempunyai spesifikasi CPU 12 core dan RAM 128GB.
* Tidak mempunyai GPU.
* Dapat melakukan compiling dengan lib. NVIDIA CUDA 12
|}
|}
Terdapat login node khusus dengan spesifikasi besar bagi user yang ingin melakukan compiling file skala besar ''(klik expand atau kembangkan)'':
Apabila tidak dapat login ke Login Node Utama, gunakan Login Node Backup ''(klik expand atau kembangkan)'':
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Kredensial Login Node Besar
! colspan="2" |Kredensial Login Node Backup
|-
|-
|'''Username dan password'''
|'''Username dan password'''
Baris 77: Baris 72:
|-
|-
|'''Host untuk user Windows / MacOS'''
|'''Host untuk user Windows / MacOS'''
|<code>aleleon3.hpc</code>
|<code>aleleon2.hpc</code>
|-
|-
|'''Host untuk user Linux'''
|'''Host untuk user Linux'''
|<code>10.192.50.13</code>
|<code>10.192.50.12</code>
|-
|-
|'''Nomor port'''
|'''Nomor port'''
Baris 86: Baris 81:
|-
|-
| colspan="2" |'''Note khusus:'''  
| colspan="2" |'''Note khusus:'''  
* Mempunyai spesifikasi CPU 12 core dan RAM 128GB.
* Mempunyai spesifikasi terbatas (CPU AMD EPYC 4 core dan RAM 16GB).
* Mempunyai GPU NVIDIA GT1030.
* Tidak mempunyai GPU.
** Dapat melakukan compiling dengan lib. NVIDIA CUDA 12
|}
|}
== '''2 | Selamat Datang di Login Node''' ==
== '''2 | Selamat Datang di Login Node''' ==
[[Berkas:Login-node-compute-node-1.png|al=|nirbing|600x600px]]
[[Berkas:Login-node-compute-node-1.png|al=|nirbing|700x700px]]


Setelah login, user masuk ke '''Login Node''' untuk berinteraksi dengan ALELEON Supercomputer.
Login SSH membawa user masuk ke '''Login Node.''' Pada Login Node, user dapat melakukan: 


* 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.
* Kegiatan manajemen data, download / upload, compiling, instalasi software sendiri, dll.
* Apabila user ingin mengakses software yang terinstal di ALELEON Supercomputer (''untuk keperluan selain menjalankan komputasi''), gunakan [[Module Environment|'''Module Environment''']].
* Menjalankan komputasi ke '''Compute Node''' melalui manajemen SLURM.
* Sementara itu '''Compute Node''' berperan untuk menjalankan job komputasi semua user yang disubmit melalui SLURM. Tutorial dijelaskan pada bagian 3.
** Lihat subbab [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#3_|_Menjalankan_Komputasi_ke_Compute_Node_via_SLURM '''Menjalankan Komputasi ke Compute Node via SLURM''']
* Mengakses software yang terinstal di ALELEON Supercomputer melalui [[Module Environment|'''Module Environment''']].


{| class="wikitable"
{| class="wikitable"
Baris 108: Baris 103:
[[Berkas:Slurmm.png|al=|600x600px]]
[[Berkas:Slurmm.png|al=|600x600px]]


User menjalankan job komputasi melalui '''SLURM''', program manajemen (''scheduler'') untuk menjalankan komputasi user pada Compute Node sekaligus mengatur antrian job semua user.
User menjalankan job komputasi melalui '''SLURM''', program manajemen (''scheduler'') untuk menjalankan komputasi user pada Compute Node. Kegiatan ini disebut '''''job submission'''''.
{| class="wikitable"
 
|+Langkah menjalankan job komputasi dengan SLURM
=== Tutorial Spesifik per Software Komputasi ===
User dapat melihat tutorial menjalankan komputasi masing-masing software komputasi di laman [[Daftar Software Komputasi dan Tutorial Penggunaan|'''Daftar Software Komputasi dan Tutorial Penggunaan''']]:
 
[[Berkas:Wiki-15.jpg|1000x1000px |link=Daftar Software Komputasi dan Tutorial Penggunaan |alt=Daftar Software Komputasi dan Tutorial Penggunaan]]
 
=== Tutorial Umum ===
Berikut menjabarkan tutorial umum menjalankan komputasi melalui SLURM.
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Umum Menjalankan Komputasi via SLURM
|-
|-
|'''1'''
|'''1'''
|'''Siapkan file yang dibutuhkan untuk menjalankan komputasi user.'''
|Siapkan file yang dibutuhkan untuk menjalankan komputasi user.*[[Upload File dengan Aplikasi FTP|'''User dapat melakukan upload / download file dengan bantuan aplikasi FTP''']]
* [[Upload File dengan Aplikasi FTP|'''User dapat melakukan upload / download file dengan bantuan aplikasi FTP''']] seperti FileZilla, WinSCP, dan lainnya.
* Untuk kerapian data, disarankan untuk menaruh satu job pada satu folder tersendiri.
|-
|-
|'''2'''
|'''2'''
|
|Buat '''SLURM Submit Script''' yaitu 'formulir' untuk menjalankan job dengan panduan berikut:*Nama script dibebaskan dengan format file .sh (bash), contoh ''<code>my_job_submission.sh</code>''
=== SLURM Submit Script ===
*Buat script pada direktori yang sama dengan file komputasi yang akan dijalankan.
[[Berkas:Slurmsubmitscript.png|nir|jmpl|300x300px|Contoh SLURM Submit Script]]User membuat SLURM Submit Script yaitu script bash yang berisikan alokasi kebutuhan komputasi (CPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user.  
*Info membuat SLURM Submit Script lihat laman [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']]
 
[[Berkas:Slurmsubmitscript.png|nir|jmpl|''Contoh SLURM Submit Script'']]
* User bebas memberikan nama pada SLURM Submit Script (satu kata tanpa separator spasi).
* User menentukan sendiri alokasi komputasi untuk menjalankan job user.
$ vim '''<''nama-SLURM-Job-script''>.sh'''
''Contoh dengan nama "skripsi.sh":''
''$ vim '''skripsi.sh'''''
 
==== Tutorial Membuat dan Aturan SLURM Submit Script di ALELEON Supercomputer ====
Halaman berikut membahas cara membuat SLURM Submit Script beserta aturan untuk mengalokasikan kebutuhan komputasi di ALELEON Supercomputer:
 
[[Berkas:Wiki-14edit.jpg|al=SLURM Script ALELEON Supercomputer|1000x1000px |link=Submit Script ALELEON Supercomputer ]]
 
==== Contoh Template SLURM Submit Script ====
Halaman berikut merangkum daftar software komputasi di ALELEON Supercomputer beserta info tutorial dan contoh template SLURM Submit Script-nya.
 
[[Berkas:Wiki-15.jpg|1000x1000px |link=Daftar Software Komputasi dan Tutorial Penggunaan |alt=Daftar Software Komputasi dan Tutorial Penggunaan]]
|-
|-
|'''3'''
|'''3'''
|
|Jalankan job dengan perintah sbatch.
=== Melakukan Job Submission ===
$ '''sbatch''' '''''<nama-SLURM-Submit-script>'''''
Setelah menulis dan save script, jalankan job submission dengan perintah '''sbatch'''.
Contoh menjalankan nama script <code>my_job_submission.sh</code>.
'''$ sbatch <''nama-SLURM-Job-script''>.sh'''
  $ sbatch my_job_submission.sh
Contoh menjalankan script skripsi.sh diatas. Perhatikan bahwa user akan mendapatkan job ID.
  $ sbatch '''skripsi.sh'''
Submitted batch job 231
|-
|-
|'''4A'''
|'''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.
|User dapat melihat status jalannya job dengan perintah squeue berikut.
*Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu.
  $ '''squeue -ul $USER'''
  $ '''squeue -ul $USER'''
Apabila ingin melihat status semua job, jalankan perintah squeue -l.
Berikut adalah daftar STATE (ST) dari squeue yang menunjukkan status berjalannya job:
'''$ squeue -l'''
Info squeue lebih lengkap lihat subbab '''Memonitor Jalannya Job dengan squeue.'''
|-
|'''4B'''
|
=== Membatalkan Job Submission ===
Apabila user ingin membatalkan job, gunakan perintah scancel berdasarkan job ID.
 
* User hanya bisa membatalkan job submission milik user sendiri ''(kecuali user adalah cracker yang bisa menembus akses root ALELEON)''.
 
'''$ scancel <''job-ID-submission-user''>'''
Contoh user membatalkan job submission milik user dengan ID 231.
$ scancel '''231'''
|}
 
== '''4 | Memonitor Jalannya Job dengan squeue''' ==
Sesuai panduan di atas, user dapat memantau status jalannya job submission dengan perintah squeue. Info esensial untuk user adalah STATE dan NODELIST(REASON).
 
* '''STATE (ST)''' -> memberikan kondisi jalannya program user.
* '''NODELIST(REASON)'''
** NODELIST memberikan nama Compute Node tempat program berjalan.
** REASON memberikan kode alasan saat program user belum / tidak berjalan (PENDING).
 
{| class="wikitable"
{| class="wikitable"
|+Daftar STATE squeue SLURM
|+Daftar STATE squeue SLURM
Baris 187: Baris 147:
|PD
|PD
|PENDING
|PENDING
|Job tertahan, lihat keterangan NODELIST(REASON)
|Job tertahan, lihat keterangan NODELIST(REASON)''<sup>1</sup>''
|-
|-
|CG
|CG
Baris 199: Baris 159:
|PR
|PR
|PREEMPETED
|PREEMPETED
|Job dibatalkan oleh sys-admin Aleleon, alasan akan dikabarkan melalui email
|Job dibatalkan oleh admin EFISON, alasan dikabarkan melalui email
|-
|-
|S
|S
|SUSPENDED
|SUSPENDED
|Job ditahan oleh sys-admin Aleleon
|Job ditahan oleh admin EFISON
|}
|}'''''Keterangan:'''''
 
#Kunjungi laman [[Daftar Reason NODELIST ALELEON Supercomputer|'''Daftar Reason NODELIST ALELEON Supercomputer''']].
{| class="wikitable"
|+Daftar info REASON pada job PENDING yang telah dikonfirmasi terjadi
!NODELIST
!Penjelasan
|-
|-
|Resources
|'''4B'''
Priority
|Apabila user ingin membatalkan job yang sedang berjalan, gunakan perintah scancel berdasarkan job ID.
|Job menunggu tersedianya alokasi resources (CPU, RAM, GPU) yang dipesan oleh Submit script user
*Job ID dapat dilihat melalui perintah squeue pada kolom JOBID.
|-
*User hanya bisa membatalkan job submission milik user sendiri.
|AssocMaxWallDurationPerJobLimit
$ '''scancel <''job-ID-submission-user''>'''
|Job tidak dapat berjalan karena melewati batas walltime maksimum partisi.
Contoh user membatalkan job submission milik user dengan ID 231.
 
$ scancel 231
* User harus melakukan scancel job yang bersangkutan dan mengubah SBATCH time dibawah limit ALELEON.
|-
|QOSMaxCpuPerUserLimit
|Job melewati batas alokasi QOS CPU user.
 
* Job akan berjalan saat alokasi sesuai limit QOS sudah tersedia.
|-
|QOSMaxMemoryPerUserLimit
|Job melewati batas alokasi QOS memori RAM user.
 
* Job akan berjalan saat alokasi sesuai limit QOS sudah tersedia.
|-
|MaxCPUPerAccount
|Job melewati batas alokasi QOS akumulasi CPU semua user di satu grup Akun Institusi.
 
* Job akan berjalan saat alokasi sesuai limit QOS sudah tersedia.
|-
|MaxMemoryPerAccount
|Job melewati batas alokasi QOS akumulasi memori RAM semua user di satu grup Akun Institusi.  
 
* Job akan berjalan saat alokasi sesuai limit QOS sudah tersedia.
|}
|}
User dapat lapor ke admin EFISON apabila menjumpai NODELIST yang tidak terdapat pada daftar diatas ketika job user tidak berjalan.
== '''Support dan Laporan Kendala Penggunaan''' ==
 
== '''5 | Support dan Laporan Kendala Penggunaan''' ==
Apabila terdapat masalah teknis dalam menggunakan ALELEON Supercomputer, silahkan lapor dengan klik gambar berikut ini.
Apabila terdapat masalah teknis dalam menggunakan ALELEON Supercomputer, silahkan lapor dengan klik gambar berikut ini.


[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]
[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]

Revisi per 19 Oktober 2023 09.57

Halaman ini menjelaskan tutorial menggunakan ALELEON Supercomputer via terminal.

Standar Kompetensi dan Persetujuan Prefix

Tutorial ini mengasumsikan user dapat mengoperasikan terminal Linux. Tutorial ini menggunakan simbol $ untuk menandakan perintah terminal, sedangkan tanda bracket <> menandakan parameter input yang ditulis oleh user:

$ command <input-yang-ditulis-user>

1 | Login SSH

Sebelum login, user harus terhubung ke VPN ALELEON Supercomputer.

  • SIlahkan gunakan software shell sesuai preferensi masing-masing user untuk login SSH.
Kredensial Login Node Utama
Username dan password Diberikan oleh admin ALELEON
Host untuk user Windows / MacOS aleleon.hpc
Host untuk user Linux 10.192.50.10
Nomor port 22 (default)
Contoh login via terminal:
  • User OS Windows & MacOS -> $ ssh <username>@aleleon.hpc
  • User OS Linux -> $ ssh <username>@10.192.50.10
Keterangan:
  • Dapat melakukan compiling dengan lib. NVIDIA CUDA 12

ALELEON Supercomputer mendukung SSH X11 untuk menampilkan window GUI:

Dari OS Metode
Windows EFISON merekomendasikan software MobaXTerm Home Edition
MacOS $ ssh -Y <username>@<hostname>
Linux $ ssh -X <username>@<hostname>

Terdapat login node khusus dengan spesifikasi besar bagi user yang ingin melakukan compiling file skala besar (klik expand atau kembangkan):

Kredensial Login Node Besar
Username dan password Diberikan oleh admin ALELEON
Host untuk user Windows / MacOS aleleon3.hpc
Host untuk user Linux 10.192.50.13
Nomor port 22 (default)
Note khusus:
  • Mempunyai spesifikasi CPU 12 core dan RAM 128GB.
  • Dapat melakukan compiling dengan lib. NVIDIA CUDA 12

Apabila tidak dapat login ke Login Node Utama, gunakan Login Node Backup (klik expand atau kembangkan):

Kredensial Login Node Backup
Username dan password Diberikan oleh admin ALELEON
Host untuk user Windows / MacOS aleleon2.hpc
Host untuk user Linux 10.192.50.12
Nomor port 22 (default)
Note khusus:
  • Mempunyai spesifikasi terbatas (CPU AMD EPYC 4 core dan RAM 16GB).
  • Tidak mempunyai GPU.

2 | Selamat Datang di Login Node

Login SSH membawa user masuk ke Login Node. Pada Login Node, user dapat melakukan:

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

3 | Menjalankan Komputasi ke Compute Node via SLURM

User menjalankan job komputasi melalui SLURM, program manajemen (scheduler) untuk menjalankan komputasi user pada Compute Node. Kegiatan ini disebut job submission.

Tutorial Spesifik per Software Komputasi

User dapat melihat tutorial menjalankan komputasi masing-masing software komputasi di laman Daftar Software Komputasi dan Tutorial Penggunaan:

Daftar Software Komputasi dan Tutorial Penggunaan

Tutorial Umum

Berikut menjabarkan tutorial umum menjalankan komputasi melalui SLURM.

Langkah Umum Menjalankan Komputasi via SLURM
1 Siapkan file yang dibutuhkan untuk menjalankan komputasi user.*User dapat melakukan upload / download file dengan bantuan aplikasi FTP
2 Buat SLURM Submit Script yaitu 'formulir' untuk menjalankan job dengan panduan berikut:*Nama script dibebaskan dengan format file .sh (bash), contoh my_job_submission.sh
Contoh SLURM Submit Script
3 Jalankan job dengan perintah sbatch.
$ sbatch <nama-SLURM-Submit-script>

Contoh menjalankan nama script my_job_submission.sh.

$ sbatch my_job_submission.sh
4A User dapat melihat status jalannya job dengan perintah squeue berikut.
  • Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu.
$ squeue -ul $USER

Berikut adalah daftar STATE (ST) dari squeue yang menunjukkan status berjalannya job:

Daftar STATE squeue SLURM
STATE Kepanjangan Penjelasan
R RUN Job berjalan
PD PENDING Job tertahan, lihat keterangan NODELIST(REASON)1
CG COMPLETING Job selesai dan dalam proses clean-up SLURM
CA CANCELED Job dibatalkan oleh user
PR PREEMPETED Job dibatalkan oleh admin EFISON, alasan dikabarkan melalui email
S SUSPENDED Job ditahan oleh admin EFISON
Keterangan:
  1. Kunjungi laman Daftar Reason NODELIST ALELEON Supercomputer.
4B Apabila user ingin membatalkan job yang sedang berjalan, gunakan perintah scancel berdasarkan job ID.
  • Job ID dapat dilihat melalui perintah squeue pada kolom JOBID.
  • User hanya bisa membatalkan job submission milik user sendiri.
$ scancel <job-ID-submission-user>

Contoh user membatalkan job submission milik user dengan ID 231.

$ scancel 231

Support dan Laporan Kendala Penggunaan

Apabila terdapat masalah teknis dalam menggunakan ALELEON Supercomputer, silahkan lapor dengan klik gambar berikut ini.

Wiki-pelaporankendala.jpg