Anaconda Python: Perbedaan antara revisi

Dari ALELEON by EFISON
(→‎Membuat Conda Environment dan Instalasi Package Python: mengubah judul mengakses -> mengaktifkan)
(menyelesaikan overhaul)
Baris 2: Baris 2:


[https://www.anaconda.com/ '''Anaconda'''] adalah suite katalog packages Python dan R untuk komputasi ''data science'' dan ''machine learning''.   
[https://www.anaconda.com/ '''Anaconda'''] adalah suite katalog packages Python dan R untuk komputasi ''data science'' dan ''machine learning''.   
== ''Masa Perbaikan Wiki'' ==
Wiki halaman ini sedang dalam proses perbaikan penulisan.
* Sesi perbaikan selesai ditandai dengan hilangnya pesan ini.


== '''Modul Anaconda Python''' ==
== '''Modul Anaconda Python''' ==
Baris 47: Baris 42:
# Melalui [https://mpi4py.readthedocs.io/en/stable/ '''MPI for Python (MPI4PY)''']
# Melalui [https://mpi4py.readthedocs.io/en/stable/ '''MPI for Python (MPI4PY)''']


== '''Modul NVIDIA CUDA Toolkit''' ==
User membutuhkan modul NVIDIA CUDA Toolkit untuk menjalankan Python dengan akselerasi GPU NVIDIA di ALELEON Supercomputer. Berikut adalah detail versi NVIDIA CUDA Toolkit yang tersedia secara global di ALELEON Supercomputer.
{| class="wikitable sortable"
|+Modul NVIDIA CUDA Toolkit
!Nama dan Versi
!Nama Modul
|-
|CUDA 11.2 dengan cuDNN 8.1.1
| cuda/11.2-cuDNN8.1.1
|-
|CUDA 11.6 dengan cuDNN 8.3.3
|cuda/11.6-cuDNN8.3.3
|-
|CUDA 11.8 dengan cuDNN 8.6.0
|cuda/11.8-cuDNN8.6.0
|-
|CUDA 12.0 dengan cuDNN 8.7.0
|cuda/12.0-cuDNN8.7.0
|-
| rowspan="2" |CUDA 12.1 dengan cuDNN 8.8.1 '''''[DEFAULT]'''''
|cuda/12.1-cuDNN8.8.1
|-
|cuda
|}Apabila user membutuhkan CUDA versi spesifik yang belum ada pada daftar diatas, hubungi tim admin melalui '''support@efisonlt.com''' untuk permintaan instalasi. Layanan ini bebas biaya dan akan dilakukan pada hari dan jam kerja EFISON.
=='''Alternatif Menjalankan Anaconda Python di ALELEON Supercomputer'''==
=='''Alternatif Menjalankan Anaconda Python di ALELEON Supercomputer'''==
ALELEON Supercomputer menawarkan user untuk menjalankan Anaconda Python dengan pilihan skema:   
ALELEON Supercomputer menawarkan user untuk menjalankan Anaconda Python dengan pilihan skema:   
Baris 59: Baris 78:
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node '''Compute Node''']:  
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node '''Compute Node''']:  
**CPU epyc dengan spesifikasi hingga CPU 128 core dan RAM 500GB
**CPU epyc dengan spesifikasi hingga CPU 128 core dan RAM 500GB
***Python versi MPI (RMPI) dapat berjalan paralel hingga CPU 384 core.
***Python versi MPI (MPI4PY) dapat berjalan paralel hingga CPU 384 core.
**GPU ampere dengan spesifikasi CPU 32 core, RAM 120GB, dan 2 GPU.
**GPU ampere dengan spesifikasi CPU 32 core, RAM 120GB, dan 2 GPU.
|-
|-
Baris 66: Baris 85:
|-
|-
|
|
*Menjalankan R melalui sesi interaktif via Jupyter Notebook atau Lab.
*Menjalankan Anaconda Python melalui sesi interaktif via Jupyter Notebook / Lab.
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node '''Interactive Node''']:
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node '''Interactive Node''']:
**Torti dengan spesifikasi CPU 32 core dan RAM 64GB.
**Torti dengan spesifikasi CPU 32 core dan RAM 64GB.
Baris 143: Baris 162:
|}
|}


== '''Menjalankan Python Melalui Job Submission''' ==
== '''Menjalankan Anaconda Python Melalui Job Submission''' ==
User dapat menjalankan Python melalui job submission dengan pilihan cara menjalankan komputasi:
User dapat menjalankan Anaconda Python melalui job submission dengan pilihan cara melalui tampilan terminal atau GUI web EFIRO.
 
---
===Mengecek Kredit Core Hour bagi Akun Perseorangan ===
User dengan akun perseorangan disarankan untuk selalu mengecek sisa Kredit Core Hour sebelum melakukan job submission dengan menjalankan perintah pada terminal:
$ '''sausage'''
Bagi yang login ke web EFIRO, buka terminal pada menu '''<code>Clusters</code> > <code>Aleleon Shell Access</code>'''
 
---
===Opsi menggunakan terminal - SLURM sbatch===
[[Berkas:Sbatch Terminal.png|nirbing|500x500px]]
 
Menjalankan komputasi pada terminal melalui job submission SLURM sbatch ''(klik expand atau kembangkan)''.
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Menjalankan Anaconda Python via SLURM sbatch
|-
| rowspan="2" |'''0'''
|Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke jaringan VPN ALELEON Supercomputer''']].
|-
|Login dengan SSH:
* User OS Windows dan MacOS -> <code>'''$ ssh <''username''>@aleleon.hpc'''</code>
*User OS Linux -> <code>'''$ ssh <''username''>@10.192.50.10'''</code>
|-
|'''1'''
|Siapkan Conda Environment dan package Python yang akan digunakan untuk komputasi Python user
 
* Lihat subbab '''[https://wiki.efisonlt.com/wiki/Anaconda_Python#Membuat_Conda_Environment_dan_Instalasi_Package_Python Membuat Conda Environment dan Instalasi Package Python]'''
|-
|'''2'''
|Siapkan file yang dibutuhkan untuk menjalankan komputasi user.*[[Upload File dengan Aplikasi FTP|'''User dapat melakukan upload / download file dengan bantuan aplikasi FTP''']] 
|-
| rowspan="2" |'''3'''
|Buat '''SLURM Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi dengan panduan berikut:
*Nama script dibebaskan dengan format file .sh (bash), contoh ''<code>my_job_submission.sh</code>''
*Buat script pada direktori yang sama dengan file komputasi yang akan dijalankan.
*Ikuti panduan template berikut dan petunjuk pada NOTES di dalamnya ''(klik expand atau kembangkan)''.
{| class="wikitable mw-collapsible mw-collapsed"
!Template SLURM Submit Script untuk Anaconda Python versi CPU
|-
|<syntaxhighlight lang="bash" line="1">
#!/bin/bash
 
# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : Anaconda Python versi CPU
# | Update script  : 06/10/2023
# |
# | NOTES:
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan Anaconda Python di ALELEON lihat:
# |    https://wiki.efisonlt.com/wiki/Anaconda_Python
# -------------------------------------------------------------
 
# --------------------------------------------------
# Alokasi komputasi, modul software, 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=////


===[[Menggunakan ALELEON Supercomputer via EFIRO#3A%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20Job%20Composer|EFIRO Job Composer]]===
# Definisi file untuk menampung output terminal
Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer. Berikut adalah pilihan template Python yang tersedia:
#SBATCH --output=result-%j.txt
 
# Definisi file untuk menampung output error log   
#SBATCH --error=error-%j.txt
 
# Nama Conda Environment yang digunakan untuk komputasi ini
CONDA_ENV_NAME='////'
 
# Nama input file Python dengan format file-nya
INPUT_FILE='////.py'
 
# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
 
# Mengaktifkan Conda Environment
module load Anaconda3
source activate $CONDA/$CONDA_ENV_NAME
 
# Perintah menjalankan Python
python $INPUT_FILE
</syntaxhighlight>
{| class="wikitable mw-collapsible mw-collapsed"
!Template SLURM Submit Script untuk Anaconda Python versi GPU
|-
|<syntaxhighlight lang="bash" line="1">
#!/bin/bash
 
# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : Anaconda Python versi GPU
# | Update script  : 06/10/2023
# |
# | NOTES:
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan Anaconda Python di ALELEON lihat:
# |    https://wiki.efisonlt.com/wiki/Anaconda_Python
# -------------------------------------------------------------
 
# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------
 
# Menjalankan komputasi di 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
#SBATCH --output=result-%j.txt
 
# Definisi file untuk menampung output error log   
#SBATCH --error=error-%j.txt
 
# Memuat modul NVIDIA CUDA Toolkit
# Daftar modul CUDA lihat subbab "Modul NVIDIA CUDA Toolkit" pada
# https://wiki.efisonlt.com/wiki/Anaconda_Python
module load cuda////
 
# Nama Conda Environment yang digunakan untuk komputasi ini
CONDA_ENV_NAME='////'
 
# Nama input file Python dengan format file-nya
INPUT_FILE='////.py'
 
# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
 
# Mengaktifkan Conda Environment
module load Anaconda3
source activate $CONDA/$CONDA_ENV_NAME
 
# Perintah menjalankan Python  
python $INPUT_FILE
</syntaxhighlight>
|}
|}
|-
|
{| class="wikitable"
{| class="wikitable"
|+Template Job Composer Python
! colspan="6" |Panduan nilai maksimal SBATCH''<sup>1</sup>'' untuk Anaconda Python
|-
! rowspan="2" |Skenario Menjalankan
Anaconda Python
! rowspan="2" |Berjalan di
Compute Node
! colspan="4" | Nilai maksimal SBATCH
|-
!ntasks
(CPU)
!mem
(RAM)
! gpus
(GPU)
!time
(time limit)
|-
| colspan="2" | ''Fair policy usage untuk total akumulasi job<sup>2</sup>''
|''128''
|''128GB''
|''2''
| rowspan="5" | 3-00:00:00
atau 72:00:00
|-
|Python versi CPU
|epyc (CPU)
|128
| 240GB
| 0
|-
|Python versi GPU
|ampere (GPU)
|32
|120GB
|2
|-
|Python versi MPI (MPI4PY)''<sup>3</sup>''
|epyc (CPU)
|384
|240GB
| 0
|-
|Python CPU dan MPI4PY di high-mem node''<sup>4</sup>''
|epyc (CPU)
|128
| 500GB
|0
|}'''''Keterangan:'''''
#Info SBATCH lebih detail lihat laman [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']]
#Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.#*User dapat mengajukan permintaan membuka limitasi apabila job membutuhkan alokasi lebih.
#*Info lebih detail lihat laman [[Limitasi Fair Usage ALELEON Supercomputer|'''Limitasi Fair Usage ALELEON Supercomputer''']]
#Python versi MPI (MPI4PY) mendukung komputasi paralel MPI untuk berjalan ''multi-node'' :
#*Pada jumlah ntasks >128, SLURM otomatis menjalankan job secara multi-node.
#*Dalam kaitan ini, parameter mem adalah alokasi memori RAM per-node.
#*Info lebih detail lihat laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']].
# User dapat mengalokasikan RAM hingga 500GB di high-mem node epyc.#*Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
|-
|'''4'''
|Jalankan job dengan perintah sbatch.
$ '''sbatch''' '''''<nama-SLURM-Submit-script>'''''
Contoh menjalankan nama script <code>my_job_submission.sh</code>.
$ sbatch my_job_submission.sh
|-
|'''5A'''
|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:
{| class="wikitable"
|+Daftar STATE squeue SLURM
!STATE
!Kepanjangan
!Penjelasan
|-
|R
|RUN
|Job berjalan
|-
|PD
|PENDING
|Job tertahan, lihat keterangan NODELIST(REASON)''<sup>1</sup>''
|-
|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:'''''#Kunjungi laman [[Daftar Reason NODELIST ALELEON Supercomputer|'''Daftar Reason NODELIST ALELEON Supercomputer''']].
|-
|'''5B'''
|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
|}---
===Opsi menggunakan GUI Web - EFIRO Job Composer===
[[Berkas:Efirojobcomposer3.png|nirbing|500x500px]]
 
Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer ''(klik expand atau kembangkan)''.
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Menjalankan Anaconda Python via EFIRO Job Composer
|-
| rowspan="2" |'''0'''
|Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke jaringan VPN ALELEON Supercomputer''']].
|-
|Buka alamat web '''<code>[http://aleleon.ood/ http://aleleon.ood]</code>''' kemudian masukkan username dan password user.
*Bagi user Linux, buka alamat <code>'''<nowiki>http://10.192.50.11</nowiki>'''</code>
|-
|'''1'''
|Siapkan Conda Environment dan package Python yang akan digunakan untuk komputasi Python user
 
* Lihat subbab '''[https://wiki.efisonlt.com/wiki/Anaconda_Python#Membuat_Conda_Environment_dan_Instalasi_Package_Python Membuat Conda Environment dan Instalasi Package Python]'''
|-
| '''2'''
| Buka menu dashboard EFIRO '''<code>Jobs</code> > <code>Jobs Composer</code>'''
[[Berkas:Efirojobcomposermenu.png|nirbing|300x300px|al=]]
|-
|'''3'''
|Pilih '''<code>New Jobs</code> > <code>From Template</code>'''
[[Berkas:Jcnewjobmarked.png|al=|nirbing|180x180px]]
|-
|'''4'''
|[[Berkas:Jcselecttemplate3.png|al=|nir|jmpl|''Pilih template Anaconda Python yang diinginkan. Isi atau ganti <code>'''Job Name'''</code> sesuai keinginan user, kemudian klik <code>'''Create New Job'''</code>.''|400x400px]]
{| class="wikitable"
! colspan="2" |Template Anaconda Python yang tersedia
|-
!Nama Template
!Nama Template
!Penjelasan
!Penjelasan
|-
|-
|Python Anaconda (CPU)
|Anaconda Python (CPU)
|Menjalankan Python di Compute Node CPU (Partisi epyc)
|Menjalankan Python versi CPU
|-
|-
|Python Anaconda (GPU)
|Anaconda Python (GPU)
|Menjalankan Python di Compute Node GPU (Partisi ampere)
|Menjalankan Python versi GPU
|}
|}
===[[Menggunakan ALELEON Supercomputer via Terminal#3%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20SLURM|SLURM sbatch via Terminal]]===
|-
Menjalankan komputasi pada terminal melalui job submission SLURM sbatch. Berikut adalah contoh referensi '''Submit Script''' untuk menjalankan Python baik di Compute Node CPU maupun GPU. Perhatikan bahwa Submit Script memuat nama Conda Environment yang digunakan untuk menjalankan komputasi Python user.
|'''5'''
{| class="wikitable mw-collapsible mw-collapsed"
|[[Berkas:Jcjoboption3.png|nirbing|600x600px]]
!Contoh SLURM Submit Script Python di Compute Node CPU
Gunakan menu '''<code>Edit Files</code>''' untuk upload file yang dibutuhkan'''.'''
*Laman Edit Files juga dapat melakukan view / download / edit / rename / delete file.
*''Fitur upload pada laman Edit Files '''mempunyai batasan ukuran upload 2GB per file'''.''
**''Gunakan [[Upload File dengan Aplikasi FTP|'''aplikasi FTP''']] apabila user hendak mengupload file tunggal diatas 2GB.''
Gunakan menu '''<code>Open Terminal</code>''' untuk konfigurasi Conda Environment apabila dibutuhkan
*Lihat subbab '''[https://wiki.efisonlt.com/wiki/Anaconda_Python#Membuat_Conda_Environment_dan_Instalasi_Package_Python Membuat Conda Environment dan Instalasi Package Python]'''
|-
| rowspan="2" |'''6'''
|[[Berkas:Jceditor3.png|al=|nirbing|300x300px]]
Melalui '''<code>Open Editor</code>''', lengkapi Submit Script dengan mengganti bagian yang di tandai 4 garis miring (////).
*Submit Script adalah 'formulir' untuk menjalankan job komputasi user.
*''Jangan lupa klik <code>'''Save'''</code> setiap sekali mengubah script.''
*Template ini bersifat referensi, user dapat mengubah bagian yang sekiranya perlu diubah.
|-
|-
|
|
#!/bin/bash
{| class="wikitable"
! colspan="6" |Panduan nilai maksimal SBATCH''<sup>1</sup>'' untuk Anaconda Python
# ------------------------------------------------------------------------
|-
# | Template SLURM Submit Script
! rowspan="2" |Skenario Menjalankan
# | Software       : Python - Anaconda (CPU)
Anaconda Python
# | Versi           : tergantung input user
! rowspan="2" |Berjalan di
# | Update script  r: 17/05/2023
Compute Node
# |
! colspan="4" | Nilai maksimal SBATCH
# | NOTES:  
|-
# | 1. Isi bagian yang ditandai 4 garing (////).
!ntasks
# | 2. Template ini adalah referensi - user dapat mengubah bagian yang
(CPU)
# |   sekiranya perlu diubah.
!mem
# | 3. Panduan mengisi alokasi komputasi (SBATCH) menurut spesifikasi
(RAM)
# |   ALELEON Supercomputer lihat:
! gpus
# |   <nowiki>https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer</nowiki>
(GPU)
# ------------------------------------------------------------------------
!time
(time limit)
# --------------------------------------------------
|-
# Alokasi komputasi, modul software, dan file input
| colspan="2" | ''Fair policy usage untuk total akumulasi job<sup>2</sup>''
# --------------------------------------------------
|''128''
|''128GB''
# Alokasi jumlah 1 compute node
|''2''
#SBATCH --nodes=1
| rowspan="5" | 3-00:00:00
atau 72:00:00
# Alokasi jumlah core thread CPU
|-
#SBATCH --ntasks=////
|Python versi CPU
|epyc (CPU)
# Alokasi jumlah memori RAM (satuan GB)
|128
#SBATCH --mem=////GB
| 240GB
| 0
# Alokasi limit waktu menjalankan job, format HH:MM:SS atau D-HH:MM:SS
|-
#SBATCH --time=////
|Python versi GPU
|ampere (GPU)
# Definisi file untuk menampung output terminal
|32
#SBATCH --output=result-%j.txt
|120GB
|2
# Definisi file untuk menampung output error log   
|-
#SBATCH --error=error-%j.txt
|Python versi MPI (MPI4PY)''<sup>3</sup>''
|epyc (CPU)
# Nama Conda Environment yang digunakan untuk komputasi ini
|384
CONDA_ENV_NAME='////'
|240GB
| 0
# Nama input file Python dengan format file-nya
|-
INPUT_FILE='////.py'  
|Python CPU dan MPI4PY di high-mem node''<sup>4</sup>''
|epyc (CPU)
# -------------------------------------------------
|128
# RUN SCRIPT
| 500GB
# -------------------------------------------------
|0
|}
# Mengaktifkan Conda Environment
'''''Keterangan:'''''
module load Anaconda3
#Info SBATCH lebih detail lihat laman [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']]
source activate $CONDA/$CONDA_ENV_NAME
#Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.#*User dapat mengajukan permintaan membuka limitasi apabila job membutuhkan alokasi lebih.
#*Info lebih detail lihat laman [[Limitasi Fair Usage ALELEON Supercomputer|'''Limitasi Fair Usage ALELEON Supercomputer''']]
# Perintah menjalankan Python
#Python versi MPI (MPI4PY) mendukung komputasi paralel MPI untuk berjalan ''multi-node'' :
python $INPUT_FILE
#*Pada jumlah ntasks >128, SLURM otomatis menjalankan job secara multi-node.
#*Dalam kaitan ini, parameter mem adalah alokasi memori RAM per-node.
#*Info lebih detail lihat laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']].
# User dapat mengalokasikan RAM hingga 500GB di high-mem node epyc.#*Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
|-
|'''7A'''
|Jalankan job dengan klik tombol '''<code>Submit</code>'''.
[[Berkas:Jcsubmit2.png|al=|nirbing|600x600px]]
 
Berikut penjelasan kolom '''<code>Status</code>,''' pantau dengan refresh halaman job''':'''
{| class="wikitable"
!Status
!Arti
|-
|Not Submitted
|Job belum pernah dijalankan.
|-
|Running
|Job berjalan.
|-
|Queue
|Job mengantri dan belum berjalan. Untuk melihat detail status antrian:
*Buka <code>'''Jobs > Active Jobs'''</code> pada dashboard EFIRO.
*Ubah opsi ke <code>'''Your Jobs'''</code> sesuai gambar dibawah ini.
*Klik simbol '''>''' untuk melihat detail job submission.
*Lihat isi kolom '''Reason'''.**Arti Reason lihat laman '''[[Daftar Reason NODELIST ALELEON Supercomputer]].'''
[[Berkas:Efiroqueueedit.png|al=|jmpl|''Halaman Active Jobs. Ubah opsi '''<code>Your jobs</code>''' untuk melihat status job user saja. Klik simbol '''>''' untuk melihat detail job submission.''|kiri]]
|-
|Completed
|Job selesai berjalan.
|-
|Failed
|Job berhenti di tengah jalan, bisa karena di Stop atau Delete oleh user.
|}
|}
|-
|'''7B'''
|Apabila ingin menghentikan job yang tengah berjalan, klik tombol '''<code>Stop</code>'''.
[[Berkas:Stop.png|nirbing|600x600px]]
|-
|'''8A'''
|Hasil output job dapat dilihat pada kolom '''<code>Folder Contents</code>''' atau membuka halaman '''<code>Edit Files</code>.'''[[Berkas:Jcfoldercontentsedit.png|al=|nir|jmpl|''User dapat melihat semua file output yang keluar di kolom '''<code>Folder Contents</code>'''.'']][[Berkas:Jcjoboption3.png|nir|jmpl|''atau dengan membuka menu '''<code>Edit Files</code>'''.'']]
|-
|'''8B'''
|User dapat '''menjalankan ulang ruang job yang sama''' dengan mengklik kembali tombol '''<code>Submit</code>'''.
|}---
==='''Notifikasi Status Jalannya Komputasi via email'''===
SLURM ALELEON Supercomputer dapat mengirim notifikasi email kepada user dengan nama "Jojo" untuk mengabarkan status berjalannya job komputasi user. Silahkan tambahan SBATCH berikut pada Submit Script apabila user ingin menerima notifikasi email dari SLURM:<syntaxhighlight lang="bash">
#SBATCH --mail-user=<alamat-email-user>
#SBATCH --mail-type=BEGIN,END,FAIL
</syntaxhighlight>SBATCH mail-type mengatur konten email notifikasi SLURM dengan pilihan opsi yang sekiranya berguna untuk user:
*BEGIN -> notifikasi job sudah mulai
*END -> notifikasi job sudah selesai beserta cuplikan 20 baris terakhir dari file SBATCH output dan error.
*FAIL -> notifikasi apabila job gagal berjalan atau berhenti tidak sewajarnya.
*TIME_LIMIT_50 -> job telah berjalan dengan durasi waktu 50% time limit.
*TIME_LIMIT_80 -> job telah berjalan dengan durasi waktu 80% time limit.
=='''Menjalankan Anaconda Python dengan Sesi Interaktif Jupyter'''==
Terdapat 2 langkah untuk menjalankan sesi interaktif Jupyter dengan Conda Environment User yaitu:
#Melakukan '''instalasi pip Jupyter''' pada Conda Environment yang akan digunakan untuk sesi Jupyter.
#Memulai sesi interaktif Jupyter Notebook atau Lab pada web EFIRO.
---
=== Instalasi pip Jupyter pada Conda Environment ===
Berikut adalah langkah instalasi pip Jupyter pada Conda Environment user ''(klik expand atau kembangkan)''.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Contoh SLURM Submit Script Python di Compute Node GPU
! colspan="2" |Langkah Instalasi pip Jupyter pada Conda Environment User
|-
|'''0'''
|Instalasi package dilakukan melalui '''terminal'''.
*Bagi user yang login ke web EFIRO, buka menu '''<code>Clusters</code> > <code>Aleleon Shell Access</code>'''.
[[Berkas:Shellaccess.png|nirbing|200x200px]]
|-
|-
|
|'''1'''
#!/bin/bash
|Aktifkan Conda Environment yang akan digunakan untuk sesi Jupyter
  $ module load Anaconda3
# ------------------------------------------------------------------------
  $ source activate $CONDA/'''''<nama-conda-environment>'''''
# | Template SLURM Submit Script
|-
# | Software       : Python - Anaconda (GPU)
|'''2'''
# | Versi           : tergantung input user
|Lakukan pip install jupyter dan jupyterlab
# | Update script  r: 17/05/2023
  $ pip install jupyter
# |
  $ pip install jupyterlab
# | NOTES:
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini adalah referensi - user dapat mengubah bagian yang  
  # |    sekiranya perlu diubah.
  # | 3. Panduan mengisi alokasi komputasi (SBATCH) menurut spesifikasi
# |    ALELEON Supercomputer lihat:
# |    <nowiki>https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer</nowiki>
# ------------------------------------------------------------------------
# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------
# Menjalankan komputasi di Partisi ampere
#SBATCH --partition=ampere
# Alokasi jumlah GPU
#SBATCH --gpus=////
# 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
#SBATCH --output=result-%j.txt
# Definisi file untuk menampung output error log   
#SBATCH --error=error-%j.txt
# Nama Conda Environment yang digunakan untuk komputasi ini
CONDA_ENV_NAME='////'
# Nama input file Python dengan format file-nya
INPUT_FILE='////.py'
# Memuat modul NVIDIA CUDA default atau terbaru
module load cuda
# Apabila membutuhkan CUDA versi lain, lihat daftar modul CUDA: 
# [[Python#Daftar%20Modul%20NVIDIA%20CUDA%20Toolkit|#Daftar Modul NVIDIA CUDA Toolkit]]
   
# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
# Mengaktifkan Conda Environment
module load Anaconda3
source activate $CONDA/$CONDA_ENV_NAME
# Perintah menjakankan Python
  python $INPUT_FILE
|}
|}
---


=== '''Notifikasi Status Jalannya Job Submission via email''' ===
=== Memulai Sesi Jupyter ===
SLURM ALELEON Supercomputer dapat mengirim notifikasi email kepada user '''untuk mengabarkan apabila job user sudah berjalan atau selesai'''. SLURM ALELEON Supercomputer menggunakan nama email '''Jojo''' untuk mengirim notifikasi email.
 
Silahkan tambahan SBATCH berikut pada SLURM Submit Script (dapat ditambahkan setelah SBATCH error) apabila user ingin menerima notifikasi email dari SLURM:
#SBATCH --mail-user='''<''alamat-email-user''>'''
#SBATCH --mail-type=begin
#SBATCH --mail-type=end
*'''mail-user'''
**Alamat email user untuk menerima notifikasi SLURM
*'''mail-type=begin'''
**Notifikasi email yang menginfokan job sudah berjalan.
*'''mail-type=end'''
**Notifikasi email yang menginfokan job sudah selesai.
**Sekaligus memberikan cuplikan 20 baris terakhir dari file output SBATCH output dan error job user.
=='''Menjalankan Python dengan Sesi Interaktif Jupyter'''==
Berikut adalah langkah untuk memulai sesi Jupyter dengan Conda Environment yang dibuat user:
Berikut adalah langkah untuk memulai sesi Jupyter dengan Conda Environment yang dibuat user:
{| class="wikitable"
{| class="wikitable"
! colspan="2" |
! colspan="2" |Memulai Sesi Interaktif Jupyter dengan Conda Environment User
=== Memulai Sesi Interaktif Jupyter ===
|-
|-
|'''0A'''
| rowspan="2" |'''0'''
|'''Login ke EFIRO''' untuk mengakses sesi interaktif Jupyter:
|Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke jaringan VPN ALELEON Supercomputer''']].
 
* Buka alamat web '''<code><nowiki>http://aleleon.ood</nowiki></code>''' kemudian masukkan username dan password user.
** Bagi user Linux, buka alamat <code>'''<nowiki>http://10.192.50.11</nowiki>'''</code>
|-
|-
|'''0B'''
|Buka alamat web '''<code><nowiki>http://aleleon.ood</nowiki></code>''' kemudian masukkan username dan password user.
|Pastikan user sudah [https://wiki.efisonlt.com/wiki/Python#Instalasi_pip_Jupyter '''membuat Conda Environment dengan package Jupyter Notebook dan Lab didalamnya'''].
*Bagi user Linux, buka alamat <code>'''<nowiki>http://10.192.50.11</nowiki>'''</code>
|-
|-
|'''1'''
|'''1'''
|Buka menu '''<code>Interactive Apps</code>''' kemudian user bebas memilih menggunakan Jupyter Notebook atau Lab.
|Bagi akun perseorangan, disarankan untuk mengecek sisa CPU Core Hour sebelum memulai sesi Jupyter ini.
[[Berkas:Shellaccess.png|nirbing|200x200px]]
*Buka terminal melalui menu '''<code>Clusters</code> > <code>Aleleon Shell Access</code>'''.
*Jalankan perintah
$ '''sausage'''
|-
|'''2'''
|Buka menu '''<code>Interactive Apps</code>'''
* Silahkan pilih Jupyter Notebook atau Lab sesuai referensi pribadi user.
 
[[Berkas:Efirojupyternotebooklab.png|nirbing|238x238px]]
[[Berkas:Efirojupyternotebooklab.png|nirbing|238x238px]]
|-
|-
|'''2'''
|'''3'''
|User mengisi formulir untuk memulai sesi Jupyter Notebook. Terdapat dua pilihan pengisian formulir yaitu menggunakan '''Partisi Torti (CPU)''' atau '''Partisi Tilla (dengan akselerasi GPU)'''.
|Isi formulir untuk memulai sesi Jupyter sesuai pilihan panduan berikut ''(klik expand atau kembangkan)'':
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Panduan Formulir Menggunakan Partisi Torti (CPU)
!Panduan Formulir Menggunakan Torti (Interactive Node CPU)
|-
|-
|
|
Baris 332: Baris 662:
**Pilih '''torti'''
**Pilih '''torti'''
*'''Number of CPU Cores'''
*'''Number of CPU Cores'''
**Alokasi jumlah core CPU yang akan digunakan, isi sesuai keinginan user
**Alokasi jumlah core CPU yang akan digunakan
**Minimal: '''1'''
**Minimal: '''1''', maksimal: '''32'''
**Maksimal: '''32'''
*'''Number of GPUs'''
*'''Number of GPUs'''
**''kosongkan''
**''kosongkan''
*'''Number of hours'''
*'''Number of hours'''
**Durasi sesi Jupyter dalam satuan jam, isi sesuai keinginan user
**Durasi sesi Jupyter dalam satuan jam
**Minimal: '''1'''
**Minimal: '''1''', maksimal: '''72'''
**Maksimal: '''72'''
*'''Anaconda Selection'''
*'''Anaconda Selection'''
**''Pilih versi terbaru''
**''Pilih versi terbaru''
Baris 351: Baris 679:
**''kosongkan''
**''kosongkan''
*'''Email Address'''  
*'''Email Address'''  
**Sistem akan mengirim notifikasi ke email user saat sesi Jupyter Notebook sudah siap diakses.
**Sistem akan mengirim notifikasi ke email user saat sesi Jupyter sudah siap diakses.
**Apabila membutuhkan, ''isi dengan email user''
**Apabila membutuhkan, ''isi dengan email user''
|}
|}
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Panduan Formulir Menggunakan Partisi Tilla (GPU)
!Panduan Formulir Menggunakan Tilla (Interactive Node GPU)
|-
|-
|
|
Baris 361: Baris 689:
**Pilih '''tilla'''
**Pilih '''tilla'''
*'''Number of CPU Cores'''
*'''Number of CPU Cores'''
**Alokasi jumlah core CPU yang akan digunakan, isi sesuai keinginan user
**Alokasi jumlah core CPU yang akan digunakan
**Minimal: '''1'''
**Minimal: '''1''', maksimal: '''32'''
**Maksimal: '''32'''
*'''Number of GPUs'''
*'''Number of GPUs'''
**Isi: '''1'''
**Isi: '''1'''
*'''Number of hours'''
*'''Number of hours'''
**Durasi sesi Jupyter Notebook dalam satuan jam, isi sesuai keinginan user
**Durasi sesi Jupyter dalam satuan jam
**Minimal: '''1'''
**Minimal: '''1''', maksimal: '''72'''
**Maksimal: '''72'''
*'''Anaconda Selection'''
*'''Anaconda Selection'''
**''Pilih versi terbaru''
**''Pilih versi terbaru''
Baris 378: Baris 704:
**Pada bagian ini user memasukkan nama modul NVIDIA CUDA. Terdapat dua alternatif:  
**Pada bagian ini user memasukkan nama modul NVIDIA CUDA. Terdapat dua alternatif:  
***Mengisi nama modul CUDA versi terbaru yaitu '''<code>cuda</code>'''
***Mengisi nama modul CUDA versi terbaru yaitu '''<code>cuda</code>'''
***memilih modul CUDA versi lainnya apabila dibutuhkan oleh package Python user.
***Memilih modul CUDA versi lainnya apabila dibutuhkan oleh package Python user.
***Daftar modul CUDA lihat '''[[Python#Daftar Modul NVIDIA CUDA Toolkit|subbab Daftar Modul NVIDIA CUDA Toolkit]]'''.
****Daftar modul CUDA lihat subbab '''Daftar Modul NVIDIA CUDA Toolkit'''.


*'''Environment Setup'''
*'''Environment Setup'''
**''kosongkan''
**''kosongkan''
*'''Email Address'''  
*'''Email Address'''  
**Sistem akan mengirim notifikasi ke email user saat sesi Jupyter Notebook sudah siap diakses.
**Sistem akan mengirim notifikasi ke email user saat sesi Jupyter sudah siap diakses.
**Apabila membutuhkan, ''isi dengan email user''
**Apabila membutuhkan, ''isi dengan email user''
|-
|
|}
|}
|-
|-
|'''3'''
|'''4'''
|Apabila formulir sudah terisi, klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter. User akan diarahkan ke halaman '''<code>My Interactive Sessions</code>'''. Tunggu hingga sesi Jupyter user siap diakses.[[Berkas:JNqueue.png|nir|jmpl|Status sesi Jupyter mengantri menunggu alokasi hardware]]
|Apabila formulir sudah terisi, klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter.
*User akan diarahkan ke halaman '''<code>My Interactive Sessions</code>'''.
*Tunggu hingga sesi Jupyter siap diakses.
[[Berkas:JNqueue.png|nir|jmpl|''Status sesi Jupyter mengantri menunggu alokasi hardware'']]
{| class="wikitable"
|'''Perhatian:''' Sesi akan tertahan di antrian apabila:
*Number of CPU cores * Number of Hour yang dialokasikan lebih besar dari sisa CPU Core Hour user.
*Number of GPUs * Number of Hour yang dialokasikan lebih besar dari sisa GPU Hour user.
|}
|-
|-
|'''4A'''
|'''5'''
|Apabila status menunjukkan Running atau kolom berwarna hijau, klik <code>'''Connect to Jupyter'''</code>. Perlu diperhatikan bahwa '''sistem mulai menghitung Kredit Core Hour''' saat status Jupyter menunjukkan '''Running'''.[[Berkas:JNrun.png|nir|jmpl|Sesi Jupyter siap diakses. ]]
|Apabila status menunjukkan '''Running''' atau kolom berwarna hijau, klik <code>'''Connect to Jupyter'''</code>.[[Berkas:JNrun.png|nir|jmpl|''Sesi Jupyter siap diakses.'']]
=== Menghentikan Sesi Interaktif Jupyter ===
{| class="wikitable"
User dapat menghentikan sesi Jupyter yang sedang berjalan dengan klik tombol '''<code>Delete</code>'''.
|'''''Perhatian:'''''
|-
*Sistem mulai menghitung CPU Core Hour saat status sesi Jupyter menunjukkan running.
|'''4B'''
|User dapat kembali mengunjungi halaman sesi '''<code>My Interactive Sessions</code>''' melalui menu di dasboard EFIRO.
[[Berkas:Interactivesession.png|nirbing|500x500px]]
|}
|}
== '''Daftar Modul NVIDIA CUDA Toolkit''' ==
User membutuhkan modul NVIDIA CUDA Toolkit untuk menjalankan Python dengan akselerasi GPU NVIDIA di ALELEON Supercomputer. Praktek pada umumnya adalah selalu menggunakan CUDA Toolkit versi terbaru atau modul default di ALELEON Supercomputer dengan nama '''<code>cuda</code>'''.
Akan tetapi terkadang ada package Python yang membutuhkan versi CUDA spesifik. Berikut adalah daftar lengkap modul CUDA di ALELEON Supercomputer untuk memenuhi kebutuhan tersebut:
{| class="wikitable sortable"
|+Daftar Modul NVIDIA CUDA di ALELEON Supercomputer
!Nama dan Versi
!Nama Modul
|-
|-
|CUDA 11.2 dengan cuDNN 8.1.1
|'''6'''
| cuda/11.2-cuDNN8.1.1
|Pilih Notebook Python 3 untuk memulai sesi notebook Python 3 baik di Jupyter Notebook dan Lab.[[Berkas:JNkernel.png|nir|jmpl|''Gunakan Notebook Python 3 untuk menjalankan kernel Conda Environment user di Jupyter Notebook''|al=|281x281px]][[Berkas:Rjupyterlab.png|nir|jmpl|225x225px|''Gunakan Notebook Python 3 untuk menjalankan kernel Conda Environment user di Jupyter Lab'']]
|-
|-
|CUDA 11.6 dengan cuDNN 8.3.3
|'''7A'''
|cuda/11.6-cuDNN8.3.3
|User dapat menghentikan sesi Jupyter yang sedang berjalan dengan klik tombol '''<code>Delete</code>'''[[Berkas:JNrun.png|nir|jmpl|''Klik tombol '''<code>Delete</code>''' untuk menghentikan sesi Jupyter yang sedang berjalan'']]
|-
|-
|CUDA 11.8 dengan cuDNN 8.6.0
|'''7B'''
|cuda/11.8-cuDNN8.6.0
|User dapat kembali mengunjungi halaman  '''<code>My Interactive Sessions</code>''' melalui dasboard EFIRO.
|-
[[Berkas:Interactivesession.png|nirbing|500x500px]]
|CUDA 12.0 dengan cuDNN 8.7.0
|}
|cuda/12.0-cuDNN8.7.0
|-
| rowspan="2" |CUDA 12.1 dengan cuDNN 8.8.1 '''''[DEFAULT]'''''
|cuda/12.1-cuDNN8.8.1
|-
|cuda
|}Apabila user membutuhkan CUDA versi spesifik yang belum ada pada daftar diatas, hubungi tim admin melalui '''support@efisonlt.com''' untuk permintaan instalasi. Layanan ini bebas biaya dan akan dilakukan pada hari dan jam kerja EFISON.

Revisi per 24 Oktober 2023 04.10

Anaconda adalah suite katalog packages Python dan R untuk komputasi data science dan machine learning.

Modul Anaconda Python

Berikut adalah detail versi Anaconda yang tersedia secara global di ALELEON Supercomputer dimana menggunakan Python 3 sebagai standar.

Modul Anaconda
Versi Nama modul Versi Python

default

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

Anaconda 3 2020.11 Anaconda3/2020.11 3.8.5 V V V1 V2
Anaconda 3 2021.05 Anaconda3/2021.05 3.8.8
Anaconda 3 2022.05 Anaconda3/2022.05

atau Anaconda3

3.9.12

Keterangan:

  1. Melalui package Python yang mendukung OpenMP seperti Cython, Numba, Pythran, PyPy, dll.
  2. Melalui MPI for Python (MPI4PY)

Modul NVIDIA CUDA Toolkit

User membutuhkan modul NVIDIA CUDA Toolkit untuk menjalankan Python dengan akselerasi GPU NVIDIA di ALELEON Supercomputer. Berikut adalah detail versi NVIDIA CUDA Toolkit yang tersedia secara global di ALELEON Supercomputer.

Modul NVIDIA CUDA Toolkit
Nama dan Versi Nama Modul
CUDA 11.2 dengan cuDNN 8.1.1 cuda/11.2-cuDNN8.1.1
CUDA 11.6 dengan cuDNN 8.3.3 cuda/11.6-cuDNN8.3.3
CUDA 11.8 dengan cuDNN 8.6.0 cuda/11.8-cuDNN8.6.0
CUDA 12.0 dengan cuDNN 8.7.0 cuda/12.0-cuDNN8.7.0
CUDA 12.1 dengan cuDNN 8.8.1 [DEFAULT] cuda/12.1-cuDNN8.8.1
cuda

Apabila user membutuhkan CUDA versi spesifik yang belum ada pada daftar diatas, hubungi tim admin melalui support@efisonlt.com untuk permintaan instalasi. Layanan ini bebas biaya dan akan dilakukan pada hari dan jam kerja EFISON.

Alternatif Menjalankan Anaconda Python di ALELEON Supercomputer

ALELEON Supercomputer menawarkan user untuk menjalankan Anaconda Python dengan pilihan skema:

Efirojobcomposer3.png
---

Menjalankan Anaconda Python melalui Job Submission

  • Menjalankan file Python siap jalan melalui scheduler SLURM.
  • Tidak dapat menjalankan file ipynb dimana harus dikonversi ke file Python.
  • Berjalan di Compute Node:
    • CPU epyc dengan spesifikasi hingga CPU 128 core dan RAM 500GB
      • Python versi MPI (MPI4PY) dapat berjalan paralel hingga CPU 384 core.
    • GPU ampere dengan spesifikasi CPU 32 core, RAM 120GB, dan 2 GPU.
Rjupyterlab.png
---

Menjalankan Anaconda Python dengan sesi interaktif Jupyter

  • Menjalankan Anaconda Python melalui sesi interaktif via Jupyter Notebook / Lab.
  • Berjalan di Interactive Node:
    • Torti dengan spesifikasi CPU 32 core dan RAM 64GB.
    • Tilla dengan spesifikasi CPU 32 core, RAM 64GB, dan 1 GPU.

Membuat Conda Environment dan Instalasi Package Python

ALELEON Supercomputer mensyaratkan user membuat Conda Environment untuk menjalankan komputasi Python via Anaconda.

  • Conda Environment adalah 'ruang isolasi' untuk menampung instalasi package Python masing-masing user.
  • User membuat Conda Environment dan melakukan instalasi package Python secara mandiri.
  • Kegiatan membuat Conda Env dan instalasi dilakukan pada Login Node sehingga tidak mengurangi Kredit Core Hour user.

Berikut adalah langkah membuat Conda Environment di ALELEON Supercomputer:

Membuat Conda Environment

0 Instalasi package dilakukan melalui terminal.
  • Bagi user yang login ke web EFIRO, buka menu Clusters > Aleleon Shell Access.

Shellaccess.png

1 Aktifkan modul Anaconda, tim admin EFISON menyarankan menggunakan Anaconda terbaru:
$ module load Anaconda3

Apabila ingin menggunakan versi Anaconda lainnya, lihat subbab Modul Anaconda.

2

Membuat Conda Environment

Buat Conda Environment secara default di direktori HOME dengan format perintah:

$ conda create --name <nama-conda-environment> pip

Contoh:
$ conda create --name kerjaanskripsi pip
3

Mengaktifkan Conda Environment

Aktifkan Conda Environment dengan format source activate berikut:

 $ source activate $CONDA/<nama-conda-environment

Contoh:
$ source activate $CONDA/kerjaanskripsi

Conda Environment aktif ditandai dengan tulisan nama env pada bash terminal seperti ini:

(kerjaanskripsi) [wololo@login ~]$
4

Instalasi Package Python melalui pip

Lakukan instalasi package Python (seperti Tensorflow, PyTorch, Numpy, dll) yang dibutuhkan dengan pip

  • Lakukan instalasi setelah mengaktifkan Conda Environment yang akan dipakai untuk komputasi.
  • Pip digunakan untuk memastikan instalasi package terisolasi pada Conda Env dan akun user.
$ pip install <nama-package-Python>
5

Menonaktifkan Conda Environment

User dapat menonaktifkan Conda Environment yang sedang aktif dengan perintah:

$ conda deactivate

Mengaktifkan Kembali Conda Environment User

User dapat kembali mengaktifkan Conda Environment yang dibuat dengan langkah 1 dan 3 diatas:

$ module load Anaconda3
$ source activate $CONDA/<nama-conda-environment>

User dapat melihat daftar nama Conda Environment yang sebelumnya dibuat dengan perintah

$ conda-env list

Menghapus Conda Environment

User dapat menghapus Conda Environment dengan format perintah:

$ conda remove -n <nama-conda-environment> --all

Menjalankan Anaconda Python Melalui Job Submission

User dapat menjalankan Anaconda Python melalui job submission dengan pilihan cara melalui tampilan terminal atau GUI web EFIRO.

---

Mengecek Kredit Core Hour bagi Akun Perseorangan

User dengan akun perseorangan disarankan untuk selalu mengecek sisa Kredit Core Hour sebelum melakukan job submission dengan menjalankan perintah pada terminal:

$ sausage

Bagi yang login ke web EFIRO, buka terminal pada menu Clusters > Aleleon Shell Access

---

Opsi menggunakan terminal - SLURM sbatch

Sbatch Terminal.png

Menjalankan komputasi pada terminal melalui job submission SLURM sbatch (klik expand atau kembangkan).

Langkah Menjalankan Anaconda Python via SLURM sbatch
0 Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Login dengan SSH:
  • User OS Windows dan MacOS -> $ ssh <username>@aleleon.hpc
  • User OS Linux -> $ ssh <username>@10.192.50.10
1 Siapkan Conda Environment dan package Python yang akan digunakan untuk komputasi Python user
2 Siapkan file yang dibutuhkan untuk menjalankan komputasi user.*User dapat melakukan upload / download file dengan bantuan aplikasi FTP
3 Buat SLURM Submit Script yaitu 'formulir' untuk menjalankan job komputasi dengan panduan berikut:
  • Nama script dibebaskan dengan format file .sh (bash), contoh my_job_submission.sh
  • Buat script pada direktori yang sama dengan file komputasi yang akan dijalankan.
  • Ikuti panduan template berikut dan petunjuk pada NOTES di dalamnya (klik expand atau kembangkan).
Template SLURM Submit Script untuk Anaconda Python versi CPU
#!/bin/bash

# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : Anaconda Python versi CPU
# | Update script   : 06/10/2023
# |
# | NOTES: 
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan Anaconda Python di ALELEON lihat: 
# |    https://wiki.efisonlt.com/wiki/Anaconda_Python
# -------------------------------------------------------------

# --------------------------------------------------
# Alokasi komputasi, modul software, 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
#SBATCH --output=result-%j.txt

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

# Nama Conda Environment yang digunakan untuk komputasi ini 
CONDA_ENV_NAME='////' 

# Nama input file Python dengan format file-nya 
INPUT_FILE='////.py'

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------

# Mengaktifkan Conda Environment 
module load Anaconda3 
source activate $CONDA/$CONDA_ENV_NAME 

# Perintah menjalankan Python 
python $INPUT_FILE
Template SLURM Submit Script untuk Anaconda Python versi GPU
#!/bin/bash

# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : Anaconda Python versi GPU
# | Update script   : 06/10/2023
# |
# | NOTES: 
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan Anaconda Python di ALELEON lihat: 
# |    https://wiki.efisonlt.com/wiki/Anaconda_Python
# -------------------------------------------------------------

# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------

# Menjalankan komputasi di 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
#SBATCH --output=result-%j.txt

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

# Memuat modul NVIDIA CUDA Toolkit 
# Daftar modul CUDA lihat subbab "Modul NVIDIA CUDA Toolkit" pada
# https://wiki.efisonlt.com/wiki/Anaconda_Python 
module load cuda////

# Nama Conda Environment yang digunakan untuk komputasi ini 
CONDA_ENV_NAME='////' 

# Nama input file Python dengan format file-nya 
INPUT_FILE='////.py'

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------

# Mengaktifkan Conda Environment 
module load Anaconda3 
source activate $CONDA/$CONDA_ENV_NAME 

# Perintah menjalankan Python 
python $INPUT_FILE
Panduan nilai maksimal SBATCH1 untuk Anaconda Python
Skenario Menjalankan

Anaconda Python

Berjalan di

Compute Node

Nilai maksimal SBATCH
ntasks

(CPU)

mem

(RAM)

gpus

(GPU)

time

(time limit)

Fair policy usage untuk total akumulasi job2 128 128GB 2 3-00:00:00

atau 72:00:00

Python versi CPU epyc (CPU) 128 240GB 0
Python versi GPU ampere (GPU) 32 120GB 2
Python versi MPI (MPI4PY)3 epyc (CPU) 384 240GB 0
Python CPU dan MPI4PY di high-mem node4 epyc (CPU) 128 500GB 0
Keterangan:
  1. Info SBATCH lebih detail lihat laman Submit Script ALELEON Supercomputer
  2. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.#*User dapat mengajukan permintaan membuka limitasi apabila job membutuhkan alokasi lebih.
  3. Python versi MPI (MPI4PY) mendukung komputasi paralel MPI untuk berjalan multi-node :
    • Pada jumlah ntasks >128, SLURM otomatis menjalankan job secara multi-node.
    • Dalam kaitan ini, parameter mem adalah alokasi memori RAM per-node.
    • Info lebih detail lihat laman MPI ALELEON Supercomputer.
  4. User dapat mengalokasikan RAM hingga 500GB di high-mem node epyc.#*Tambahkan parameter #SBATCH --nodelist=epyc001
4 Jalankan job dengan perintah sbatch.
$ sbatch <nama-SLURM-Submit-script>

Contoh menjalankan nama script my_job_submission.sh.

$ sbatch my_job_submission.sh
5A 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:#Kunjungi laman Daftar Reason NODELIST ALELEON Supercomputer.
5B 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

---

Opsi menggunakan GUI Web - EFIRO Job Composer

Efirojobcomposer3.png

Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer (klik expand atau kembangkan).

Langkah Menjalankan Anaconda Python via EFIRO Job Composer
0 Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Buka alamat web http://aleleon.ood kemudian masukkan username dan password user.
  • Bagi user Linux, buka alamat http://10.192.50.11
1 Siapkan Conda Environment dan package Python yang akan digunakan untuk komputasi Python user
2 Buka menu dashboard EFIRO Jobs > Jobs Composer

3 Pilih New Jobs > From Template

4
Pilih template Anaconda Python yang diinginkan. Isi atau ganti Job Name sesuai keinginan user, kemudian klik Create New Job.
Template Anaconda Python yang tersedia
Nama Template Penjelasan
Anaconda Python (CPU) Menjalankan Python versi CPU
Anaconda Python (GPU) Menjalankan Python versi GPU
5 Jcjoboption3.png

Gunakan menu Edit Files untuk upload file yang dibutuhkan.

  • Laman Edit Files juga dapat melakukan view / download / edit / rename / delete file.
  • Fitur upload pada laman Edit Files mempunyai batasan ukuran upload 2GB per file.
    • Gunakan aplikasi FTP apabila user hendak mengupload file tunggal diatas 2GB.

Gunakan menu Open Terminal untuk konfigurasi Conda Environment apabila dibutuhkan

6

Melalui Open Editor, lengkapi Submit Script dengan mengganti bagian yang di tandai 4 garis miring (////).

  • Submit Script adalah 'formulir' untuk menjalankan job komputasi user.
  • Jangan lupa klik Save setiap sekali mengubah script.
  • Template ini bersifat referensi, user dapat mengubah bagian yang sekiranya perlu diubah.
Panduan nilai maksimal SBATCH1 untuk Anaconda Python
Skenario Menjalankan

Anaconda Python

Berjalan di

Compute Node

Nilai maksimal SBATCH
ntasks

(CPU)

mem

(RAM)

gpus

(GPU)

time

(time limit)

Fair policy usage untuk total akumulasi job2 128 128GB 2 3-00:00:00

atau 72:00:00

Python versi CPU epyc (CPU) 128 240GB 0
Python versi GPU ampere (GPU) 32 120GB 2
Python versi MPI (MPI4PY)3 epyc (CPU) 384 240GB 0
Python CPU dan MPI4PY di high-mem node4 epyc (CPU) 128 500GB 0

Keterangan:

  1. Info SBATCH lebih detail lihat laman Submit Script ALELEON Supercomputer
  2. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.#*User dapat mengajukan permintaan membuka limitasi apabila job membutuhkan alokasi lebih.
  3. Python versi MPI (MPI4PY) mendukung komputasi paralel MPI untuk berjalan multi-node :
    • Pada jumlah ntasks >128, SLURM otomatis menjalankan job secara multi-node.
    • Dalam kaitan ini, parameter mem adalah alokasi memori RAM per-node.
    • Info lebih detail lihat laman MPI ALELEON Supercomputer.
  4. User dapat mengalokasikan RAM hingga 500GB di high-mem node epyc.#*Tambahkan parameter #SBATCH --nodelist=epyc001
7A Jalankan job dengan klik tombol Submit.

Berikut penjelasan kolom Status, pantau dengan refresh halaman job:

Status Arti
Not Submitted Job belum pernah dijalankan.
Running Job berjalan.
Queue Job mengantri dan belum berjalan. Untuk melihat detail status antrian:
  • Buka Jobs > Active Jobs pada dashboard EFIRO.
  • Ubah opsi ke Your Jobs sesuai gambar dibawah ini.
  • Klik simbol > untuk melihat detail job submission.
  • Lihat isi kolom Reason.**Arti Reason lihat laman Daftar Reason NODELIST ALELEON Supercomputer.
Halaman Active Jobs. Ubah opsi Your jobs untuk melihat status job user saja. Klik simbol > untuk melihat detail job submission.
Completed Job selesai berjalan.
Failed Job berhenti di tengah jalan, bisa karena di Stop atau Delete oleh user.
7B Apabila ingin menghentikan job yang tengah berjalan, klik tombol Stop.

Stop.png

8A Hasil output job dapat dilihat pada kolom Folder Contents atau membuka halaman Edit Files.
User dapat melihat semua file output yang keluar di kolom Folder Contents.
atau dengan membuka menu Edit Files.
8B User dapat menjalankan ulang ruang job yang sama dengan mengklik kembali tombol Submit.

---

Notifikasi Status Jalannya Komputasi via email

SLURM ALELEON Supercomputer dapat mengirim notifikasi email kepada user dengan nama "Jojo" untuk mengabarkan status berjalannya job komputasi user. Silahkan tambahan SBATCH berikut pada Submit Script apabila user ingin menerima notifikasi email dari SLURM:

#SBATCH --mail-user=<alamat-email-user> 
#SBATCH --mail-type=BEGIN,END,FAIL

SBATCH mail-type mengatur konten email notifikasi SLURM dengan pilihan opsi yang sekiranya berguna untuk user:

  • BEGIN -> notifikasi job sudah mulai
  • END -> notifikasi job sudah selesai beserta cuplikan 20 baris terakhir dari file SBATCH output dan error.
  • FAIL -> notifikasi apabila job gagal berjalan atau berhenti tidak sewajarnya.
  • TIME_LIMIT_50 -> job telah berjalan dengan durasi waktu 50% time limit.
  • TIME_LIMIT_80 -> job telah berjalan dengan durasi waktu 80% time limit.

Menjalankan Anaconda Python dengan Sesi Interaktif Jupyter

Terdapat 2 langkah untuk menjalankan sesi interaktif Jupyter dengan Conda Environment User yaitu:

  1. Melakukan instalasi pip Jupyter pada Conda Environment yang akan digunakan untuk sesi Jupyter.
  2. Memulai sesi interaktif Jupyter Notebook atau Lab pada web EFIRO.

---

Instalasi pip Jupyter pada Conda Environment

Berikut adalah langkah instalasi pip Jupyter pada Conda Environment user (klik expand atau kembangkan).

Langkah Instalasi pip Jupyter pada Conda Environment User
0 Instalasi package dilakukan melalui terminal.
  • Bagi user yang login ke web EFIRO, buka menu Clusters > Aleleon Shell Access.

Shellaccess.png

1 Aktifkan Conda Environment yang akan digunakan untuk sesi Jupyter
$ module load Anaconda3
$ source activate $CONDA/<nama-conda-environment>
2 Lakukan pip install jupyter dan jupyterlab
$ pip install jupyter
$ pip install jupyterlab

---

Memulai Sesi Jupyter

Berikut adalah langkah untuk memulai sesi Jupyter dengan Conda Environment yang dibuat user:

Memulai Sesi Interaktif Jupyter dengan Conda Environment User
0 Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Buka alamat web http://aleleon.ood kemudian masukkan username dan password user.
  • Bagi user Linux, buka alamat http://10.192.50.11
1 Bagi akun perseorangan, disarankan untuk mengecek sisa CPU Core Hour sebelum memulai sesi Jupyter ini.

Shellaccess.png

  • Buka terminal melalui menu Clusters > Aleleon Shell Access.
  • Jalankan perintah
$ sausage 
2 Buka menu Interactive Apps
  • Silahkan pilih Jupyter Notebook atau Lab sesuai referensi pribadi user.

Efirojupyternotebooklab.png

3 Isi formulir untuk memulai sesi Jupyter sesuai pilihan panduan berikut (klik expand atau kembangkan):
Panduan Formulir Menggunakan Torti (Interactive Node CPU)
  • Partition
    • Pilih torti
  • Number of CPU Cores
    • Alokasi jumlah core CPU yang akan digunakan
    • Minimal: 1, maksimal: 32
  • Number of GPUs
    • kosongkan
  • Number of hours
    • Durasi sesi Jupyter dalam satuan jam
    • Minimal: 1, maksimal: 72
  • Anaconda Selection
    • Pilih versi terbaru
  • Conda Environment Directory
    • Isi dengan alamat direktori Conda Environment user yang akan digunakan dengan format:
$CONDA/<nama-conda-environment>
  • Software Modules
    • kosongkan
  • Environment Setup
    • kosongkan
  • Email Address
    • Sistem akan mengirim notifikasi ke email user saat sesi Jupyter sudah siap diakses.
    • Apabila membutuhkan, isi dengan email user
Panduan Formulir Menggunakan Tilla (Interactive Node GPU)
  • Partition
    • Pilih tilla
  • Number of CPU Cores
    • Alokasi jumlah core CPU yang akan digunakan
    • Minimal: 1, maksimal: 32
  • Number of GPUs
    • Isi: 1
  • Number of hours
    • Durasi sesi Jupyter dalam satuan jam
    • Minimal: 1, maksimal: 72
  • Anaconda Selection
    • Pilih versi terbaru
  • Conda Environment Directory
    • Isi dengan alamat direktori Conda Environment user yang akan digunakan dengan format:
$CONDA/<nama-conda-environment>
  • Software Modules
    • Pada bagian ini user memasukkan nama modul NVIDIA CUDA. Terdapat dua alternatif:
      • Mengisi nama modul CUDA versi terbaru yaitu cuda
      • Memilih modul CUDA versi lainnya apabila dibutuhkan oleh package Python user.
        • Daftar modul CUDA lihat subbab Daftar Modul NVIDIA CUDA Toolkit.
  • Environment Setup
    • kosongkan
  • Email Address
    • Sistem akan mengirim notifikasi ke email user saat sesi Jupyter sudah siap diakses.
    • Apabila membutuhkan, isi dengan email user
4 Apabila formulir sudah terisi, klik tombol Launch untuk memulai sesi Jupyter.
  • User akan diarahkan ke halaman My Interactive Sessions.
  • Tunggu hingga sesi Jupyter siap diakses.
Status sesi Jupyter mengantri menunggu alokasi hardware
Perhatian: Sesi akan tertahan di antrian apabila:
  • Number of CPU cores * Number of Hour yang dialokasikan lebih besar dari sisa CPU Core Hour user.
  • Number of GPUs * Number of Hour yang dialokasikan lebih besar dari sisa GPU Hour user.
5 Apabila status menunjukkan Running atau kolom berwarna hijau, klik Connect to Jupyter.
Sesi Jupyter siap diakses.
Perhatian:
  • Sistem mulai menghitung CPU Core Hour saat status sesi Jupyter menunjukkan running.
6 Pilih Notebook Python 3 untuk memulai sesi notebook Python 3 baik di Jupyter Notebook dan Lab.
Gunakan Notebook Python 3 untuk menjalankan kernel Conda Environment user di Jupyter Notebook
Gunakan Notebook Python 3 untuk menjalankan kernel Conda Environment user di Jupyter Lab
7A User dapat menghentikan sesi Jupyter yang sedang berjalan dengan klik tombol Delete
Klik tombol Delete untuk menghentikan sesi Jupyter yang sedang berjalan
7B User dapat kembali mengunjungi halaman My Interactive Sessions melalui dasboard EFIRO.

Interactivesession.png