Komputasi Python dengan Conda Environment: Perbedaan antara revisi

Dari ALELEON by EFISON
(melengkapi batch job)
Baris 106: Baris 106:
|Manajemen lain seperti rename, delete, clone, export, dll lihat:
|Manajemen lain seperti rename, delete, clone, export, dll lihat:
*'''[[https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html Conda Managing environments]]'''  
*'''[[https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html Conda Managing environments]]'''  
|-
!---
|}
|}
---
 
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!---- Opsi Mamba
!---- Opsi Mamba
Baris 159: Baris 161:
|Manajemen lain seperti rename, delete, clone, export, dll lihat:
|Manajemen lain seperti rename, delete, clone, export, dll lihat:
*'''[[https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html Conda Managing environments]]'''
*'''[[https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html Conda Managing environments]]'''
|-
!---
|}
|}
|}
|}
Baris 197: Baris 201:
|Daftar package dan tutorial instal conda lihat web:
|Daftar package dan tutorial instal conda lihat web:
*'''[[https://conda-forge.org/packages/ Packages in Conda Forge]]'''.
*'''[[https://conda-forge.org/packages/ Packages in Conda Forge]]'''.
|-
! colspan="2" |---
|}
|}
---
 
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Instalasi Package TensorFlow
! colspan="2" |Instalasi Package TensorFlow
Baris 214: Baris 220:
|GPU
|GPU
|<code><small>(env-user)$</small> '''python3 -m pip install 'tensorflow[and-cuda]''''</code>
|<code><small>(env-user)$</small> '''python3 -m pip install 'tensorflow[and-cuda]''''</code>
|-
! colspan="2" |---
|}
|}
---
 
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Instalasi Package PyTorch
! colspan="2" |Instalasi Package PyTorch
Baris 237: Baris 245:
|GPU - CUDA 12.4
|GPU - CUDA 12.4
|<code><small>(env-user)$</small> '''pip3 install torch torchvision torchaudio'''</code>
|<code><small>(env-user)$</small> '''pip3 install torch torchvision torchaudio'''</code>
|-
! colspan="2" |---
|}
|}
---
 
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Instalasi Package Jupyter untuk user Mamba
!Instalasi Package Jupyter untuk user Mamba
Baris 245: Baris 255:
  <small>(env-user)$</small> '''mamba install -c conda-forge jupyterlab'''
  <small>(env-user)$</small> '''mamba install -c conda-forge jupyterlab'''
  <small>(env-user)$</small> '''mamba install -c conda-forge jupyter'''
  <small>(env-user)$</small> '''mamba install -c conda-forge jupyter'''
|-
!---
|}
|}
== '''Pilihan Menjalankan Komputasi''' ==
User dapat menjalankan komputasi dengan conda env melalui pilihan berikut, pilih sesuai kebutuhan:
=== Batch Job ===
Menjalankan script Python siap jalan tanpa interaksi user melalui manajemen Slurm di '''[<nowiki/>[[Spesifikasi ALELEON Supercomputer#Spesifikasi%20Compute%20Node|compute node]]].'''
*Perhatikan untuk '''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 Job Submission Slurm di Terminal
[[Berkas:Sbatch terminal display rev2.png|tepi|400x400px]]
|-
| Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal!
*User web EFIRO buka app '''<code>Aleleon Shell Access</code>'''.
|-
!1
|-
|Siapkan conda env dan file komputasi yang dibutuhkan.
*User dapat upload / download file dengan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
*User web EFIRO juga dapat gunakan app '''<code>Home Directory</code>'''
|-
!2A
|-
|Buat '''Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi.
*Nama file bebas dengan format .'''<code>sh</code>''', contoh '''<code>submit.sh</code>'''
|-
!
|-
|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"
!Template submit script Conda Environment versi CPU
|-
|<syntaxhighlight lang="bash" line="1">
#!/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]
////
</syntaxhighlight>
|}
|}
|-
|
{| class="wikitable mw-collapsible mw-collapsed"
!Template submit script conda environment versi GPU
|-
|'''Note:'''
*Muat modul CUDA di submit script untuk komputasi Python GPU.
**Telusuri kebutuhan versi CUDA untuk package user.
*Template submit script menyediakan daftar modul CUDA tersedia.
**''Secara umum hiraukan versi cuDNN kecuali butuh spesifik.''
*Apabila modul CUDA yang dibutuhkan tidak ada:
**Hubungi tim admin di '''support@efisonlt.com''' untuk instalasi.
*Berikut info khusus untuk package tertentu:
''<small><code>(klik expand / kembangkan)</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
!Bagi user yang menjalankan TensorFlow / PyTorch GPU
|-
|
*Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
**Panduan memuat modul CUDA ada pada template script.
*Kebutuhan TensorFlow GPU lihat '''[[https://www.tensorflow.org/install/pip#linux Install TensorFlow with pip]]'''
**Lihat bagian '''Software Requirements''' poin CUDA Toolkit
*Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
*Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
**Hiraukan versi cuDNN.
|-
!---
|}
|}
== '''Metode Menjalankan Komputasi''' ==
|-
User dapat memilih metode menjalankan komputasi sesuai keinginan: ''<small>(klik expand / kembangkan)</small>''
|<syntaxhighlight lang="bash" line="1">
#!/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
# -----------------------------------------------------


* '''Job submission Slurm''' 
# Partisi compute node GPU
** ''Menjalankan komputasi di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node compute node] melalui manajemen Slurm kemudian user menunggu hingga selesai.''
#SBATCH --partition=ampere
** ''Hanya untuk file Python (.py) siap jalan, file ipynb harus diubah ke py.''
* '''Sesi Interaktif Slurm'''
** ''coming soon!''
* '''Sesi Interaktif Jupyter'''
** ''Menggunakan [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node interactive node] secara langsung melalui IDE Jupyter Lab atau Notebook.''


=== Job Submission Slurm ===
# Alokasi jumlah core thread CPU
Terdapat dua pilihan tampilan yaitu dengan terminal dan web EFIRO.
#SBATCH --ntasks=////
=== Sesi Interaktif Jupyter ===
 
# 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="////"
 
# Input nama modul NVIDIA CUDA yang sesuai dengan keperluan conda
# env user. Pilihan:
# cuda/11.2-cuDNN8.1.1 || cuda/11.6-cuDNN8.3.3 || cuda/11.8-cuDNN8.6.0 ||
# cuda/12.0-cuDNN8.7.0 || cuda/12.1-cuDNN8.8.1 || cuda/12.3-cuDNN8.9.6 ||
# cuda/12.4-cuDNN9.2.1 || cuda/12.5-cuDNN9.2.1
CUDA="////"
 
# Nama conda environment yang digunakan
CONDA_NAME="////"
 
# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------
 
# Memuat modul
module load ${PM} ${CUDA}
 
# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}
 
# Tuliskan perintah menjalankan komputasi Python user
# contoh -> python3 [nama-file-python]
////
</syntaxhighlight>
|}
|-
|
*''<small>Info script lebih detail lihat [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']].</small>''
*''<small>Untuk SBATCH notifikasi email status jalannya job lihat [https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer#SBATCH_untuk_notifikasi_email_SLURM '''Slurm Jojo'''].</small>''
|-
!2B
|-
|'''SBATCH komputasi (ntasks, mem, time, dll) mempunyai limit''' berdasarkan:
*Sisa Core Hour user dan [[Limitasi Fair Usage ALELEON Supercomputer|'''Fair Usage Limit''']].
*Spesifikasi sistem dan software komputasi.
Untuk melihat limit, jalankan perintah:
'''$ slimit-python'''
|-
!3
|-
|Jalankan job komputasi dengan perintah:
$ '''sbatch ''[nama-submit-script]'''''
<small>''Contoh:''
$ sbatch submit.sh</small>
|-
!4
|-
|User dapat melihat status jalannya job dengan perintah:
'''<code>$ squeue -ul $USER</code>'''
{| class="wikitable"
! colspan="2" |''Kolom ST atau STATE menunjukkan status jalannya job.''
|-
!STATE
!Penjelasan
|-
|R (RUN)
|Job berjalan
|-
|PD (PENDING)
|Job tertahan, lihat [[Daftar Reason NODELIST ALELEON Supercomputer|'''NODELIST(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
|}
|-
!
|-
|Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
'''$ scancel ''[job-ID]'''''
<small>''Job ID ada pada squeue diatas.''
contoh membatalkan job ID 231:
$ scancel 231</small>
|-
!---
|}
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Job Submission Slurm di web EFIRO
[[Berkas:Efiro jobcomposer display.png|nirbing|400x400px]]
|-
!1
|-
| [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.
|-
!2
|-
|[[Berkas:New Pinnedapps jc.png|nirbing|128x128px]]Buka pinned apps '''Job Composer'''  di homepage EFIRO.
Pilih menu '''<code>New Job</code>''' -> '''<code>From Template</code>'''
 
[[Berkas:Jcnewjobmarked.png|nirbing|180x180px]]
|-
!3
|-
|
{| class="wikitable"
! colspan="2" |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 '''<code>Job Name</code>''' dan klik '''<code>Create New Job</code>'''
 
[[Berkas:Jctemplate-2.png|nirbing]]
|-
!4
|-
|Siapkan file komputasi dan conda env yang dibutuhkan:
*Upload / download / edit file via menu <code>'''Edit Files'''</code>
*Akses terminal untuk manajemen conda env via menu '''<code>Open Terminal</code>'''
[[Berkas:JC job menu.png|nirbing|500x500px]]
|-
!5A
|-
|Lengkapi '''Submit Script''' melalui tombol '''<code>Open Editor:</code>'''
*Submit script adalah 'formulir' untuk menjalankan job komputasi.
**Ikuti petunjuk '''NOTES dan alur script''' didalamnya.
*Klik '''<code>Save</code>''' setiap kali mengubah script.
*Perhatikan note berikut untuk user yang menjalankan conda env di GPU:
''<small><code>Klik expand / kembangkan</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
!Bagi user yang menjalankan conda env di GPU
|-
|'''Note:'''
*Muat modul CUDA di submit script untuk komputasi Python GPU.
**Telusuri kebutuhan versi CUDA untuk package user.
*Template submit script menyediakan daftar modul CUDA tersedia.
**''Secara umum hiraukan versi cuDNN kecuali butuh spesifik.''
*Apabila modul CUDA yang dibutuhkan tidak ada:
**Hubungi tim admin di '''support@efisonlt.com''' untuk instalasi.
*Berikut info khusus untuk package tertentu:
''<small><code>(klik expand / kembangkan)</code></small>''
{| class="wikitable mw-collapsible mw-collapsed"
!Bagi user yang menjalankan TensorFlow / PyTorch GPU
|-
|
*Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
**Panduan memuat modul CUDA ada pada template script.
*Kebutuhan TensorFlow GPU lihat '''[[https://www.tensorflow.org/install/pip#linux Install TensorFlow with pip]]'''
**Lihat bagian '''Software Requirements''' poin CUDA Toolkit
*Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
*Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
**Hiraukan versi cuDNN.
|-
!---
|}
|}[[Berkas:Jceditor3.png|al=|nirbing|400x400px]]
|-
|
*''<small>Info script lebih detail lihat [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']].</small>''
*''<small>Untuk SBATCH notifikasi email status jalannya job lihat [https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer#SBATCH_untuk_notifikasi_email_SLURM '''Slurm Jojo'''].</small>''
|-
!5B
|-
|SBATCH komputasi (ntasks, mem, time, dll) '''mempunyai limit''' berdasarkan:
*Sisa Core Hour user dan [[Limitasi Fair Usage ALELEON Supercomputer|'''Fair Usage Limit''']].
*Spesifikasi sistem dan software komputasi.
Untuk melihat limit, jalankan perintah ini via menu '''<code>Open Terminal</code>''':
'''$ slimit-python'''
|-
!6
|-
|Jalankan job dengan klik tombol '''<code>Submit</code>'''.
[[Berkas:JC job runstop.png|al=|nirbing|500x500px]]
*Pantau kolom status yang menjelaskan status jalannya job.
*Apabila ingin membatalkan job yang berjalan, klik '''<code>Stop</code>'''.
{| class="wikitable"
! colspan="2" |Daftar Status 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.
|-
| colspan="2" |'''Untuk melihat alasan job yang queue:'''[[Berkas:Active Jobs detail.png|nir|jmpl|300x300px|''Buka pinned 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 Reason NODELIST ALELEON Supercomputer|'''Daftar Reason NODELIST ALELEON Supercomputer''']].'']]
|}
|-
!7
|-
|Lihat output file komputasi pada kolom '''<code>Folder Contents</code>'''
*Atau dengan membuka '''<code>Edit Files</code>'''
[[Berkas:Jcfoldercontentsedit.png|al=|nir|jmpl|''Kolom '''<code>Folder Contents</code>'''.'']]
|-
!8
|-
|Untuk menghapus ruang job dan datanya:
*Pilih ruang job yang akan dihapus.
*Klik menu '''<code>Delete</code>'''
[[Berkas:JC delete menu.png|nirbing|500x500px]]
|-
!---
|}
=='''Pelaporan Kendala dan Support'''==
=='''Pelaporan Kendala dan Support'''==
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.

Revisi per 23 Januari 2025 03.59

Berkas:Logo Python - Anaconda - Mamba ALELEON.png

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

Laman ini merupakan bagian laman -> Komputasi Python

Langkah Menjalankan Komputasi

Terdapat dua langkah utama:

  1. Membuat conda environment dan instal package yang diperlukan di dalamnya.
  2. Menjalankan komputasi dengan conda env tersebut.

Membangun Conda Environment

ALELEON Supercomputer menyediakan pilihan package manager Python untuk membuat conda environment. Pilih sesuai preferensi user:

Anaconda transparent logo.png Mamba transparent logo.png
  • PM Python paling banyak digunakan.
  • Saat ini menjadi standar industri.
  • Alternatif Anaconda, dibuat dengan C++.
  • Dikembangkan oleh komunitas.
  • Dalam beberapa kasus lebih ringan dan cepat.

Membuat dan Manajemen Conda Environment

Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Pilih menggunakan Anaconda atau Mamba.

(klik expand / kembangkan)

---- Opsi Anaconda

Anaconda transparent logo.png

1
Pilih dan aktifkan modul Anaconda untuk membuat conda env:

$ 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
Ingat atau catat modul Anaconda yang dipakai.
  • Kedepannya digunakan untuk mengaktifkan conda env ini.
3
Buat conda env di direktori HOME:

$ conda create -n [nama-conda-env]

Contoh nama 'skripsi' -> $ conda create -n skripsi

4
Aktifkan conda env dengan perintah source:

$ source activate [nama-conda-env]

Contoh nama 'skripsi' -> $ source activate skripsi

Menonaktifkan conda env:
(env-user)$ conda deactivate
Mengaktifkan kembali conda env:
Lakukan langkah 1 dan 4. Apabila lupa nama env:

$ conda env list

Manajemen lainnya:
Manajemen lain seperti rename, delete, clone, export, dll lihat:
---
---- Opsi Mamba

Mamba transparent logo.png

1
Pilih dan aktifkan modul Mamba untuk membuat conda env:

$ 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
Ingat atau catat modul Mamba yang dipakai.
  • Kedepannya digunakan untuk mengaktifkan conda env ini.
3
Buat conda env di direktori HOME:

$ mamba create -n [nama-conda-env]

Contoh nama 'skripsi' -> $ mamba create -n skripsi

4
Aktifkan conda env dengan perintah source:

$ source activate [nama-conda-env]

Contoh nama 'skripsi' -> $ source activate skripsi

Menonaktifkan conda env:
(env-user)$ conda deactivate
Mengaktifkan kembali conda env:
Lakukan langkah 1 dan 4. Apabila lupa nama env:

$ conda env list

Manajemen lainnya:
Manajemen lain seperti rename, delete, clone, export, dll lihat:
---

Instalasi Package di Conda Environment

Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Aktifkan conda env yang akan dipakai untuk instalasi package ini.
2
Pilih tutorial instalasi sesuai kebutuhan:

(klik expand / kembangkan)

Instalasi Package Secara Umum dengan pip / conda
User dapat melakukan instalasi package lainnya dengan pip atau conda
pip Contoh umum:

(env-user)$ pip install [nama-package]

Daftar package dan tutorial instal pip lihat web:
conda Contoh umum:

(env-user)$ conda install conda-forge::[nama-package]

Daftar package dan tutorial instal conda lihat web:
---
Instalasi Package TensorFlow
Tersedia dua versi TensorFlow, pilih sesuai kebutuhan:
  • Versi CPU - berjalan di CPU.
  • Versi GPU - berjalan dengan akselerasi GPU NVIDIA dan lib. CUDA.
Versi Perintah pip
CPU (env-user)$ python3 -m pip install tensorflow
GPU (env-user)$ python3 -m pip install 'tensorflow[and-cuda]'
---
Instalasi Package PyTorch
Tersedia dua versi PyTorch, pilih sesuai kebutuhan:
  • Versi CPU - berjalan di CPU.
  • Versi GPU - berjalan dengan akselerasi GPU NVIDIA dan lib. CUDA.
Versi Perintah pip
CPU (env-user)$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
GPU - CUDA 11.8 (env-user)$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
GPU - CUDA 12.1 (env-user)$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
GPU - CUDA 12.4 (env-user)$ pip3 install torch torchvision torchaudio
---
Instalasi Package Jupyter untuk user Mamba
Conda env dari Mamba perlu instalasi package Jupyter untuk menggunakan sesi Jupyter:
(env-user)$ mamba install -c conda-forge jupyterlab
(env-user)$ mamba install -c conda-forge jupyter
---

Pilihan Menjalankan Komputasi

User dapat menjalankan komputasi dengan conda env melalui pilihan berikut, pilih sesuai kebutuhan:

Batch Job

Menjalankan script Python siap jalan tanpa interaksi user melalui manajemen Slurm di [compute node].

  • Perhatikan untuk file .ipynb harus dikonversi ke file .py.
  • Tersedia dua pilihan tampilan yaitu terminal dan web EFIRO. Pilih sesuai keinginan.

(klik expand / kembangkan)

Langkah Job Submission Slurm di Terminal

Sbatch terminal display rev2.png

Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Siapkan conda env dan file komputasi yang dibutuhkan.
  • User dapat upload / download file dengan software FTP.
  • User web EFIRO juga dapat gunakan app Home Directory
2A
Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi.
  • Nama file bebas dengan format .sh, contoh submit.sh
Contoh template Submit Script
  • Ikuti petunjuk NOTES dan alur script di dalamnya.

Klik expand / kembangkan

Template submit script Conda Environment versi CPU
#!/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
Note:
  • Muat modul CUDA di submit script untuk komputasi Python GPU.
    • Telusuri kebutuhan versi CUDA untuk package user.
  • Template submit script menyediakan daftar modul CUDA tersedia.
    • Secara umum hiraukan versi cuDNN kecuali butuh spesifik.
  • Apabila modul CUDA yang dibutuhkan tidak ada:
    • Hubungi tim admin di support@efisonlt.com untuk instalasi.
  • Berikut info khusus untuk package tertentu:

(klik expand / kembangkan)

Bagi user yang menjalankan TensorFlow / PyTorch GPU
  • Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
    • Panduan memuat modul CUDA ada pada template script.
  • Kebutuhan TensorFlow GPU lihat [Install TensorFlow with pip]
    • Lihat bagian Software Requirements poin CUDA Toolkit
  • Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
  • Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
    • Hiraukan versi cuDNN.
---
#!/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="////"

# Input nama modul NVIDIA CUDA yang sesuai dengan keperluan conda
# env user. Pilihan:
# cuda/11.2-cuDNN8.1.1 || cuda/11.6-cuDNN8.3.3 || cuda/11.8-cuDNN8.6.0 ||
# cuda/12.0-cuDNN8.7.0 || cuda/12.1-cuDNN8.8.1 || cuda/12.3-cuDNN8.9.6 ||
# cuda/12.4-cuDNN9.2.1 || cuda/12.5-cuDNN9.2.1
CUDA="////"

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

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

# Memuat modul
module load ${PM} ${CUDA}

# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}

# Tuliskan perintah menjalankan komputasi Python user
# contoh -> python3 [nama-file-python]
////
2B
SBATCH komputasi (ntasks, mem, time, dll) mempunyai limit berdasarkan:
  • Sisa Core Hour user dan Fair Usage Limit.
  • Spesifikasi sistem dan software komputasi.

Untuk melihat limit, jalankan perintah:

$ slimit-python
3
Jalankan job komputasi dengan perintah:
$ sbatch [nama-submit-script]

Contoh:
$ sbatch submit.sh
4
User dapat melihat status jalannya job dengan perintah:

$ squeue -ul $USER

Kolom ST atau STATE menunjukkan status jalannya job.
STATE Penjelasan
R (RUN) Job berjalan
PD (PENDING) Job tertahan, lihat NODELIST(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
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 Job Submission Slurm di web EFIRO

Efiro jobcomposer display.png

1
Login ke web EFIRO ALELEON Supercomputer.
2
New Pinnedapps jc.pngBuka pinned apps Job Composer di homepage EFIRO.

Pilih menu New Job -> From Template

Jcnewjobmarked.png

3
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
Siapkan file komputasi dan conda env yang dibutuhkan:
  • Upload / download / edit file via menu Edit Files
  • Akses terminal untuk manajemen conda env via menu Open Terminal

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 didalamnya.
  • Klik Save setiap kali mengubah script.
  • Perhatikan note berikut untuk user yang menjalankan conda env di GPU:

Klik expand / kembangkan

Bagi user yang menjalankan conda env di GPU
Note:
  • Muat modul CUDA di submit script untuk komputasi Python GPU.
    • Telusuri kebutuhan versi CUDA untuk package user.
  • Template submit script menyediakan daftar modul CUDA tersedia.
    • Secara umum hiraukan versi cuDNN kecuali butuh spesifik.
  • Apabila modul CUDA yang dibutuhkan tidak ada:
    • Hubungi tim admin di support@efisonlt.com untuk instalasi.
  • Berikut info khusus untuk package tertentu:

(klik expand / kembangkan)

Bagi user yang menjalankan TensorFlow / PyTorch GPU
  • Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
    • Panduan memuat modul CUDA ada pada template script.
  • Kebutuhan TensorFlow GPU lihat [Install TensorFlow with pip]
    • Lihat bagian Software Requirements poin CUDA Toolkit
  • Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
  • Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
    • Hiraukan versi cuDNN.
---
5B
SBATCH komputasi (ntasks, mem, time, dll) mempunyai limit berdasarkan:
  • Sisa Core Hour user dan Fair Usage Limit.
  • Spesifikasi sistem dan software komputasi.

Untuk melihat limit, jalankan perintah ini via menu Open Terminal:

$ slimit-python 
6
Jalankan job dengan klik tombol Submit.

  • Pantau kolom status yang menjelaskan status jalannya job.
  • Apabila ingin membatalkan job yang berjalan, klik Stop.
Daftar Status 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.
Untuk melihat alasan job yang queue:
Buka pinned 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 Reason NODELIST ALELEON Supercomputer.
7
Lihat output file komputasi pada kolom Folder Contents
  • Atau dengan membuka Edit Files
Kolom Folder Contents.
8
Untuk menghapus ruang job dan datanya:
  • Pilih ruang job yang akan dihapus.
  • Klik menu Delete

JC delete menu.png

---

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