Komputasi Python dengan Conda Environment: Perbedaan antara revisi

Dari ALELEON by EFISON
 
(116 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 1: Baris 1:
Halaman ini menjelaskan menjalankan komputasi Python dengan environment Anaconda di ALELEON Supercomputer.


[[Berkas:Pythonanaconda.png|500x500px]]
[[Berkas:Logo Python Anaconda Mamba ALELEON tp.png|400x400px]]


== '''Langkah Menjalankan Komputasi''' ==
Halaman ini menjelaskan menjalankan komputasi / aplikasi Python dengan '''conda environment''' di ALELEON Supercomputer.
Terdapat dua langkah utama:
{| class="wikitable"
!''Laman ini merupakan bagian laman'' [<nowiki/>[[Komputasi Python]]]
|}


# Membuat dan menyiapkan conda environment untuk komputasi user.
== '''''Langkah Menjalankan Komputasi''''' ==
# Memilih metode menjalankan komputasi.
Terdapat tiga langkah utama:


== '''Membuat Conda Environment''' ==
# Buat conda environment untuk menampung instalasi package.
Kegiatan ini dilakukan pada '''terminal''':
# Instal package Python yang diperlukan di conda env tersebut.
# Menggunakan conda env tersebut untuk menjalankan komputasi.


* Diakses melalui [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''login SSH'''], atau
=== Spesifikasi ===
* Pada web EFIRO, buka menu '''Clusters -> Aleleon Shell Access'''
Tutorial ini memandu membuat conda environment dengan '''site-packages terisolasi di dalamnya'''.
{| class="wikitable"
! colspan="2" |Keterangan simbol perintah terminal
|-
|<code>'''<big>$</big>'''</code>
|Perintah ketika conda env tidak aktif
|-
|'''<code><big><sub>(env)</sub>$</big></code>'''  
|Perintah ketika conda env aktif
|}
 
== '''''Membuat Conda Environment''''' ==
ALELEON Supercomputer menyediakan pilihan Python Package Manager (PPM) berikut untuk membuat conda environment. Pilih sesuai preferensi user:


* '''Anaconda:''' PPM Python paling banyak digunakan dimana saat ini menjadi standar industri.
* '''Mamba:''' PPM Python alternatif Anaconda versi ''open-source'' yang dikembangkan komunitas.
''<small><code>(klik expand / kembangkan)</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Membuat Conda Environment
!- Membuat conda env dengan Anaconda -
[[Berkas:Anaconda transparent logo.png|nirbing|90x90px]]
|-
|[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''''Menggunakan terminal!'''''
* ''User EFIRO klik app '''<code>Aleleon Shell Access</code>'''''
* ''atau menu '''<code>Apps > Aleleon Shell Access</code>'''''
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
|-
| rowspan="2" |'''1'''
|Pilih dan aktifkan modul Anaconda untuk membuat conda env:
|Pilih dan aktifkan modul Anaconda yang akan digunakan.
 
<code>$ '''module load ''[nama-modul-anaconda]'''''</code>
* ''Ingat atau catat modul Anaconda yang dipakai.''
* ''Kedepannya digunakan untuk mengaktifkan conda env ini.''
 
$ '''module load ''[nama-modul-anaconda]'''''
{| class="wikitable"
|+Daftar nama modul Anaconda 3
!Versi
!Nama Modul
!Versi Py default
|-
|-
|
|2024-02-1
|<code>'''Anaconda3/2024.02-1'''</code>
|''3.11.7''
|-
|2023.07-2
|<code>'''Anaconda3/2023.07-2'''</code>
|''3.11.4''
|-
|2022.05
| <code>'''Anaconda3/2022.05'''</code>
|''3.9.12''
|-
|2021.05
|<code>'''Anaconda3/2021.05'''</code>
|''3.8.8''
|-
|2020.11
|<code>'''Anaconda3/2020.11'''</code>
|''3.8.5''
|}
|-
!<big><nowiki>---| 2 |---</nowiki></big>
|-
|[[Berkas:GMB warning wololo.png|nirbing|50x50px]] ''Package apa yang akan diinstal user di conda env ini?''
* Beberapa package membutuhkan Python versi spesifik
 
* Gunakan opsi '''<big>3B</big>''' untuk membuat conda env.
''<small>Update 29 April 2025</small>''
{| class="wikitable"
{| class="wikitable"
! colspan="2" |Daftar nama modul Anaconda
|+Package yang diketahui butuh Python versi spesifik
!Package
!Versi Python
|-
|TensorFlow
|Lihat '''[[https://www.tensorflow.org/install/source#tested_build_configurations TensorFlow Tested Build Configurations]]'''
|-
|PyTorch
|3.9 - 3.12
|-
|AutoGluon
|3.9 - 3.12
|}
|-
! <big><nowiki>---| 3 |---</nowiki></big>
|-
!Buat conda env dengan opsi:
|-
|'''<big>3A</big> -''' Conda env kosong dengan Python 3 versi terbaru '''(3.13)''':
$ '''conda create -n ''[nama-conda-env]'' pip'''
<small>''Contoh dengan nama 'skripsi'''</small>
<small>$ conda create -n '''skripsi''' pip</small>
|-
!
|-
|'''<big>3B</big> -''' Conda env kosong dengan Python versi tertentu:
$ '''conda create -n ''[nama-conda-env]'' python=''[versi]'''''
<small>''Contoh dengan Python 3.10''</small>
<small>$ conda create -n '''skripsi python=3.10'''</small>
|-
!Saran
|-
|Pilih nama conda env yang mengandung unsur nama modul:
 
* ''Untuk mengingat modul yang digunakan membuat conda env.''
* ''Contoh user memilih modul Anaconda3/2024-02-1''
* ''Gunakan nama conda env seperti <code>'''A2024-skripsi'''</code>''
|-
!---
|}
 
{| class="wikitable mw-collapsible mw-collapsed"
!- Membuat conda env dengan Mamba -
[[Berkas:Mamba transparent logo.png|nirbing|90x90px]]
|-
|[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''''Menggunakan terminal!'''''
* ''User EFIRO klik app '''<code>Aleleon Shell Access</code>'''''
* ''atau menu '''<code>Apps > Aleleon Shell Access</code>'''''
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
|-
!Nama Modul
|Pilih dan aktifkan modul Mamba untuk membuat conda env:
 
* ''Ingat atau catat modul Mamba yang dipakai.''
* ''Kedepannya digunakan untuk mengaktifkan conda env ini.''
 
$ '''module load ''[nama-modul-mamba]'''''
{| class="wikitable"
|+Daftar nama modul Mamba
!Versi
!Versi
! Nama Modul
!Versi Py default
|-
|-
|Anaconda3/2023.07-2
|23.11.0-0
|Anaconda 3 2023.07-2
|<code>'''Mamba/23.11.0-0'''</code>
|''3.10.13''
|}
|-
|-
|Anaconda3/2022.05
!<big><nowiki>---| 2 |---</nowiki></big>
|Anaconda 3 2022.05
|-
|-
|Anaconda3/2021.05
|[[Berkas:GMB warning wololo.png|nirbing|50x50px]] ''Package apa yang akan diinstal user di conda env ini?''
|Anaconda 3 2021.05
* Beberapa package membutuhkan Python versi spesifik
 
* Gunakan opsi '''<big>3B</big>''' untuk membuat conda env.
''<small>Update 29 April 2025</small>''
{| class="wikitable"
|+Package yang diketahui butuh Python versi spesifik
!Package
!Versi Python
|-
|TensorFlow
|Lihat '''[[https://www.tensorflow.org/install/source#tested_build_configurations TensorFlow Tested Build Configurations]]'''
|-
|-
|Anaconda3/2020.11
|PyTorch
|Anaconda 3 2020.11
|3.9 - 3.12
|-
|AutoGluon
|3.9 - 3.12
|}
|}
|-
|-
|'''2'''
! <big><nowiki>---| 3 |---</nowiki></big>
|Buat conda env di direktori HOME dan aktifkan dengan perintah:
|-
  $ '''conda create --name ''[nama-conda-env]'' pip'''
!Buat conda env dengan opsi:
|-
|'''<big>3A</big> -''' Conda env kosong dengan Python 3 versi terbaru '''(3.13)''':
  $ '''mamba create -n ''[nama-conda-env]'' pip'''
   
   
  ''Contoh nama 'skripsi'''
  <small>''Contoh dengan nama 'skripsi'''</small>
  $ conda create --name '''skripsi''' pip
  <small>$ mamba create -n '''skripsi''' pip</small>
|-
!
|-
|'''<big>3B</big> -''' Conda env kosong dengan Python versi tertentu:
$ '''mamba create -n ''[nama-conda-env]'' python=''[versi]'''''
<small>''Contoh dengan Python 3.10''</small>
<small>$ mamba create -n '''skripsi python=3.10'''</small>
|-
!Saran
|-
|Pilih nama conda env yang mengandung unsur nama modul:


* ''Untuk mengingat modul yang digunakan membuat conda env.''
* ''Contoh user memilih modul Mamba/23.11.0-0''
* ''Gunakan nama conda env seperti <code>'''M23-skripsi'''</code>''
|-
!---
|}
|}
{| class="wikitable mw-collapsible mw-collapsed"
== '''''Mengaktifkan Conda Env dan Instalasi Package''''' ==
! colspan="2" |Mengaktifkan Conda Environment dan Instalasi Package
[[Berkas:GMB warning wololo.png|nirbing|50x50px]] Ada baiknya user melengkapi instalasi package '''sebelum menjalankan komputasi''' karena:
 
# Batch job -> supaya script Python berjalan tanpa error ''missing package''.
# Sesi Jupyter -> untuk efisiensi penggunaan karena terkadang ada package yang membutuhkan waktu lama untuk instalasi.
 
Instalasi ini berjalan di login node sehingga '''tidak mengkonsumsi Core Hour.'''
{| class="wikitable"
!Mengaktifkan Conda Environment
|-
|[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''''Menggunakan terminal!'''''
* ''User EFIRO klik app '''<code>Aleleon Shell Access</code>'''''
* ''atau menu '''<code>Apps > Aleleon Shell Access</code>'''''
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
|Muat modul PPM yang digunakan untuk membuat conda env:
$ '''module load ''[Anaconda-atau-Mamba ....]'''''
|-
|-
|'''''0'''''
!<big><nowiki>---| 2 |---</nowiki></big>
|''Aktifkan modul Anaconda yang digunakan untuk membuat conda env user.''
|-
|-
| rowspan="2" |'''1'''
|Aktifkan conda env dengan perintah '''<big><code>source</code></big>''':
|Aktifkan conda env dengan perintah:  
  $ '''source activate ''[nama-conda-env]'''''
  $ '''source activate ''[nama-conda-env]'''''
Apabila lupa dengan nama conda env, cari dengan:
  ''Contoh mengaktifkan conda env 'skripsi'''
  $ '''conda env list'''
$ source activate '''skripsi'''
|-
!<big><nowiki>---| 3A |---</nowiki></big>
|-
!Pilih panduan instalasi package yang dibutuhkan
|-
|Lihat laman '''<big>[<nowiki/>[[Daftar Instalasi Package Python|Dafta]]</big><nowiki/><big>[[Daftar Instalasi Package Python|r Instalasi Package Python]]]</big>'''
* ''<small>Halaman terpisah karena daftar terlalu panjang</small> ._.''  
|-
!<big><nowiki>---| 3B |---</nowiki></big>
|-
!Untuk user yang hendak menggunakan sesi Jupyter
[[Berkas:EOD Apps Jupyter full.png|nirbing|116x116px]]
|-
|-
|User dapat melihat daftar conda env yang dibuat sebelumnya dengan:
|Instal package:
<code>$ '''conda env list'''</code>
<sub>(env)</sub>$ '''pip install jupyter jupyterlab'''
|-
|-
|'''2'''
!<big><nowiki>---| 4 |---</nowiki></big>
|Lakukan instalasi package Python yang dibutuhkan dengan '''<code>pip</code>'''
* Contoh [https://pytorch.org/get-started/locally/ instalasi PyTorch dengan pip].
* Contoh [https://www.tensorflow.org/install/pip instalasi TensorFlow dengan pip].
|-
|-
|'''3'''
|Apabila hendak menonaktfkan conda env:
|Untuk menonaktifkan conda env jalankan perintah:
<sub>(env)</sub>$ '''conda deactivate'''
<code>$ '''conda deactivate'''</code>
|}
|}
{| class="wikitable mw-collapsible mw-collapsed"
 
! colspan="2" |Manajemen Conda Environment
== '''''Pilihan Menjalankan Komputasi''''' ==
Berikut opsi menjalankan komputasi Python dengan conda env, pilih sesuai kebutuhan:
{| class="wikitable"
!Jenis Komputasi
!Berjalan di
|-
|-
|'''1'''
|'''<big>[[https://wiki.efisonlt.com/wiki/Komputasi_Python_dengan_Conda_Environment#Batch_Job Batch job]]</big>'''
|Deactivate conda env untuk melakukan manajemen dibawah ini.
* '''Menjalankan script Python siap jalan yang tidak membutuhkan interaksi user.'''
** [[Berkas:GMB warning wololo.png|nirbing|50x50px]]Perhatikan '''file <code>.ipynb</code>''' harus dikonversi ke '''file <code>.py</code>'''.
** ''Job dijalankan oleh Slurm, user menunggu hingga selesai.''
*'''Batch job akan berhenti ketika:'''
**''Program komputasi selesai berjalan.''
**''Program komputasi menyentuh limit waktu yang ditentukan user.''
**''Program menjumpai error sehingga selesai prematur.''
*'''Koneksi user tidak mempengaruhi jalannya batch job:'''
**''Job tidak akan berhenti ketika koneksi user terputus, atau''
**''user keluar (log out) dari ALELEON.''
 
|'''[<nowiki/>[[Spesifikasi ALELEON Supercomputer#Spesifikasi%20Compute%20Node|Compute node]]]:'''
* Partisi epyc [[Berkas:GMB CPU icon.png|nirbing|50x50px]]
* Partisi ampere [[Berkas:GMB GPU icon.png|nirbing|70x70px]]
|-
|-
| rowspan="2" |'''2'''
! colspan="2" |
|Untuk mengubah nama conda env:
$ '''conda rename -n ''[nama-saat-ini]'' ''[nama-baru]'''''
''Contoh mengubah nama env skripsi ke tesis''
$ conda rename -n skripsi tesis
|-
|-
|Untuk menghapus conda env:  
|'''<big>[[https://wiki.efisonlt.com/wiki/Komputasi_Python_dengan_Conda_Environment#Sesi_Jupyter Sesi Jupyter]]</big>'''  
<code>$ '''conda remove -n ''<nama-conda-env>'' --all'''</code>
* '''Menjalankan sesi interaktif Jupyter Lab atau Notebook.'''
* '''Sesi Jupyter akan berhenti ketika:'''
**''Waktu sesi habis.''
**''Sesi dihentikan secara manual oleh user.''
**''Sesi menjumpai error sehingga selesai prematur.''
* '''Koneksi user tidak mempengaruhi jalannya sesi Jupyter, contoh:'''
**''Sesi tidak akan berhenti ketika koneksi user terputus, atau''
**''user keluar (log out) dari ALELEON.''
*'''Ketika user keluar dari sesi Jupyter saat ada cell berjalan dan kembali masuk:'''
**''Bisa jadi cell tersebut tidak menampilkan proses jalannya komputasi.''
**''Lihat cell berikutnya apakah belum / sedang / sudah selesai berjalan.''
 
|'''[<nowiki/>[[Spesifikasi ALELEON Supercomputer#Spesifikasi%20Interactive%20Node|interactive node]]]:'''
* Partisi torti [[Berkas:GMB CPU icon.png|nirbing|50x50px]]
* Partisi tilla [[Berkas:GMB GPU icon.png|nirbing|70x70px]]
|}
|}
---


== '''Metode Menjalankan Komputasi''' ==
=== '''Menjalankan Package Python versi GPU?''' ===
User dapat memilih metode menjalankan komputasi sesuai keinginan:  
Perhatikan hal berikut apabila user menginstal '''package Python versi CUDA''' dan hendak menggunakan '''compute / interactive node GPU''':


* Job submission di terminal
# Package membutuhkan jenis dan versi library NVIDIA sesuai seperti '''CUDA, cuDNN''' untuk dapat berjalan di GPU NVIDIA.
* Job submission di web EFIRO
# '''''Umumnya (walau tidak semua)''''' package Python CUDA saat ini juga menginstal package NVIDIA yang dibutuhkan.
* Interactive job Jupyter Lab / Notebook
# Berikut metode mengecek dan melengkapi library NVIDIA yang dibutuhkan package:


=== Job Submission Terminal ===
{| class="wikitable"
'''Ketentuan:'''  
!Mengecek Kelengkapan Package NVIDIA
|-
|[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''''Menggunakan terminal!'''''
* ''User EFIRO klik app '''<code>Aleleon Shell Access</code>'''''
* ''atau menu '''<code>Apps > Aleleon Shell Access</code>'''''
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
|'''[[https://wiki.efisonlt.com/wiki/Komputasi_Python_dengan_Conda_Environment#Mengaktifkan_Conda_Env_dan_Instalasi_Package Aktifkan conda env]]''' yang akan digunakan.
|-
!<big><nowiki>---| 2 |---</nowiki></big>
|-
|Cek ketersediaan library CUDA di conda env tersebut:
- Apabila instal package dengan pip
<sub>(env)</sub>$ '''pip list | grep cuda'''
- Apabila instal package dengan conda
<sub>(env)</sub>$ '''conda list | grep cuda'''
|-
!<big><nowiki>---| 3A |---</nowiki></big>
|-
!''Apabila ada output:''
|-
|Conda env siap digunakan.


# Menjalankan file Python di terminal dengan scheduler SLURM.
* User '''tidak perlu memuat modul CUDA.'''
#* File ipynb harus dikonversi ke file Python.
|-
# Berjalan di Compute Node.
!<big><nowiki>---| 3B |---</nowiki></big>
# Tutorial ini mengasumsikan user familiar dengan terminal Linux.
|-
![[Berkas:GMB warning wololo.png|nirbing|50x50px]] ''Apabila tidak ada output:''
|-
|User '''harus memuat modul CUDA''' dengan ketentuan:
# Perhatikan versi CUDA '''yang dibutuhkan package'''.
# Lihat dokumentasi package tersebut.
''<small><code>(klik expand / kembangkan)</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Job Submission Terminal
! colspan="2" |- Tutorial memuat dan daftar modul CUDA -
[[Berkas:Sbatch Terminal.png|tepi|400x400px]]
[[Berkas:Logo CUDA ALELEON tp.png|nirbing|150x150px]]
|-
! colspan="2" |'''<big>Opsi Batch Job</big>'''
|-
|-
|'''1'''
| colspan="2" |Tambah perintah berikut pada submit script:
|Lakukan [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''] ke ALELEON Supercomputer.
...
# Memuat modul
module load ${PM}
'''module load ''[Nama-modul-CUDA]'''''
...
|-
|-
|'''2'''
! colspan="2" |'''<big>Opsi Sesi Jupyter</big>'''
|Siapkan conda env dan file komputasi yang dibutuhkan.
|-
| colspan="2" |Isi nama modul pada kolom '''Software Modules'''
|-
! colspan="2" |
|-
! colspan="2" |DAFTAR MODUL CUDA ALELEON
|-
!Versi CUDA
!Nama modul CUDA
|-
|11.2
|<code>cuda/11.2-cuDNN8.1.1</code>
|-
|11.6
|<code>cuda/11.6-cuDNN8.3.3</code>
|-
|11.8
|<code>cuda/11.8-cuDNN8.6.0</code>
|-
|12.0
|<code>cuda/12.0-cuDNN8.7.0</code>
|-
|12.1
|<code>cuda/12.1-cuDNN8.8.1</code>
|-
|12.3
|<code>cuda/12.3-cuDNN8.9.6</code>
|-
|12.4
|<code>cuda/12.4-cuDNN9.2.1</code>
|-
|12.5
|<code>cuda/12.5-cuDNN9.2.1</code>
|-
| colspan="2" |Permintaan instalasi CUDA versi lain:


* User dapat upload / download file dengan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
* Hubungi tim admin di '''''support@efisonlt.com'''''
|-
|-
| rowspan="3" |'''3'''
! colspan="2" |---
|Buat '''Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi.
|}
|-
!---
|}
---


* Nama file bebas dengan format .sh, contoh '''<code>submit.sh</code>'''
=== Batch Job ===
menjalankan script Python siap jalan yang tidak membutuhkan interaksi user melalui manajemen Slurm di '''[<nowiki/>[[Spesifikasi ALELEON Supercomputer#Spesifikasi%20Compute%20Node|compute node]]].'''
*[[Berkas:GMB warning wololo.png|nirbing|50x50px]]Perhatikan '''file <code>.ipynb</code>''' harus dikonversi ke '''file <code>.py</code>'''.
*Tersedia dua pilihan tampilan yaitu terminal dan web EFIRO. Pilih sesuai keinginan.
''<small><code>(klik expand / kembangkan)</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
!- Langkah Batch Job di Terminal -
[[Berkas:Sbatch terminal display rev2.png|tepi|400x400px]]
|-
!''Tutorial ini mengasumsikan user familiar dengan terminal Linux''
|-
|[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''''Menggunakan terminal!'''''
* ''User EFIRO klik app '''<code>Aleleon Shell Access</code>'''''
* ''atau menu '''<code>Apps > Aleleon Shell Access</code>''''' 
|-
!<big><nowiki>---| 0 |---</nowiki></big>
|-
!Apakah bisa menjalankan job?
|-
|User dengan '''Kredit Core Hour''' disarankan cek kuota terlebih dulu:
$ '''sausage'''
 
* '''''Untuk akun institusi ikuti petunjuk support EFISON.'''''
* Detail limit alokasi komputasi job lihat langkah '''<big>2B</big>'''.
* Bila butuh tambah kuota, lihat '''[[https://wiki.efisonlt.com/wiki/Core_Hour#Penggunaan_Kredit_Core_Hour top up Kredit Core Hour]].'''
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
!Lakukan persiapan:
|-
|'''Pastikan package lengkap pada conda env yang akan digunakan:'''
* Package tidak lengkap akan menyebabkan job gagal berjalan.
'''Siapkan file komputasi yang dibutuhkan:'''
* Upload / download file lihat '''[[https://wiki.efisonlt.com/wiki/Manajemen_File_di_ALELEON_Supercomputer#Upload_dan_Download_File Upload / Dow][https://wiki.efisonlt.com/wiki/Manajemen_File_di_ALELEON_Supercomputer#Upload_dan_Download_File nload File HOME]]'''
'''[[Berkas:GMB warning wololo.png|nirbing|50x50px]] Untuk mencegah batch job mengacu site-packages yang salah:'''
1 - ''Apabila'' conda env aktif, keluar:
<small>(env)</small>$ '''conda deactivate'''
 
2 - Menonaktifkan modul Package Python:
$ '''ml unload Anaconda Mamba'''
<small>Apabila ada pesan ini, abaikan:
'''''the module ... cannot be unloaded because it was not loaded'''''</small>
|-
|-
|Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
!<big><nowiki>---| 2A |---</nowiki></big>
|-
|Buat '''Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi:
*Nama file bebas dengan format .sh, contoh '''<code>submit.sh</code>'''
*''Biasanya submit script berada satu folder dengan file komputasi.''
$ '''nano submit.sh'''
''<small>atau vim</small>''
|-
!
|-
|Contoh template Submit Script:
*Ikuti petunjuk '''NOTES dan alur script''' di dalamnya.
''<small><code>Klik expand / kembangkan</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Anaconda Python di CPU
!- Template submit script Conda Environment versi CPU -
[[Berkas:GMB CPU icon.png|nirbing|80x80px]]
|-
|-
|<syntaxhighlight lang="bash">
|<syntaxhighlight lang="bash" line="1">
#!/bin/bash
#!/bin/bash


# -----------------------------------------------------
# -----------------------------------------------------
# Template SLURM Submit Script
# Template SLURM Submit Script
# Anaconda Python (CPU)
# Python dengan Conda Environment (CPU) | rev.210125
#  
#
# NOTES:  
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat Conda Environment.
# 3. Pastikan user sudah melengkapi conda environment.
# -----------------------------------------------------
# -----------------------------------------------------


Baris 158: Baris 487:
#SBATCH --output=result-%j.txt
#SBATCH --output=result-%j.txt


# Definisi file untuk menampung output error log  
# Definisi file untuk menampung output error log
#SBATCH --error=error-%j.txt  
#SBATCH --error=error-%j.txt


# Nama Conda Environment yang digunakan
# Input nama modul package manager yang digunakan untuk membuat
CONDA_NAME=////
# conda env user. Daftar nama:
# Anaconda3/2020.11  || Anaconda3/2021.05  || Anaconda3/2022.05 ||
# Anaconda3/2023.07-2 || Anaconda3/2024.02-1 || Mamba/23.11.0-0  ||
PM="////"


# Nama program Python yang dijalankan
# Nama conda environment yang digunakan
INPUT_FILE=////.py
CONDA_NAME="////"


# ----------------------------------------------------
# ----------------------------------------------------
Baris 171: Baris 503:
# ----------------------------------------------------
# ----------------------------------------------------


# Mengaktifkan Conda Environment  
# Memuat modul
module load Anaconda3
module load ${PM}
source activate ${CONDA}/${CONDA_NAME}
 
# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}


# Menjalankan file Python
# Tuliskan perintah menjalankan komputasi Python user
python3 ${INPUT_FILE}
# contoh -> python3 [nama-file-python]
////
</syntaxhighlight>
</syntaxhighlight>
|}
|}
|-
|
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Anaconda Python di GPU
!- Template submit script conda environment versi GPU -
[[Berkas:GMB GPU icon.png|nirbing|100x100px]]
|-
|-
|<syntaxhighlight lang="bash">
|[[Berkas:GMB warning wololo.png|nirbing|50x50px]]'''Note:'''
* Perhatikan apakah perlu memuat modul CUDA?
* Info detail lihat '''[[https://wiki.efisonlt.com/wiki/Komputasi_Python_dengan_Conda_Environment#Menjalankan_Package_Python_versi_GPU? Menjalankan Package Python Versi GPU?]]'''
** '''''Apabila butuh''''', isi nama modul CUDA sebagai berikut:
...
module load ${PM}
'''''module load [Nama-modul-CUDA]'''''
...
|-
|<syntaxhighlight lang="bash" line="1">
#!/bin/bash
#!/bin/bash


# -----------------------------------------------------
# -----------------------------------------------------
# Template SLURM Submit Script
# Template SLURM Submit Script
# Anaconda Python (GPU)
# Python dengan Conda Environment (GPU) | rev.210125
#  
#
# NOTES:  
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat Conda Environment.
# 3. Pastikan user sudah melengkapi conda environment.
# -----------------------------------------------------
# -----------------------------------------------------


Baris 200: Baris 547:
# -----------------------------------------------------
# -----------------------------------------------------


# Menggunakan partisi compute node GPU
# Partisi compute node GPU
#SBATCH --partition=ampere
#SBATCH --partition=ampere


Baris 212: Baris 559:
#SBATCH --mem=////GB
#SBATCH --mem=////GB


# Alokasi limit waktu menjalankan job  
# Alokasi limit waktu menjalankan job
# Format HH:MM:SS atau D-HH:MM:SS
# Format HH:MM:SS atau D-HH:MM:SS
#SBATCH --time=////
#SBATCH --time=////
Baris 219: Baris 566:
#SBATCH --output=result-%j.txt
#SBATCH --output=result-%j.txt


# Definisi file untuk menampung output error log  
# Definisi file untuk menampung output error log
#SBATCH --error=error-%j.txt  
#SBATCH --error=error-%j.txt


# Nama Conda Environment yang digunakan
# Input nama modul package manager yang digunakan untuk membuat
CONDA_NAME=////
# conda env user. Daftar nama:
# Anaconda3/2020.11  || Anaconda3/2021.05  || Anaconda3/2022.05 ||
# Anaconda3/2023.07-2 || Anaconda3/2024.02-1 || Mamba/23.11.0-0  ||
PM="////"


# Nama program Python yang dijalankan
# Nama conda environment yang digunakan
INPUT_FILE=////.py
CONDA_NAME="////"


# ----------------------------------------------------
# ----------------------------------------------------
Baris 232: Baris 582:
# ----------------------------------------------------
# ----------------------------------------------------


# Memuat modul NVIDIA CUDA default
# Memuat modul
module load cuda
module load ${PM}


# Mengaktifkan Conda Environment  
# Mengaktifkan Conda Environment
module load Anaconda3
source activate ${CONDA_NAME}
source activate ${CONDA}/${CONDA_NAME}


# Menjalankan file Python
# Tuliskan perintah menjalankan komputasi Python user
python3 ${INPUT_FILE}
# contoh -> python3 [nama-file-python]
////
</syntaxhighlight>
</syntaxhighlight>
|}
|}
Info script lebih detail lihat [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']].
|-
|-
|<nowiki>---</nowiki>
!
{| class="wikitable mw-collapsible mw-collapsed"
!Panduan nilai maksimal alokasi komputasi SBATCH
|-
|-
|Pada akun perseorangan, SLURM akan menahan job apabila:
|
 
*''Detail Submit Script lihat '''[<nowiki/>[[Submit Script ALELEON Supercomputer|Subm]]<small><nowiki/></small>[[Submit Script ALELEON Supercomputer|it Script ALELEON Supercomputer]]]'''''
* ntasks * time (jam) lebih besar dari sisa CPU Core Hour user
* gpus * time (jam) lebih besar dari sisa GPU Hour user


Cek sisa Core Hour dengan perintah '''<code>sausage</code>''' di terminal.
*''Untuk SBATCH notifikasi email status jalannya job lihat '''[[https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer#SBATCH_untuk_notifikasi_email_SLURM Slurm Jojo]]'''''
|-
|'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan:'''
{| class="wikitable"
!ntasks
!mem
!gpus
!time
|-
|-
|128
!<big><nowiki>---| 2B |---</nowiki></big>
|128GB
|2
|72:00:00
|}
User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini'''].
|-
|-
|'''Versi CPU dan GPU:'''
|SBATCH komputasi (ntasks, mem, time, dll) '''punya limit''' berdasarkan:
{| class="wikitable"
*Sisa Core Hour user dan '''[<nowiki/>[[Limitasi Fair Usage ALELEON Supercomputer|Fair Usage Limit]]]'''
!Jenis komputasi
*Spesifikasi sistem dan software komputasi.
!ntasks
Untuk melihat limit, jalankan perintah berikut:
!mem
$ '''slimit-python'''
!gpus
[[Berkas:GMB warning wololo.png|nirbing|50x50px]] '''Note untuk saat ini:'''
!time
*''Jalankan ketika tidak ada job user yang berjalan atau antri.''
*''Sementara berlaku untuk akun perseorangan saja.''
|-
|-
|CPU normal
!<big><nowiki>---| 3 |---</nowiki></big>
| rowspan="2" |128
|240GB
| rowspan="2" | -
| rowspan="3" |72:00:00
|-
|CPU high-mem*
|500GB
|-
|GPU
|32
|120GB
|2
|}
<nowiki>*</nowiki>Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
|-
|'''Versi MPI (dengan MPI4PY):'''
{| class="wikitable"
!ntasks
!mem
!gpus
!time
|-
|384
|240GB
| -
|72:00:00
|}
Ketika ntasks lebih dari 128:
 
* SLURM otomatis menjalankan job pada multi-node.
* Mem mengalokasikan memori RAM per-node.
* Info detail buka laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']].
|}
---
|-
|-
|'''4'''
|Jalankan job dengan perintah:
|Jalankan job komputasi dengan perintah:  
  $ '''sbatch ''[nama-submit-script]'''''
  $ '''sbatch ''[nama-submit-script]'''''
   
   
Baris 321: Baris 620:
  $ sbatch submit.sh
  $ sbatch submit.sh
|-
|-
|'''5'''
!<big><nowiki>---| 4 |---</nowiki></big>
|User dapat melihat status jalannya job dengan perintah:  
|-
'''<code>$ squeue -ul $USER</code>'''
|User dapat melihat status jalannya job dengan perintah:
{| class="wikitable mw-collapsible mw-collapsed"
$ '''squeue -ul $USER'''
! colspan="2" |Daftar ST (STATE) yang menunjukkan status jalannya job:
 
* ''Apabila tidak ada di squeue artinya job bersangkutan telah berakhir.''
* ''Job berakhir ketika:''
** ''Komputasi selesai atau ada error sehingga selesai prematur.''
** ''Job menyentuh walltime yang didefinisikan user di SBATCH time.''
 
{| class="wikitable"
|+Kolom ST atau STATE menunjukkan status jalannya job:
|-
|-
!STATE
!STATE
!Penjelasan
!Penjelasan
|-
|-
|R (RUN)
|<code>'''R (RUN)'''</code>
|Job berjalan
|Job berjalan
|-
|-
|PD (PENDING)
|<code>'''PD (PENDING)'''</code>
|Job tertahan, lihat [[Daftar Reason NODELIST ALELEON Supercomputer|'''NODELIST(REASON)''']]
|Job tertahan, lihat '''[<nowiki/>[[Daftar Job Reason ALELEON Supercomputer|Daftar Job Reason]]]'''
|-
|-
|CG (COMPLETING)
|<code>'''CG (COMPLETING)'''</code>
|Job selesai dan dalam proses clean-up
|Job selesai dan dalam proses clean-up
|-
|-
|CA (CANCELED)
|<code>'''CA (CANCELED)'''</code>
|Job dibatalkan user
|Job dibatalkan user
|-
|-
|PR (PREEMPETED)
|<code>'''PR (PREEMPETED)'''</code>
|Job dibatalkan admin, alasan dikabarkan via email
|Job dibatalkan admin, alasan dikabarkan via email
|-
|-
|S (SUSPENDED)
|<code>'''S (SUSPENDED)'''</code>
|Job ditahan admin, alasan dikabarkan via email
|Job ditahan admin, alasan dikabarkan via email
|}
|}
|-
|-
|'''6'''
!<big><nowiki>---| 5 |---</nowiki></big>
|-
|User dapat memantau file output dengan perintah Unix seperti:
 
* '''<code>ls</code>''', '''<code>cat</code>''', '''<code>more</code>''', '''<code>tail</code>''', dll
|-
!<big><nowiki>---| 6 |---</nowiki></big>
|-
|Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
|Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
  '''$ scancel ''[job-ID]'''''
  '''$ scancel ''[job-ID]'''''
   
   
  ''Job ID ada pada squeue diatas.
  ''Job ID ada pada squeue diatas.''
  contoh membatalkan job ID 231:''
  contoh membatalkan job ID 231:
  $ scancel 231
  $ '''scancel 231'''
|-
!---
|}
|}
{| class="wikitable mw-collapsible mw-collapsed"
!- Langkah Batch Job di web EFIRO -
[[Berkas:Efiro jobcomposer display.png|nirbing|400x400px]]
|-
!<big><nowiki>---| 0 |---</nowiki></big>
|-
!Apakah bisa menjalankan job?
|-
|User dengan '''Kredit Core Hour''' disarankan cek kuota terlebih dulu:


=== Job Submission Web EFIRO ===
# Buka menu '''<big><code>Apps > Aleleon Shell Access</code></big>'''
'''Ketentuan:'''
# Jalankan:


# Menjalankan file Python di web EFIRO Job Composer dengan scheduler SLURM.
$ '''sausage'''
#* File ipynb harus dikonversi ke file Python.
 
# Berjalan di Compute Node.
* '''''Untuk akun institusi ikuti petunjuk support EFISON.'''''
{| class="wikitable mw-collapsible mw-collapsed"
* Detail limit alokasi komputasi job lihat langkah '''<big>5B</big>'''.
!Langkah Job Submission Web EFIRO
* Bila butuh tambah kuota, lihat '''[[https://wiki.efisonlt.com/wiki/Core_Hour#Penggunaan_Kredit_Core_Hour top up Kredit Core Hour]].'''
[[Berkas:Efirojobcomposer3.png|nirbing|400x400px]]
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
| [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_ |'''[[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO Login ke web EFIRO]]''' ALELEON Supercomputer.
|-
|-
!1
!<big><nowiki>---| 2 |---</nowiki></big>
|-
|-
| [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_ |'''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|
{| class="wikitable"
|[[Berkas:EOD Apps Job Composer full.png|nirbing|126x126px]]
|Klik app '''<code><big>Job Composer</big></code>'''  di homepage EFIRO.
 
* ''atau'' menu '''<big><code>Apps > Job Composer</code></big>'''
|}
|-
|-
!2
|[[Berkas:Jcnewjobmarked.png|nirbing|170x170px]]Pilih menu <big>'''<code>New Job > From Template</code>'''</big>
|-
|-
|[[Berkas:Pinnedapps jc.png|nir|jmpl|143x143px|Buka app '''<code>Job Composer</code>''' di Pinned Apps.]][[Berkas:Jcnewjobmarked.png|nir|jmpl|180x180px|Pilih menu '''<code>New Job</code>''' -> '''<code>From Template</code>''']]
!<big><nowiki>---| 3 |---</nowiki></big>
|-
|-
!3
!Buat ruang job untuk menjalankan komputasi:
|-
|-
|
|
{| class="wikitable"
{| class="wikitable"
! colspan="2" |Pilih template Anaconda Python yang diinginkan
|+Pilih template Anaconda Python yang diinginkan:
|-
|-
!Nama Template
!Nama Template
!Penjelasan
!Penjelasan
|-
|-
|Anaconda Python (CPU)
|Conda Environment Python (CPU)
|Menjalankan Anaconda Python versi CPU
|Menjalankan conda env pada CPU
|-
|-
|Anaconda Python (GPU)
|Conda Environment Python (GPU)
|Menjalankan Anaconda Python versi GPU
|Menjalankan conda env pada GPU
|}
|}Kemudian Isi '''Job Name''' dan klik '''<code><big>Create New Job</big></code>'''
Kemudian Isi '''<code>Job Name</code>''' dan klik '''<code>Create New Job</code>'''


[[Berkas:Jctemplate-2.png|nirbing]]
[[Berkas:Jctemplate-2.png|nirbing]]
|-
|-
!4
!<big><nowiki>---| 4 |---</nowiki></big>
|-
|Upload dan edit file untuk menjalankan komputasi pada '''<code>Edit Files</code>'''
[[Berkas:Jcjoboption.png|nirbing|450x450px]]
* Untuk upload file tunggal diatas 2GB gunakan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
* Apabila butuh akses terminal buka <code>'''Open Terminal'''</code>.
|-
|-
!5
!Lakukan persiapan:
|-
|-
|Lengkapi '''Submit Script''' melalui tombol '''<code>Open Editor</code>'''.
|'''Pastikan package lengkap pada conda env yang akan digunakan:'''
[[Berkas:Jceditor3.png|al=|nirbing|450x450px]]
* Package tidak lengkap akan menyebabkan job gagal berjalan.
* Submit script adalah 'formulir' untuk menjalankan job komputasi.
* Akses terminal apabila butuh via menu '''<code><big>Open Terminal</big></code>'''
* Ikuti petunjuk NOTES didalamnya
'''Siapkan file komputasi yang dibutuhkan di ruang job:'''
* Klik '''<code>Save</code>''' setiap kali mengubah script.
|-
!
|-
|
{| class="wikitable mw-collapsible mw-collapsed"
!Panduan nilai maksimal alokasi komputasi SBATCH
|-
|Pada akun perseorangan, SLURM akan menahan job apabila:  


* ntasks * time (jam) lebih besar dari sisa CPU Core Hour user
* ''Pastikan ruang job yang dipilih adalah yang akan digunakan.''
* gpus * time (jam) lebih besar dari sisa GPU Hour user


Cek sisa Core Hour dengan langkah:
*Upload / download / edit file via menu <code>'''<big>Edit Files</big>'''</code>


# Buka menu <code>'''Open Terminal'''</code>
*Upload / download file tunggal diatas 2GB gunakan '''[[https://wiki.efisonlt.com/wiki/Manajemen_File_di_ALELEON_Supercomputer#Upload_/_Download_Ruang_Job_Composer software FTP]]'''
# Jalankan perintah '''<code>sausage</code>'''
[[Berkas:JC job menu.png|nirbing|500x500px]]
|-
!<big><nowiki>---| 5A |---</nowiki></big>
|-
|-
|'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan:'''
|Lengkapi '''Submit Script''' melalui tombol '''<code><big>Open Editor</big></code>'''
{| class="wikitable"
*Submit script adalah 'formulir' untuk menjalankan job komputasi.
!ntasks
* Ikuti petunjuk '''NOTES dan alur script''' di dalamnya.
!mem
*Klik '''<code><big>Save</big></code>''' setiap kali mengubah script.
!gpus
[[Berkas:Jceditor3.png|al=|nirbing|400x400px]]
!time
|-
|-
|128
!
|128GB
|2
|72:00:00
|}
User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini'''].
|-
|-
|'''Versi CPU:'''
|[[Berkas:GMB warning wololo.png|nirbing|50x50px]] '''Bagi yang memilih template GPU:'''
{| class="wikitable"
* Perhatikan apakah perlu memuat modul CUDA?
!Node
 
!ntasks
* Info detail lihat '''[[https://wiki.efisonlt.com/wiki/Komputasi_Python_dengan_Conda_Environment#Menjalankan_Package_Python_versi_GPU? Menjalankan Package Python Versi GPU?]]'''
!mem
** '''''Apabila butuh''''', isi nama modul CUDA pada submit script:
!gpus
...
!time
module load ${PM}
'''''module load [Nama-modul-CUDA]'''''
...
|-
|-
|normal
!
| rowspan="2" |128
|240GB
| rowspan="2" | -
| rowspan="2" |72:00:00
|-
|-
|high-mem*
|
|500GB
*''Detail Submit Script lihat '''[<nowiki/>[[Submit Script ALELEON Supercomputer|Subm]]<small><nowiki/></small>[[Submit Script ALELEON Supercomputer|it Script ALELEON Supercomputer]]]'''''
|}
 
<nowiki>*</nowiki>Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
*''Untuk SBATCH notifikasi email status jalannya job lihat '''[[https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer#SBATCH_untuk_notifikasi_email_SLURM Slurm Jojo]]'''''
|-
|-
|'''Versi GPU:'''
!<big><nowiki>---| 5B |---</nowiki></big>
{| class="wikitable"
!ntasks
!mem
!gpus
!time
|-
|-
|32
|SBATCH komputasi (ntasks, mem, time, dll) '''punya limit''' berdasarkan:
|120GB
*Sisa Core Hour user dan '''[<nowiki/>[[Limitasi Fair Usage ALELEON Supercomputer|Fair Usage Limit]]]'''
|2
*Spesifikasi sistem dan software komputasi.
|72:00:00
Untuk melihat limit, jalankan perintah berikut:
|}
$ '''slimit-python'''
[[Berkas:GMB warning wololo.png|nirbing|50x50px]] '''Note untuk saat ini:'''
*''Jalankan ketika tidak ada job user yang berjalan atau antri.''
*''Sementara berlaku untuk akun perseorangan saja.''
|-
|-
|'''Versi MPI (dengan MPI4PY):'''
!<big><nowiki>---| 6 |---</nowiki></big>
{| class="wikitable"
!ntasks
!mem
!gpus
!time
|-
|-
|384
|Jalankan job dengan klik tombol '''<code><big>Submit</big></code>'''
|240GB
[[Berkas:JC job runstop.png|al=|nirbing|400x400px]]
| -
|72:00:00
|}
Ketika ntasks lebih dari 128:


* SLURM otomatis menjalankan job pada multi-node.
*''Job berakhir '''(Status completed)''' ketika:''
* Mem mengalokasikan memori RAM per-node.
** ''Komputasi selesai atau ada error sehingga selesai prematur.''
* Info detail buka laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']].
** ''Job menyentuh walltime yang didefinisikan user di SBATCH time.''
|}
|-
!6
|-
|Jalankan job dengan klik tombol '''<code>Submit</code>'''.
[[Berkas:Jcsubmit2.png|al=|nirbing|450x450px]]
* Pantau kolom status yang menjelaskan status jalannya job.
* Apabila ingin membatalkan job yang berjalan, klik '''<code>Stop</code>'''.
* Job completed dapat dijalankan kembali dengan '''<code>Submit</code>'''.


{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable"
! colspan="2" |Daftar status job
|+Kolom Status menunjukkan status jalannya job:
|-
|-
!Status
!Status
!Arti
!Arti
|-
|-
|Not Submitted
|'''Not Submitted'''
|Job belum pernah dijalankan.
|Job belum pernah dijalankan.
|-
|-
|Running
|'''Running'''
|Job berjalan.
|Job berjalan.
|-
|-
|Queue
| '''Queue'''
|Job mengantri dan belum berjalan.
|Job mengantri dan belum berjalan.
|-
|-
|Completed
|'''Completed'''
|Job selesai berjalan.
| Job selesai berjalan.
|-
|-
|Failed
|'''Failed'''
|Job berhenti di tengah jalan, antara error atau di stop user
|Job berhenti karena error atau di stop user.
|-
|-
| colspan="2" |'''Untuk melihat alasan queue:'''  
! colspan="2" |'''Melihat alasan job yang queue:'''
# Buka app '''<code>Active Jobs</code>''' pada homepage EFIRO.
|-
# [[Berkas:Efiroqueueedit.png|nir|jmpl|''Ubah opsi '''<code>Your jobs</code>''' untuk melihat status job user saja. Klik simbol '''>''' untuk melihat status job pending pada kolom '''Reason'''. Arti reason lihat laman '''[[Daftar Reason NODELIST ALELEON Supercomputer]].''''']]
| colspan="2" |[[Berkas:Active Jobs detail.png|nir|jmpl|300x300px|''Buka menu '''Apps >''' '''Active Jobs''' di homepage EFIRO. Ubah opsi All jobs ke '''Your Jobs'''. Klik simbol '''>''' untuk melihat status job yang pending pada kolom Reason. Arti reason lihat laman '''[[Daftar Job Reason ALELEON Supercomputer]]''''']]
|}
|}
|-
|-
!7
!<big><nowiki>---| 7 |---</nowiki></big>
|-
|-
|Lihat output file komputasi pada kolom '''<code>Folder Contents</code>'''
|Lihat output file komputasi pada kolom '''Folder Contents'''
*Atau dengan membuka '''<code>Edit Files</code>'''
*Atau dengan membuka menu '''<code><big>Edit Files</big></code>'''
[[Berkas:Jcfoldercontentsedit.png|al=|nir|jmpl|''Kolom '''<code>Folder Contents</code>'''.'']]
[[Berkas:Jcfoldercontentsedit.png|al=|nir|jmpl|''Kolom '''<code>Folder Contents</code>''''']]
|-
!<big><nowiki>---| 8 |---</nowiki></big>
|-
|Apabila user ingin menghentikan job yang berjalan, klik '''<code><big>Stop</big></code>'''
|-
!<big><nowiki>---| 9 |---</nowiki></big>
|-
|Untuk menghapus ruang job dan datanya:
*Pilih ruang job yang akan dihapus.
*Perhatikan opsi ini juga '''menghapus data di ruang job tersebut.'''
*Klik menu '''<code><big>Delete</big></code>'''
[[Berkas:JC delete menu.png|nirbing|400x400px]]
|-
!---
|}
|}


=== Interactive Job Jupyter ===
=== Sesi Jupyter ===
'''Ketentuan:'''
Menjalankan sesi interaktif Jupyter Lab atau Notebook di '''[<nowiki/>[[Spesifikasi ALELEON Supercomputer#Spesifikasi%20Interactive%20Node|interactive node]]].'''


# Menjalankan sesi interaktif Jupyter Lab atau Notebook.
''<small><code>(klik expand / kembangkan)</code></small>''
# Berjalan di Interactive Node.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Interactive Job Sesi Jupyter
!- Langkah Sesi Jupyter -
[[Berkas:Efirojupyterlab.png|400x400px]]
[[Berkas:Efiro jupyter display.png|400x400px]]
|-
!<big><nowiki>---| 1 |---</nowiki></big>
|-
| '''[https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_ |'''[[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO Login ke web EFIRO]]''' ALELEON Supercomputer.
|-
|-
|'''1'''
!<big><nowiki>---| 2 |---</nowiki></big>
|'''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_|'''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|-
|-
|'''2'''
!Lakukan persiapan sebelum sesi Jupyter:
|Buka app '''<code>Jupyter</code>''' di Pinned Apps.[[Berkas:Pinnedapps jupyter.png|nir|jmpl|141x141px]]
|-
|'''Untuk efisiensi sesi terkait batasan waktu dan konsumsi Core Hour:'''
* Lengkapi instalasi package pada conda env yang akan dipakai.
** [[Berkas:GMB warning wololo.png|nirbing|50x50px]] ''Pastikan package jupyter dan jupyterlab telah terinstal.''
* Upload file besar lihat '''[[https://wiki.efisonlt.com/wiki/Manajemen_File_di_ALELEON_Supercomputer Upload / Download File HOME]]'''
** Direktori standar sesi Jupyter adalah $HOME user.
|-
!<big><nowiki>---| 3 |---</nowiki></big>
|-
|
{| class="wikitable"
|[[Berkas:New Pinnedapps jupyter.png|nirbing|116x116px]]
|Klik app '''<code><big>Jupyter</big></code>''' di homepage EFIRO.
 
* ''atau'' menu '''<big><code>Apps > Jupyter</code></big>'''
|}
|-
!<big><nowiki>---| 4 |---</nowiki></big>
|-
|-
|'''3'''
|Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
|Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
* '''Choose Jupyter version'''
** ''pilih sesuai preferensi user, Jupyter Lab atau Notebook''
* '''Partition''' -> ''pilih sesuai kebutuhan:''
** torti -> CPU saja
** tilla -> CPU dan GPU
{| class="wikitable"
{| class="wikitable"
!Alokasi komputasi
!<code>''<big>Choose Jupyter version</big>''</code>
!torti
!tilla
|-
|-
|Number of CPU core(s)
|Pilih sesuai preferensi user, <code>Jupyter Lab</code> atau <code>Notebook</code>
| colspan="2" |1 - 32
|-
|-
|Amount of memory/RAM
!
| colspan="2" |1 - 64
|-
|-
|Number of GPUs
!''<code><big>Partition</big></code>''
| -
|1
|-
|-
|Number of hours
|Pilih sesuai kebutuhan:
| colspan="2" |1 - 72
*<code>'''torti'''</code> -> interactive node CPU [[Berkas:GMB CPU icon.png|nirbing|60x60px]]
*<code>'''tilla'''</code> -> interactive node GPU [[Berkas:GMB GPU icon.png|nirbing|90x90px]]
|-
|-
| colspan="3" |'''Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:'''  
!
* Alokasi CPU * hours lebih besar dari sisa CPU Core Hour user.
|-
* Alokasi GPU * hours lebih besar dari sisa GPU Hour user.
!<code>''<big>Number of CPU thread(s)</big>''</code>
|-
|Alokasi core CPU, range <code><big>'''2 - 32'''</big></code>
|-
!
|-
!<code>''<big>Amount of memory/RAM (GB)</big>''</code>
|-
|Alokasi RAM dalam satuan GB, range <code><big>'''1 - 64'''</big></code>
|-
!
|-
!''<code><big>Number of GPUs</big></code> (apabila pilih partition tilla)''
|-
|Jumlah GPU, isi angka <code><big>'''1'''</big></code>
|-
!
|-
!''<code><big>Number of hours</big></code>''
|-
|Waktu maksimal sesi Jupyter, range <code><big>'''1 - 72'''</big></code>
|-
![[Berkas:GMB warning wololo.png|nirbing|50x50px]] Apakah bisa menjalankan sesi Jupyter?
|-
|Form CPU, GPU, dan hours '''punya limit''' berdasarkan:
*Sisa Core Hour user dan '''[<nowiki/>[[Limitasi Fair Usage ALELEON Supercomputer|Fair Usage Limit]]]'''
Untuk melihat limit:


Cek sisa Core Hour dengan:  
* Buka menu '''<code><big>Apps > Aleleon Shell Access</big></code>'''
* Jalankan perintah:
$ '''sausage'''
* Ketentuan sesi Jupyter dapat berjalan:
sisa CCH > number of CPU threads X number of hours
sisa GH > number of GPU X number of hours
|-
!
|-
!''<code><big>Choose how to launch Jupyter</big></code>''
|-
|Pilih <code>'''Anaconda/Mamba'''</code>
|-
!
|-
!''<code><big>Choose Anaconda/Mamba version</big></code>''
|-
|Pilih versi yang digunakan untuk membuat conda env user.
|-
!
|-
!''<code><big>Conda/Mamba environment directory</big></code>''
|-
|Isi nama conda env user, contoh: <code>skripsi</code>
|-
!
|-
!''<code><big>Software Modules</big></code>''
|-
|Memuat modul software diluar conda env user , ''isi apabila ada''.
|-
|[[Berkas:GMB warning wololo.png|nirbing|50x50px]] Bagi user yang memilih '''partition tilla''':


# Buka app '''<code>Aleleon Shell Access</code>''' pada homepage EFIRO
* Perhatikan apakah perlu memuat modul CUDA?
# Jalankan perintah '''<code>sausage</code>'''
* Info detail lihat '''[[https://wiki.efisonlt.com/wiki/Komputasi_Python_dengan_Conda_Environment#Menjalankan_Package_Python_versi_GPU? Menjalankan Package Python Versi GPU?]]'''
** '''''Apabila butuh''''', isi form ini dengan nama modul CUDA.
|-
!
|-
!''<code><big>Environment setup</big></code>''
|-
|Memuat environment variable, ''isi apabila ada''.
|-
!
|-
!''<code><big>Additional Jupyter arguments</big></code>''
|-
|Memuat argumen tambahan Jupyter, ''isi apabila ada''.
|-
!
|-
!''<code><big>Email address</big></code>''
|-
|Notifikasi email untuk status mulai dan selesainya Jupyter.
*''Isi apabila berkenan.''
|}
|}
 
*
* '''Choose how to launch Jupyter''' -> Anaconda
|-
* '''Choose Anaconda version'''
!<big><nowiki>---| 5 |---</nowiki></big>
** ''Pilih versi yang digunakan untuk membuat conda env user''
* '''Conda environment directory'''
** ''Isi nama conda env user yang akan digunakan''
* '''Software modules'''
** ''Membuat modul software, isi sesuai kebutuhan user''
** ''Apabila menggunakan tilla, isi modul '''NVIDIA CUDA''' yang sesuai''
* '''Environment setup'''
** ''Memuat environment variable, isi apabila ada''
* '''Additional Jupyter arguments'''
** Memuat argument tambahan Jupyter, isi apabila ada
* '''Email address'''
** ''Notifikasi email untuk status mulai dan selesainya sesi Jupyter.''
** ''Isi apabila berkenan.''
 
|-
|-
|'''4'''
|Klik tombol '''<code><big>Launch</big></code>''' untuk memulai sesi Jupyter:
|Klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter.
*User akan diarahkan ke halaman '''<code><big>My Interactive Sessions</big></code>'''
*User akan diarahkan ke halaman '''<code>My Interactive Sessions</code>'''.
*Tunggu hingga sesi Jupyter siap diakses.
*Tunggu hingga sesi Jupyter siap diakses.
[[Berkas:Jupyternotebookqueue.png|nir|jmpl|''Status sesi Jupyter mengantri menunggu alokasi hardware'']]
[[Berkas:Jupyternotebookqueue.png|nirbing|500x500px]]
|-
!<big><nowiki>---| 6 |---</nowiki></big>
|-
|-
|'''5'''
|Apabila status '''Running''', klik tombol '''<code><big>Connect to Jupyter</big></code>'''
|Apabila status '''Running''', klik tombol '''<code>Connect to Jupyter</code>'''.
*[[Berkas:GMB warning wololo.png|nirbing|50x50px]] Sistem mulai menghitung Core Hour!
 
*Sesi akan terus berjalan selama '''waktu sesi masih ada'''.
* Sistem mulai menghitung Core Hour!
*Untuk menghentikan sesi yang running, klik tombol '''<code><big>Cancel</big></code>'''
 
[[Berkas:Newjupyter120124.png|nirbing|500x500px]]
[[Berkas:Newjupyter120124.png|nir|jmpl|''Sesi Jupyter siap diakses.'']]Untuk menghentikan sesi, klik tombol '''<code>Cancel</code>'''.
|-
!<big><nowiki>---| 7 |---</nowiki></big>
|-
|Gunakan kernel '''Python 3 (ipykernel)''' untuk sesi Jupyter.
|-
|-
|'''6'''
!<big><nowiki>---| 8 |---</nowiki></big>
|Pilih Notebook Python 3 untuk memulai sesi notebook Python 3.[[Berkas:Jupyternotebookkernelupdated.png|al=|nir|jmpl|200x200px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Notebook'']][[Berkas:Rjupyterlab.png|nir|jmpl|225x225px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Lab'']]
|-
|-
|'''7'''
|'''Sesi Jupyter tidak terputus ketika:'''  
|User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:  
* Koneksi user terputus saat sesi Jupyter.
* User keluar / log out dari sesi Jupyter dan web EFIRO.
'''User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:'''
*Menu '''<code><big>My Interactive Sessions</big></code>'''
*Kolom '''<code><big>Active interactive sessions</big></code>''' di homepage EFIRO.
[[Berkas:GMB warning wololo.png|nirbing|50x50px]] '''Ketika user keluar saat ada cell berjalan dan kembali masuk:'''


* Menu '''<code>My Interactive Sessions</code>''' pada homepage EFIRO.
* Bisa jadi cell tersebut tidak menampilkan proses jalannya komputasi.
* Kolom '''<code>Active interactive sessions</code>''' pada homepage EFIRO.
* Lihat cell berikutnya apakah belum / sedang / selesai berjalan.
|-
!---
|}
|}
=='''''Pelaporan Kendala dan Support'''''==
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.
[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]
Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:
'''support@efisonlt.com'''
== '''''Kontributor''''' ==
EFISON turut mengucapakan terima kasih spesial kepada:
# '''[[https://sadasa.id/ Sadasa Aacademy]]''' untuk pengujian semua tutorial di laman ini.

Revisi terkini sejak 17 Mei 2025 19.11

Logo Python Anaconda Mamba ALELEON tp.png

Halaman ini menjelaskan menjalankan komputasi / aplikasi Python dengan conda environment di ALELEON Supercomputer.

Laman ini merupakan bagian laman [Komputasi Python]

Langkah Menjalankan Komputasi

Terdapat tiga langkah utama:

  1. Buat conda environment untuk menampung instalasi package.
  2. Instal package Python yang diperlukan di conda env tersebut.
  3. Menggunakan conda env tersebut untuk menjalankan komputasi.

Spesifikasi

Tutorial ini memandu membuat conda environment dengan site-packages terisolasi di dalamnya.

Keterangan simbol perintah terminal
$ Perintah ketika conda env tidak aktif
(env)$ Perintah ketika conda env aktif

Membuat Conda Environment

ALELEON Supercomputer menyediakan pilihan Python Package Manager (PPM) berikut untuk membuat conda environment. Pilih sesuai preferensi user:

  • Anaconda: PPM Python paling banyak digunakan dimana saat ini menjadi standar industri.
  • Mamba: PPM Python alternatif Anaconda versi open-source yang dikembangkan komunitas.

(klik expand / kembangkan)

- Membuat conda env dengan Anaconda -

Anaconda transparent logo.png

EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
---| 1 |---
Pilih dan aktifkan modul Anaconda untuk membuat conda env:
  • Ingat atau catat modul Anaconda yang dipakai.
  • Kedepannya digunakan untuk mengaktifkan conda env ini.
$ module load [nama-modul-anaconda]
Daftar nama modul Anaconda 3
Versi Nama Modul Versi Py default
2024-02-1 Anaconda3/2024.02-1 3.11.7
2023.07-2 Anaconda3/2023.07-2 3.11.4
2022.05 Anaconda3/2022.05 3.9.12
2021.05 Anaconda3/2021.05 3.8.8
2020.11 Anaconda3/2020.11 3.8.5
---| 2 |---
GMB warning wololo.png Package apa yang akan diinstal user di conda env ini?
  • Beberapa package membutuhkan Python versi spesifik
  • Gunakan opsi 3B untuk membuat conda env.

Update 29 April 2025

Package yang diketahui butuh Python versi spesifik
Package Versi Python
TensorFlow Lihat [TensorFlow Tested Build Configurations]
PyTorch 3.9 - 3.12
AutoGluon 3.9 - 3.12
---| 3 |---
Buat conda env dengan opsi:
3A - Conda env kosong dengan Python 3 versi terbaru (3.13):
$ conda create -n [nama-conda-env] pip

Contoh dengan nama 'skripsi' 
$ conda create -n skripsi pip
3B - Conda env kosong dengan Python versi tertentu:
$ conda create -n [nama-conda-env] python=[versi]

Contoh dengan Python 3.10 
$ conda create -n skripsi python=3.10
Saran
Pilih nama conda env yang mengandung unsur nama modul:
  • Untuk mengingat modul yang digunakan membuat conda env.
  • Contoh user memilih modul Anaconda3/2024-02-1
  • Gunakan nama conda env seperti A2024-skripsi
---
- Membuat conda env dengan Mamba -

Mamba transparent logo.png

EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
---| 1 |---
Pilih dan aktifkan modul Mamba untuk membuat conda env:
  • Ingat atau catat modul Mamba yang dipakai.
  • Kedepannya digunakan untuk mengaktifkan conda env ini.
$ module load [nama-modul-mamba]
Daftar nama modul Mamba
Versi Nama Modul Versi Py default
23.11.0-0 Mamba/23.11.0-0 3.10.13
---| 2 |---
GMB warning wololo.png Package apa yang akan diinstal user di conda env ini?
  • Beberapa package membutuhkan Python versi spesifik
  • Gunakan opsi 3B untuk membuat conda env.

Update 29 April 2025

Package yang diketahui butuh Python versi spesifik
Package Versi Python
TensorFlow Lihat [TensorFlow Tested Build Configurations]
PyTorch 3.9 - 3.12
AutoGluon 3.9 - 3.12
---| 3 |---
Buat conda env dengan opsi:
3A - Conda env kosong dengan Python 3 versi terbaru (3.13):
$ mamba create -n [nama-conda-env] pip

Contoh dengan nama 'skripsi' 
$ mamba create -n skripsi pip
3B - Conda env kosong dengan Python versi tertentu:
$ mamba create -n [nama-conda-env] python=[versi]

Contoh dengan Python 3.10 
$ mamba create -n skripsi python=3.10
Saran
Pilih nama conda env yang mengandung unsur nama modul:
  • Untuk mengingat modul yang digunakan membuat conda env.
  • Contoh user memilih modul Mamba/23.11.0-0
  • Gunakan nama conda env seperti M23-skripsi
---

Mengaktifkan Conda Env dan Instalasi Package

GMB warning wololo.png Ada baiknya user melengkapi instalasi package sebelum menjalankan komputasi karena:

  1. Batch job -> supaya script Python berjalan tanpa error missing package.
  2. Sesi Jupyter -> untuk efisiensi penggunaan karena terkadang ada package yang membutuhkan waktu lama untuk instalasi.

Instalasi ini berjalan di login node sehingga tidak mengkonsumsi Core Hour.

Mengaktifkan Conda Environment
EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
---| 1 |---
Muat modul PPM yang digunakan untuk membuat conda env:
$ module load [Anaconda-atau-Mamba ....]
---| 2 |---
Aktifkan conda env dengan perintah source:
$ source activate [nama-conda-env]

Apabila lupa dengan nama conda env, cari dengan:

$ conda env list
---| 3A |---
Pilih panduan instalasi package yang dibutuhkan
Lihat laman [Daftar Instalasi Package Python]
  • Halaman terpisah karena daftar terlalu panjang ._.
---| 3B |---
Untuk user yang hendak menggunakan sesi Jupyter

EOD Apps Jupyter full.png

Instal package:
(env)$ pip install jupyter jupyterlab
---| 4 |---
Apabila hendak menonaktfkan conda env:
(env)$ conda deactivate

Pilihan Menjalankan Komputasi

Berikut opsi menjalankan komputasi Python dengan conda env, pilih sesuai kebutuhan:

Jenis Komputasi Berjalan di
[Batch job]
  • Menjalankan script Python siap jalan yang tidak membutuhkan interaksi user.
    • GMB warning wololo.pngPerhatikan file .ipynb harus dikonversi ke file .py.
    • Job dijalankan oleh Slurm, user menunggu hingga selesai.
  • Batch job akan berhenti ketika:
    • Program komputasi selesai berjalan.
    • Program komputasi menyentuh limit waktu yang ditentukan user.
    • Program menjumpai error sehingga selesai prematur.
  • Koneksi user tidak mempengaruhi jalannya batch job:
    • Job tidak akan berhenti ketika koneksi user terputus, atau
    • user keluar (log out) dari ALELEON.
[Compute node]:
  • Partisi epyc GMB CPU icon.png
  • Partisi ampere GMB GPU icon.png
[Sesi Jupyter]
  • Menjalankan sesi interaktif Jupyter Lab atau Notebook.
  • Sesi Jupyter akan berhenti ketika:
    • Waktu sesi habis.
    • Sesi dihentikan secara manual oleh user.
    • Sesi menjumpai error sehingga selesai prematur.
  • Koneksi user tidak mempengaruhi jalannya sesi Jupyter, contoh:
    • Sesi tidak akan berhenti ketika koneksi user terputus, atau
    • user keluar (log out) dari ALELEON.
  • Ketika user keluar dari sesi Jupyter saat ada cell berjalan dan kembali masuk:
    • Bisa jadi cell tersebut tidak menampilkan proses jalannya komputasi.
    • Lihat cell berikutnya apakah belum / sedang / sudah selesai berjalan.
[interactive node]:
  • Partisi torti GMB CPU icon.png
  • Partisi tilla GMB GPU icon.png

---

Menjalankan Package Python versi GPU?

Perhatikan hal berikut apabila user menginstal package Python versi CUDA dan hendak menggunakan compute / interactive node GPU:

  1. Package membutuhkan jenis dan versi library NVIDIA sesuai seperti CUDA, cuDNN untuk dapat berjalan di GPU NVIDIA.
  2. Umumnya (walau tidak semua) package Python CUDA saat ini juga menginstal package NVIDIA yang dibutuhkan.
  3. Berikut metode mengecek dan melengkapi library NVIDIA yang dibutuhkan package:
Mengecek Kelengkapan Package NVIDIA
EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
---| 1 |---
[Aktifkan conda env] yang akan digunakan.
---| 2 |---
Cek ketersediaan library CUDA di conda env tersebut:
- Apabila instal package dengan pip
(env)$ pip list | grep cuda

- Apabila instal package dengan conda
(env)$ conda list | grep cuda
---| 3A |---
Apabila ada output:
Conda env siap digunakan.
  • User tidak perlu memuat modul CUDA.
---| 3B |---
GMB warning wololo.png Apabila tidak ada output:
User harus memuat modul CUDA dengan ketentuan:
  1. Perhatikan versi CUDA yang dibutuhkan package.
  2. Lihat dokumentasi package tersebut.

(klik expand / kembangkan)

- Tutorial memuat dan daftar modul CUDA -

Logo CUDA ALELEON tp.png

Opsi Batch Job
Tambah perintah berikut pada submit script:
...
# Memuat modul
module load ${PM}
module load [Nama-modul-CUDA]
...
Opsi Sesi Jupyter
Isi nama modul pada kolom Software Modules
DAFTAR MODUL CUDA ALELEON
Versi CUDA Nama modul CUDA
11.2 cuda/11.2-cuDNN8.1.1
11.6 cuda/11.6-cuDNN8.3.3
11.8 cuda/11.8-cuDNN8.6.0
12.0 cuda/12.0-cuDNN8.7.0
12.1 cuda/12.1-cuDNN8.8.1
12.3 cuda/12.3-cuDNN8.9.6
12.4 cuda/12.4-cuDNN9.2.1
12.5 cuda/12.5-cuDNN9.2.1
Permintaan instalasi CUDA versi lain:
  • Hubungi tim admin di support@efisonlt.com
---
---

---

Batch Job

menjalankan script Python siap jalan yang tidak membutuhkan interaksi user melalui manajemen Slurm di [compute node].

  • GMB warning wololo.pngPerhatikan file .ipynb harus dikonversi ke file .py.
  • Tersedia dua pilihan tampilan yaitu terminal dan web EFIRO. Pilih sesuai keinginan.

(klik expand / kembangkan)

- Langkah Batch Job di Terminal -

Sbatch terminal display rev2.png

Tutorial ini mengasumsikan user familiar dengan terminal Linux
EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
---| 0 |---
Apakah bisa menjalankan job?
User dengan Kredit Core Hour disarankan cek kuota terlebih dulu:
$ sausage
  • Untuk akun institusi ikuti petunjuk support EFISON.
  • Detail limit alokasi komputasi job lihat langkah 2B.
  • Bila butuh tambah kuota, lihat [top up Kredit Core Hour].
---| 1 |---
Lakukan persiapan:
Pastikan package lengkap pada conda env yang akan digunakan:
  • Package tidak lengkap akan menyebabkan job gagal berjalan.

Siapkan file komputasi yang dibutuhkan:

GMB warning wololo.png Untuk mencegah batch job mengacu site-packages yang salah:

1 - Apabila conda env aktif, keluar:
(env)$ conda deactivate
 
2 - Menonaktifkan modul Package Python:
$ ml unload Anaconda Mamba

Apabila ada pesan ini, abaikan:
the module ... cannot be unloaded because it was not loaded
---| 2A |---
Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi:
  • Nama file bebas dengan format .sh, contoh submit.sh
  • Biasanya submit script berada satu folder dengan file komputasi.
$ nano submit.sh
atau vim
Contoh template Submit Script:
  • Ikuti petunjuk NOTES dan alur script di dalamnya.

Klik expand / kembangkan

- Template submit script Conda Environment versi CPU -

GMB CPU icon.png

#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Python dengan Conda Environment (CPU) | rev.210125
#
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah melengkapi conda environment.
# -----------------------------------------------------

# -----------------------------------------------------
# Alokasi komputasi SBATCH dan file input
# -----------------------------------------------------

# Alokasi jumlah core thread CPU
#SBATCH --ntasks=////

# Alokasi jumlah memori RAM (satuan GB)
#SBATCH --mem=////GB

# Alokasi limit waktu menjalankan job
# Format HH:MM:SS atau D-HH:MM:SS
#SBATCH --time=////

# Definisi file untuk menampung output terminal program
#SBATCH --output=result-%j.txt

# Definisi file untuk menampung output error log
#SBATCH --error=error-%j.txt

# Input nama modul package manager yang digunakan untuk membuat
# conda env user. Daftar nama:
# Anaconda3/2020.11   || Anaconda3/2021.05   || Anaconda3/2022.05 ||
# Anaconda3/2023.07-2 || Anaconda3/2024.02-1 || Mamba/23.11.0-0   ||
PM="////"

# Nama conda environment yang digunakan
CONDA_NAME="////"

# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------

# Memuat modul
module load ${PM}

# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}

# Tuliskan perintah menjalankan komputasi Python user
# contoh -> python3 [nama-file-python]
////
- Template submit script conda environment versi GPU -

GMB GPU icon.png

GMB warning wololo.pngNote:
...
module load ${PM}
module load [Nama-modul-CUDA]
...
#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Python dengan Conda Environment (GPU) | rev.210125
#
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah melengkapi conda environment.
# -----------------------------------------------------

# -----------------------------------------------------
# Alokasi komputasi SBATCH dan file input
# -----------------------------------------------------

# Partisi compute node GPU
#SBATCH --partition=ampere

# Alokasi jumlah core thread CPU
#SBATCH --ntasks=////

# Alokasi jumlah GPU
#SBATCH --gpus=////

# Alokasi jumlah memori RAM (satuan GB)
#SBATCH --mem=////GB

# Alokasi limit waktu menjalankan job
# Format HH:MM:SS atau D-HH:MM:SS
#SBATCH --time=////

# Definisi file untuk menampung output terminal program
#SBATCH --output=result-%j.txt

# Definisi file untuk menampung output error log
#SBATCH --error=error-%j.txt

# Input nama modul package manager yang digunakan untuk membuat
# conda env user. Daftar nama:
# Anaconda3/2020.11   || Anaconda3/2021.05   || Anaconda3/2022.05 ||
# Anaconda3/2023.07-2 || Anaconda3/2024.02-1 || Mamba/23.11.0-0   ||
PM="////"

# Nama conda environment yang digunakan
CONDA_NAME="////"

# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------

# Memuat modul
module load ${PM} 

# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}

# Tuliskan perintah menjalankan komputasi Python user
# contoh -> python3 [nama-file-python]
////
  • Untuk SBATCH notifikasi email status jalannya job lihat [Slurm Jojo]
---| 2B |---
SBATCH komputasi (ntasks, mem, time, dll) punya limit berdasarkan:
  • Sisa Core Hour user dan [Fair Usage Limit]
  • Spesifikasi sistem dan software komputasi.

Untuk melihat limit, jalankan perintah berikut:

$ slimit-python

GMB warning wololo.png Note untuk saat ini:

  • Jalankan ketika tidak ada job user yang berjalan atau antri.
  • Sementara berlaku untuk akun perseorangan saja.
---| 3 |---
Jalankan job dengan perintah:
$ sbatch [nama-submit-script]

Contoh:
$ sbatch submit.sh
---| 4 |---
User dapat melihat status jalannya job dengan perintah:
$ squeue -ul $USER
  • Apabila tidak ada di squeue artinya job bersangkutan telah berakhir.
  • Job berakhir ketika:
    • Komputasi selesai atau ada error sehingga selesai prematur.
    • Job menyentuh walltime yang didefinisikan user di SBATCH time.
Kolom ST atau STATE menunjukkan status jalannya job:
STATE Penjelasan
R (RUN) Job berjalan
PD (PENDING) Job tertahan, lihat [Daftar Job Reason]
CG (COMPLETING) Job selesai dan dalam proses clean-up
CA (CANCELED) Job dibatalkan user
PR (PREEMPETED) Job dibatalkan admin, alasan dikabarkan via email
S (SUSPENDED) Job ditahan admin, alasan dikabarkan via email
---| 5 |---
User dapat memantau file output dengan perintah Unix seperti:
  • ls, cat, more, tail, dll
---| 6 |---
Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
$ scancel [job-ID]

Job ID ada pada squeue diatas.
contoh membatalkan job ID 231:
$ scancel 231
---
- Langkah Batch Job di web EFIRO -

Efiro jobcomposer display.png

---| 0 |---
Apakah bisa menjalankan job?
User dengan Kredit Core Hour disarankan cek kuota terlebih dulu:
  1. Buka menu Apps > Aleleon Shell Access
  2. Jalankan:
$ sausage
  • Untuk akun institusi ikuti petunjuk support EFISON.
  • Detail limit alokasi komputasi job lihat langkah 5B.
  • Bila butuh tambah kuota, lihat [top up Kredit Core Hour].
---| 1 |---
[Login ke web EFIRO] ALELEON Supercomputer.
---| 2 |---
EOD Apps Job Composer full.png Klik app Job Composer di homepage EFIRO.
  • atau menu Apps > Job Composer
Jcnewjobmarked.pngPilih menu New Job > From Template
---| 3 |---
Buat ruang job untuk menjalankan komputasi:
Pilih template Anaconda Python yang diinginkan:
Nama Template Penjelasan
Conda Environment Python (CPU) Menjalankan conda env pada CPU
Conda Environment Python (GPU) Menjalankan conda env pada GPU
Kemudian Isi Job Name dan klik Create New Job

Jctemplate-2.png

---| 4 |---
Lakukan persiapan:
Pastikan package lengkap pada conda env yang akan digunakan:
  • Package tidak lengkap akan menyebabkan job gagal berjalan.
  • Akses terminal apabila butuh via menu Open Terminal

Siapkan file komputasi yang dibutuhkan di ruang job:

  • Pastikan ruang job yang dipilih adalah yang akan digunakan.
  • Upload / download / edit file via menu Edit Files
  • Upload / download file tunggal diatas 2GB gunakan [software FTP]

JC job menu.png

---| 5A |---
Lengkapi Submit Script melalui tombol Open Editor
  • Submit script adalah 'formulir' untuk menjalankan job komputasi.
  • Ikuti petunjuk NOTES dan alur script di dalamnya.
  • Klik Save setiap kali mengubah script.

GMB warning wololo.png Bagi yang memilih template GPU:
  • Perhatikan apakah perlu memuat modul CUDA?
...
module load ${PM}
module load [Nama-modul-CUDA]
...
  • Untuk SBATCH notifikasi email status jalannya job lihat [Slurm Jojo]
---| 5B |---
SBATCH komputasi (ntasks, mem, time, dll) punya limit berdasarkan:
  • Sisa Core Hour user dan [Fair Usage Limit]
  • Spesifikasi sistem dan software komputasi.

Untuk melihat limit, jalankan perintah berikut:

$ slimit-python

GMB warning wololo.png Note untuk saat ini:

  • Jalankan ketika tidak ada job user yang berjalan atau antri.
  • Sementara berlaku untuk akun perseorangan saja.
---| 6 |---
Jalankan job dengan klik tombol Submit

  • Job berakhir (Status completed) ketika:
    • Komputasi selesai atau ada error sehingga selesai prematur.
    • Job menyentuh walltime yang didefinisikan user di SBATCH time.
Kolom Status menunjukkan status jalannya job:
Status Arti
Not Submitted Job belum pernah dijalankan.
Running Job berjalan.
Queue Job mengantri dan belum berjalan.
Completed Job selesai berjalan.
Failed Job berhenti karena error atau di stop user.
Melihat alasan job yang queue:
Buka menu Apps > Active Jobs di homepage EFIRO. Ubah opsi All jobs ke Your Jobs. Klik simbol > untuk melihat status job yang pending pada kolom Reason. Arti reason lihat laman Daftar Job Reason ALELEON Supercomputer
---| 7 |---
Lihat output file komputasi pada kolom Folder Contents
  • Atau dengan membuka menu Edit Files
Kolom Folder Contents
---| 8 |---
Apabila user ingin menghentikan job yang berjalan, klik Stop
---| 9 |---
Untuk menghapus ruang job dan datanya:
  • Pilih ruang job yang akan dihapus.
  • Perhatikan opsi ini juga menghapus data di ruang job tersebut.
  • Klik menu Delete

JC delete menu.png

---

Sesi Jupyter

Menjalankan sesi interaktif Jupyter Lab atau Notebook di [interactive node].

(klik expand / kembangkan)

- Langkah Sesi Jupyter -

Efiro jupyter display.png

---| 1 |---
[Login ke web EFIRO] ALELEON Supercomputer.
---| 2 |---
Lakukan persiapan sebelum sesi Jupyter:
Untuk efisiensi sesi terkait batasan waktu dan konsumsi Core Hour:
  • Lengkapi instalasi package pada conda env yang akan dipakai.
    • GMB warning wololo.png Pastikan package jupyter dan jupyterlab telah terinstal.
  • Upload file besar lihat [Upload / Download File HOME]
    • Direktori standar sesi Jupyter adalah $HOME user.
---| 3 |---
New Pinnedapps jupyter.png Klik app Jupyter di homepage EFIRO.
  • atau menu Apps > Jupyter
---| 4 |---
Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
Choose Jupyter version
Pilih sesuai preferensi user, Jupyter Lab atau Notebook
Partition
Pilih sesuai kebutuhan:
  • torti -> interactive node CPU GMB CPU icon.png
  • tilla -> interactive node GPU GMB GPU icon.png
Number of CPU thread(s)
Alokasi core CPU, range 2 - 32
Amount of memory/RAM (GB)
Alokasi RAM dalam satuan GB, range 1 - 64
Number of GPUs (apabila pilih partition tilla)
Jumlah GPU, isi angka 1
Number of hours
Waktu maksimal sesi Jupyter, range 1 - 72
GMB warning wololo.png Apakah bisa menjalankan sesi Jupyter?
Form CPU, GPU, dan hours punya limit berdasarkan:

Untuk melihat limit:

  • Buka menu Apps > Aleleon Shell Access
  • Jalankan perintah:
$ sausage
  • Ketentuan sesi Jupyter dapat berjalan:
sisa CCH > number of CPU threads X number of hours
sisa GH > number of GPU X number of hours
Choose how to launch Jupyter
Pilih Anaconda/Mamba
Choose Anaconda/Mamba version
Pilih versi yang digunakan untuk membuat conda env user.
Conda/Mamba environment directory
Isi nama conda env user, contoh: skripsi
Software Modules
Memuat modul software diluar conda env user , isi apabila ada.
GMB warning wololo.png Bagi user yang memilih partition tilla:
Environment setup
Memuat environment variable, isi apabila ada.
Additional Jupyter arguments
Memuat argumen tambahan Jupyter, isi apabila ada.
Email address
Notifikasi email untuk status mulai dan selesainya Jupyter.
  • Isi apabila berkenan.
---| 5 |---
Klik tombol Launch untuk memulai sesi Jupyter:
  • User akan diarahkan ke halaman My Interactive Sessions
  • Tunggu hingga sesi Jupyter siap diakses.

Jupyternotebookqueue.png

---| 6 |---
Apabila status Running, klik tombol Connect to Jupyter
  • GMB warning wololo.png Sistem mulai menghitung Core Hour!
  • Sesi akan terus berjalan selama waktu sesi masih ada.
  • Untuk menghentikan sesi yang running, klik tombol Cancel

Newjupyter120124.png

---| 7 |---
Gunakan kernel Python 3 (ipykernel) untuk sesi Jupyter.
---| 8 |---
Sesi Jupyter tidak terputus ketika:
  • Koneksi user terputus saat sesi Jupyter.
  • User keluar / log out dari sesi Jupyter dan web EFIRO.

User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:

  • Menu My Interactive Sessions
  • Kolom Active interactive sessions di homepage EFIRO.

GMB warning wololo.png Ketika user keluar saat ada cell berjalan dan kembali masuk:

  • Bisa jadi cell tersebut tidak menampilkan proses jalannya komputasi.
  • Lihat cell berikutnya apakah belum / sedang / selesai berjalan.
---

Pelaporan Kendala dan Support

Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.

Wiki-pelaporankendala.jpg

Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:

support@efisonlt.com

Kontributor

EFISON turut mengucapakan terima kasih spesial kepada:

  1. [Sadasa Aacademy] untuk pengujian semua tutorial di laman ini.