Anaconda Python: Perbedaan antara revisi

Dari ALELEON by EFISON
(→‎Modul Anaconda: menyelesaikan jupyter)
(melengkapi job submission)
Baris 26: Baris 26:
|Anaconda3/2020.11
|Anaconda3/2020.11
| -
| -
|V
| rowspan="4" |V
|V
| rowspan="4" |V
|V
| rowspan="4" |V*
| -
| rowspan="4" | V**
|-
|-
|Anaconda 3 2021.05
|Anaconda 3 2021.05
|Anaconda3/2021.05
|Anaconda3/2021.05
| -
|V
|V
|V
| -
| -
|-
|-
Baris 42: Baris 38:
|Anaconda3/2022.05  
|Anaconda3/2022.05  
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" | -
|-
|-
|Anaconda3
|Anaconda3
|}
|}
=='''Alternatif Menjalankan Python di ALELEON Supercomputer'''==
<nowiki>*</nowiki> ya melalui package Python yang mendukung OpenMP seperti [https://cython.org/ '''Cython'''], [https://numba.pydata.org/ '''Numba'''], [https://pythran.readthedocs.io/en/latest/ '''Pythran'''], [https://www.pypy.org/ '''PyPy'''], dll.
Sebelum melakukan komputasi Python di ALELEON Supercomputer, user harus membuat '''Conda Environment''' supaya dapat mengisolasi dan mengatur instalasi package Python di dalamnya.  
 
{| class="wikitable"
<nowiki>**</nowiki> ya melalui [https://mpi4py.readthedocs.io/en/stable/ '''MPI for Python (MPI4PY)''']
|'''Note:'''
 
* ''Instalasi package Python '''tidak''' mengurangi Kredit Core Hour user.''
=='''Menjalankan Python di ALELEON Supercomputer'''==
|}
Terdapat dua langkah besar untuk menjalankan komputasi Python di ALELEON Supercomputer
Kemudian, ALELEON Supercomputer menawarkan user untuk menjalankan komputasi Python via Conda Environment dengan skema '''job submission''' melalui scheduler atau '''''interaktif''''' melalui sesi Jupyter Notebook / Lab dengan detail penjelasan berikut:
 
# User harus membuat '''Conda Environment''' supaya dapat mengisolasi dan mengatur instalasi package Python di dalamnya.
# User memilih untuk menjalankan komputasi Python (via Conda Environment) dengan skema '''''job submission''''' atau '''''interaktif''''' dengan detail penjelasan berikut:
 
{| class="wikitable"
{| class="wikitable"
|-
|-
Baris 61: Baris 56:
*Menjalankan file python siap jalan melalui scheduler dan script dengan skema [[Menggunakan ALELEON Supercomputer via EFIRO#3A%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20Job%20Composer|'''EFIRO Job Composer''']] (tampilan GUI via EFIRO) atau [[Menggunakan ALELEON Supercomputer via Terminal#3%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20SLURM|'''SLURM sbatch via Terminal''']].
*Menjalankan file python siap jalan melalui scheduler dan script dengan skema [[Menggunakan ALELEON Supercomputer via EFIRO#3A%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20Job%20Composer|'''EFIRO Job Composer''']] (tampilan GUI via EFIRO) atau [[Menggunakan ALELEON Supercomputer via Terminal#3%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20SLURM|'''SLURM sbatch via Terminal''']].
**Tidak dapat menjalankan file ipynb.
**Tidak dapat menjalankan file ipynb.
*Dapat berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node_CPU_(Partisi_epyc) '''Compute Node CPU Partisi epyc'''] atau [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node_GPU_(Partisi_ampere) '''Compute Node GPU Partisi ampere'''].
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node_CPU_(Partisi_epyc) '''Compute Node CPU (Partisi epyc)'''] atau [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Compute_Node_GPU_(Partisi_ampere) '''Compute Node GPU (Partisi ampere)'''].
|-
|-
|'''Menjalankan R dengan sesi interaktif Jupyter:'''
|'''Menjalankan Python secara interaktif dengan sesi Jupyter:'''
*Menjalankan R melalui sesi interaktif via Jupyter Notebook atau Lab.
*Menjalankan komputasi Python melalui sesi interaktif Jupyter Notebook atau Lab.
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node_CPU_(Partisi_torti) '''Interactive Node Partisi Torti (CPU)'''] atau [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node_GPU_(Partisi_tilla) '''Interactive Node Partisi Tilla (GPU)''']
*Berjalan di [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node_CPU_(Partisi_torti) '''Interactive Node Partisi Torti (CPU)'''] atau [https://wiki.efisonlt.com/wiki/Spesifikasi_ALELEON_Supercomputer#Spesifikasi_Interactive_Node_GPU_(Partisi_tilla) '''Interactive Node Partisi Tilla (GPU)'''].
|}
|}
=='''Membuat Conda Environment'''==
=='''Membuat Conda Environment'''==
Baris 75: Baris 70:
|-
|-
|'''0B'''
|'''0B'''
|Bagi user EFIRO, buka terminal melalui dashboard EFIRO menu '''Clusters > Aleleon Shell Access'''.
|Bagi user EFIRO, buka terminal melalui dashboard EFIRO menu '''<code>Clusters > Aleleon Shell Access</code>'''.
[[Berkas:Shellaccess.png|nirbing|200x200px]]
[[Berkas:Shellaccess.png|nirbing|200x200px]]
|-
|-
|1
|'''1'''
|Aktifkan modul Anaconda, tim admin EFISON menyarankan menggunakan Anaconda3 terbaru.  
|Aktifkan modul Anaconda, tim admin EFISON menyarankan selalu gunakan Anaconda3 terbaru:  
  $ module load '''Anaconda3'''
  $ module load '''Anaconda3'''
Apabila membutuhkan versi lainnya, lihat daftar modul Anacona pada '''subbab Modul Anaconda'''.
Apabila membutuhkan versi lainnya, lihat daftar modul Anacona pada '''subbab Modul Anaconda'''.
|-
|-
|2
|'''2'''
|Buat Conda Environment secara default di direktori HOME dengan format perintah:
|Buat Conda Environment secara default di direktori HOME dengan format perintah:
  $ conda create --name '''''<nama-conda-environment>'''''
  $ conda create --name '''''<nama-conda-environment>'''''
  ''Contoh:''
  ''Contoh:''
  '''''$ conda create --name <u>tensortest</u>'''''
  '''''$ conda create --name <u>tensortest</u>'''''
|-
|-
|3
|'''3'''
|Admin EFISON merekomendasikan user untuk mengaktifkan Conda Environment melalui perintah '''source activate:'''
|Admin EFISON merekomendasikan user untuk mengaktifkan Conda Environment melalui perintah '''<code>source activate</code>:'''
  $ source activate $CONDA/'''''<nama-conda-environment>'''''
  $ source activate $CONDA/'''''<nama-conda-environment>'''''
  ''Contoh:''
  ''Contoh:''
  '''''$ source activate $CONDA/<u>tensortest</u>'''''
  '''''$ source activate $CONDA/<u>tensortest</u>'''''
*Pada contoh di atas, Conda Environment <code>tensortest</code> aktif ditandai dengan munculnya tulisan <code>tensortest</code> pada bash terminal user:
*Pada contoh di atas, Conda Environment <code>tensortest</code> yang aktif ditandai dengan munculnya tulisan <code>tensortest</code> pada bash terminal user:
  '''''(tensortest)''''' [wololo@login ~]$
  '''''(tensortest)''''' [wololo@login ~]$
|-
|-
|4A
|'''4A'''
|Tim admin menyarankan user untuk melakukan instalasi package Python (seperti Tensorflow, PyTorch, Numpy, dll) yang dibutuhkan melalui [https://docs.conda.io/projects/conda/en/latest/commands/install.html '''pip install''']. Sebelumya lakukan instalasi pip dengan conda:
|
=== Instalasi Package Python melalui pip ===
Tim admin menyarankan user untuk melakukan instalasi package Python (seperti Tensorflow, PyTorch, Numpy, dll) yang dibutuhkan melalui [https://docs.conda.io/projects/conda/en/latest/commands/install.html '''pip install''']. Sebelumya lakukan instalasi pip dengan conda:
  $ conda install pip
  $ conda install pip
Kemudian user dapat melakukan instalasi package melalui '''[https://pip.pypa.io/en/stable/cli/pip_install/ pip install]:'''
Kemudian user dapat melakukan instalasi package melalui '''[https://pip.pypa.io/en/stable/cli/pip_install/ pip install]:'''
  $ pip install '''''<nama-package>'''''
  $ pip install '''''<nama-package>'''''
{| class="wikitable"
|'''Note:'''
* ''Instalasi package Python '''tidak''' mengurangi Kredit Core Hour user.''
|}
|-
|-
|4B
|'''4B'''
|
|
=== Instalasi pip Jupyter ===
=== Instalasi pip Jupyter ===
User dapat sekaligus melakukan instalasi Jupyter dan Jupyter Lab apabila kedepannya membutuhkan sesi interaktif Jupyter Notebook / Lab:  
User dapat sekaligus melakukan instalasi Jupyter dan Jupyter Lab apabila kedepannya membutuhkan sesi interaktif Jupyter Notebook dan Lab:  
  # pip install jupyter
  $ pip install jupyter
  # pip install jupyterlab
  $ pip install jupyterlab
|-
|-
| colspan="2" |
| colspan="2" |
=== '''Mengakses Kembali Conda Environment User''' ===
=== '''Mengakses Kembali Conda Environment User''' ===
Ketika user ingin kembali mengakses Conda Environment yang dibuat lakukan langkah '''<code>1 dan 3</code>.'''  
Ketika user ingin kembali mengakses Conda Environment yang dibuat, lakukan langkah '''<code>1 dan 3:</code>'''
 
$ module load Anaconda3
$ source activate $CONDA/'''''<nama-conda-environment>'''''
Apabila lupa dengan nama dan direktori Conda Environment, user dapat melihat semua Conda Environment yang dibuat dengan perintah
Apabila lupa dengan nama dan direktori Conda Environment, user dapat melihat semua Conda Environment yang dibuat dengan perintah
  $ conda-env list
  $ conda-env list
=== Menghapus Conda Environment ===
Apabila merasa tidak dibutuhkan kembali. user dapat menghapus Conda Environment dengan format perintah:
$ conda remove -n '''''<nama-conda-environment>''''' --all
|}
== '''Menjalankan Python Melalui Job Submission''' ==
User dapat menjalankan Python melalui job submission dengan pilihan cara menjalankan komputasi:
===[[Menggunakan ALELEON Supercomputer via EFIRO#3A%20-%20Menjalankan%20Komputasi%20ke%20Compute%20Node%20via%20Job%20Composer|EFIRO Job Composer]]===
Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer. Berikut adalah pilihan template Python yang tersedia:
{| class="wikitable"
|+Template Job Composer Python
!Nama Template
!Penjelasan
|-
|Python Anaconda (CPU)
|Menjalankan Python di Compute Node CPU (Partisi epyc)
|-
|Python Anaconda (GPU)
|Menjalankan Python di Compute Node GPU (Partisi ampere)
|}
===[[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.
{| class="wikitable"
!Contoh SLURM Submit Script Python di Compute Node CPU
|-
|
#!/bin/bash
# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software       : Python - Anaconda (CPU)
# | Versi           : tergantung input user
# | Update script  r: 17/05/2023
# |
# | 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
# --------------------------------------------------
# Alokasi jumlah 1 compute node
#SBATCH --nodes=1
# 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
|}
{| class="wikitable"
!Contoh SLURM Submit Script Python di Compute Node GPU
|-
|
#!/bin/bash
# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software       : Python - Anaconda (GPU)
# | Versi           : tergantung input user
# | Update script  r: 17/05/2023
# |
# | 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: 
#
# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
# Mengaktifkan Conda Environment
module load Anaconda3
source activate $CONDA/$CONDA_ENV_NAME
# Perintah menjakankan Python
python $INPUT_FILE
|}
|}


== '''Menjalankan R Melalui Job Submission''' ==
=== '''Notifikasi Status Jalannya Job Submission via email''' ===
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'''==
=='''Menjalankan Python dengan Sesi Interaktif Jupyter'''==
Terdapat 3 langkah besar untuk menjalankan komputasi Python melalui sesi interaktif Jupyter yaitu:
Berikut adalah langkah untuk memulai sesi Jupyter dengan Conda Environment yang dibuat user:
#[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_-_Login_Web_EFIRO '''Login ke EFIRO'''] karena fitur ini hanya bisa diakses melalui EFIRO.
#Membuat Conda Environment yang sudah terdapat package Jupyter dan package sesuai kebutuhan komputasi user.
#Mengisi formulir sesi interaktif Jupyter Notebook atau Lab.
Berikut adalah langkah untuk memulai sesi Jupyter menggunakan Conda Environment yang dibuat user:
{| class="wikitable"
{| class="wikitable"
|+Memulai sesi Jupyter
|+Memulai sesi Jupyter
|'''0A'''
|[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_-_Login_Web_EFIRO '''Login ke EFIRO'''].
|-
|'''0B'''
|Pastikan user sudah membuat Conda Environment dengan package Jupyter Notebook dan Lab didalamnya.
|-
|'''1'''
|'''1'''
|Buka menu '''Interactive Apps''' kemudian user bebas memilih menggunakan Jupyter Notebook atau Lab.
|Buka menu '''<code>Interactive Apps</code>''' kemudian user bebas memilih menggunakan Jupyter Notebook atau Lab.
[[Berkas:Efirojupyternotebooklab.png|nirbing|238x238px]]
[[Berkas:Efirojupyternotebooklab.png|nirbing|238x238px]]
|-
|-
Baris 154: Baris 323:
*'''Conda Environment Directory'''  
*'''Conda Environment Directory'''  
**Isi dengan alamat direktori Conda Environment user yang akan digunakan dengan format:
**Isi dengan alamat direktori Conda Environment user yang akan digunakan dengan format:
  '''''<code>$CONDA/<nama-conda-env></code>'''''
  '''''<code>$CONDA/<nama-conda-environment></code>'''''
*'''Software Modules'''
*'''Software Modules'''
**''kosongkan''
**''kosongkan''
Baris 183: Baris 352:
*'''Conda Environment Directory'''
*'''Conda Environment Directory'''
**Isi dengan alamat direktori Conda Environment user yang akan digunakan dengan format:
**Isi dengan alamat direktori Conda Environment user yang akan digunakan dengan format:
  '''''<code>$CONDA/<nama-conda-env></code>'''''
  '''''<code>$CONDA/<nama-conda-environment></code>'''''
*'''Software Modules'''
*'''Software Modules'''
**Pada bagian ini user memasukkan nama modul untuk NVIDIA CUDA. Terdapat dua alternatif:  
**Pada bagian ini user memasukkan nama modul NVIDIA CUDA. Terdapat dua alternatif:  
***Mengisi modul CUDA versi terbaru
***Mengisi nama modul CUDA versi terbaru yaitu '''<code>cuda</code>'''
***atau memilih modul CUDA versi lainnya apabila dibutuhkan oleh package Python user.
***memilih modul CUDA versi lainnya apabila dibutuhkan oleh package Python user.
***Lihat daftar modul CUDA pada [https://wiki.efisonlt.com/wiki/Katalog_Software_ALELEON_Supercomputer#Modul_NVIDIA_CUDA_Toolkit_(Standalone) '''Daftar Modul CUDA Toolkit ALELEON Supercomputer'''].
***Daftar modul CUDA lihat '''subbab Daftar Modul NVIDIA CUDA Toolkit'''.
 
*'''Environment Setup'''
*'''Environment Setup'''
**''kosongkan''
**''kosongkan''
Baris 197: Baris 367:
|-
|-
|'''3'''
|'''3'''
|Apabila formulir sudah terisi, klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter. User akan diarahkan ke halaman ''My Interactive Sessions''. Tunggu hingga sesi Jupyter user siap diakses.[[Berkas:JNqueue.png|nir|jmpl|Status sesi Jupyter Notebook 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 user siap diakses.[[Berkas:JNqueue.png|nir|jmpl|Status sesi Jupyter mengantri menunggu alokasi hardware]]
|-
|-
|'''4A'''
|'''4A'''
|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 Notebook siap diakses. ]]
|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. ]]
=== Menghentikan (Stop / Cancel) Sesi Jupyter ===
User dapat menghentikan sesi Jupyter yang sedang berjalan dengan klik tombol '''<code>Delete</code>'''.
|-
|-
|'''4B'''
|'''4B'''
|
|User dapat kembali mengunjungi halaman sesi '''<code>My Interactive Sessions</code>''' melalui menu di dasboard EFIRO.
=== Menghentikan (Stop / Cancel) Sesi Jupyter ===
[[Berkas:Interactivesession.png|nirbing|500x500px]]
User dapat menghentikan sesi Jupyter yang sedang berjalan dengan klik tombol '''<code>Delete</code>'''.
|}
|}
User dapat mengunjungi halaman ''My Interactive Sessions'' melalui menu di dasboard EFIRO.
[[Berkas:Interactivesession.png|nirbing|500x500px]]


=='''Default Notebook untuk Python'''==
=='''Default Notebook untuk Python'''==
Baris 220: Baris 387:
[[Berkas:JNkernel.png|nir|jmpl|Python 3 adalah kernel default Notebook di Jupyter ALELEON Supercomputer.|al=|280x280px]]
[[Berkas:JNkernel.png|nir|jmpl|Python 3 adalah kernel default Notebook di Jupyter ALELEON Supercomputer.|al=|280x280px]]


== '''Upload Data ke Jupyter''' ==
== '''Daftar Modul NVIDIA CUDA Toolkit''' ==
User dapat melakukan upload data di Jupyter, akan tetapi dengan '''limit ukuran upload 2GB per file.''' Gunakan [[Upload File dengan Aplikasi FTP|'''aplikasi FTP''']] apabila user hendak mengupload file tunggal diatas 2GB.
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>'''.  


* Jupyter pada ALELEON Supercomputer '''berada di direktori HOME user''' (dengan asumsi user membuat Conda Environment di direktori HOME).  
Akan tetapi terkadang ada package Python yang membutuhkan versi CUDA spesifik. Berikut adalah daftar lengkap modul CUDA di ALELEON Supercomputer untuk memenuhi kebutuhan tersebut:
* Apabila mengggunakan aplikasi FTP, '''[https://wiki.efisonlt.com/wiki/Upload_File_dengan_Aplikasi_FTP#Upload_File_ke_Direktori_HOME upload data ke direktori HOME user]'''.
{| class="wikitable sortable"
|+Daftar Modul NVIDIA CUDA di ALELEON Supercomputer
!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.

Revisi per 17 Mei 2023 16.38

ALELEON Supercomputer menggunakan suite Anaconda dan Conda Environment untuk komputasi yang membutuhkan environment Python. Anaconda adalah suite katalog packages Python dan R untuk komputasi data science dan machine learning.

W00t!

Halaman ini sedang dalam proses penulisan ulang. Penulisan selesai ketika user tidak melihat W00t! ini.

Modul Anaconda

Berikut adalah detail versi Anaconda yang tersedia secara global di ALELEON Supercomputer:

Modul Anaconda
Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

Anaconda 3 2020.11 Anaconda3/2020.11 - V V V* V**
Anaconda 3 2021.05 Anaconda3/2021.05 -
Anaconda 3 2022.05 Anaconda3/2022.05 V
Anaconda3

* ya melalui package Python yang mendukung OpenMP seperti Cython, Numba, Pythran, PyPy, dll.

** ya melalui MPI for Python (MPI4PY)

Menjalankan Python di ALELEON Supercomputer

Terdapat dua langkah besar untuk menjalankan komputasi Python di ALELEON Supercomputer:

  1. User harus membuat Conda Environment supaya dapat mengisolasi dan mengatur instalasi package Python di dalamnya.
  2. User memilih untuk menjalankan komputasi Python (via Conda Environment) dengan skema job submission atau interaktif dengan detail penjelasan berikut:
Menjalankan Python melalui Job Submission:
Menjalankan Python secara interaktif dengan sesi Jupyter:

Membuat Conda Environment

Berikut adalah langkah untuk membuat Conda Environment di ALELEON Supercomputer:

Membuat Conda Environment
0A Instalasi package dilakukan melalui terminal.
0B Bagi user EFIRO, buka terminal melalui dashboard EFIRO menu Clusters > Aleleon Shell Access.

Shellaccess.png

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

Apabila membutuhkan versi lainnya, lihat daftar modul Anacona pada subbab Modul Anaconda.

2 Buat Conda Environment secara default di direktori HOME dengan format perintah:
$ conda create --name <nama-conda-environment>

Contoh:
$ conda create --name tensortest
3 Admin EFISON merekomendasikan user untuk mengaktifkan Conda Environment melalui perintah source activate:
$ source activate $CONDA/<nama-conda-environment>

Contoh:
$ source activate $CONDA/tensortest
  • Pada contoh di atas, Conda Environment tensortest yang aktif ditandai dengan munculnya tulisan tensortest pada bash terminal user:
(tensortest) [wololo@login ~]$
4A

Instalasi Package Python melalui pip

Tim admin menyarankan user untuk melakukan instalasi package Python (seperti Tensorflow, PyTorch, Numpy, dll) yang dibutuhkan melalui pip install. Sebelumya lakukan instalasi pip dengan conda:

$ conda install pip

Kemudian user dapat melakukan instalasi package melalui pip install:

$ pip install <nama-package>
Note:
  • Instalasi package Python tidak mengurangi Kredit Core Hour user.
4B

Instalasi pip Jupyter

User dapat sekaligus melakukan instalasi Jupyter dan Jupyter Lab apabila kedepannya membutuhkan sesi interaktif Jupyter Notebook dan Lab:

$ pip install jupyter
$ pip install jupyterlab

Mengakses Kembali Conda Environment User

Ketika user ingin kembali mengakses Conda Environment yang dibuat, lakukan langkah 1 dan 3:

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

Apabila lupa dengan nama dan direktori Conda Environment, user dapat melihat semua Conda Environment yang dibuat dengan perintah

$ conda-env list

Menghapus Conda Environment

Apabila merasa tidak dibutuhkan kembali. user dapat menghapus Conda Environment dengan format perintah:

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

Menjalankan Python Melalui Job Submission

User dapat menjalankan Python melalui job submission dengan pilihan cara menjalankan komputasi:

EFIRO Job Composer

Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer. Berikut adalah pilihan template Python yang tersedia:

Template Job Composer Python
Nama Template Penjelasan
Python Anaconda (CPU) Menjalankan Python di Compute Node CPU (Partisi epyc)
Python Anaconda (GPU) Menjalankan Python di Compute Node GPU (Partisi ampere)

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.

Contoh SLURM Submit Script Python di Compute Node CPU
#!/bin/bash

# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : Python - Anaconda (CPU)
# | Versi           : tergantung input user
# | Update script  r: 17/05/2023
# |
# | 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: 
# |    https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer
# ------------------------------------------------------------------------

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

# Alokasi jumlah 1 compute node
#SBATCH --nodes=1

# 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 
Contoh SLURM Submit Script Python di Compute Node GPU
#!/bin/bash

# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : Python - Anaconda (GPU)
# | Versi           : tergantung input user
# | Update script  r: 17/05/2023
# |
# | 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: 
# |    https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer
# ------------------------------------------------------------------------

# --------------------------------------------------
# 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:  
# 

# -------------------------------------------------
# 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

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:

Memulai sesi Jupyter
0A Login ke EFIRO.
0B Pastikan user sudah membuat Conda Environment dengan package Jupyter Notebook dan Lab didalamnya.
1 Buka menu Interactive Apps kemudian user bebas memilih menggunakan Jupyter Notebook atau Lab.

Efirojupyternotebooklab.png

2 User mengisi formulir untuk memulai sesi Jupyter Notebook. Terdapat dua pilihan pengisian formulir yaitu menggunakan Partisi Torti (CPU) atau Partisi Tilla (dengan akselerasi GPU).
Panduan Formulir Menggunakan Partisi Torti (CPU)
  • Partition
    • Pilih torti
  • Number of CPU Cores
    • Alokasi jumlah core CPU yang akan digunakan, isi sesuai keinginan user
    • Minimal: 1
    • Maksimal: 32
  • Number of GPUs
    • kosongkan
  • Number of hours
    • Durasi sesi Jupyter dalam satuan jam, isi sesuai keinginan user
    • 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 Notebook sudah siap diakses.
    • Apabila membutuhkan, isi dengan email user
Panduan Formulir Menggunakan Partisi Tilla (GPU)
  • Partition
    • Pilih tilla
  • Number of CPU Cores
    • Alokasi jumlah core CPU yang akan digunakan, isi sesuai keinginan user
    • Minimal: 1
    • Maksimal: 32
  • Number of GPUs
    • Isi: 1
  • Number of hours
    • Durasi sesi Jupyter Notebook dalam satuan jam, isi sesuai keinginan user
    • 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 Notebook sudah siap diakses.
    • Apabila membutuhkan, isi dengan email user
3 Apabila formulir sudah terisi, klik tombol Launch untuk memulai sesi Jupyter. User akan diarahkan ke halaman My Interactive Sessions. Tunggu hingga sesi Jupyter user siap diakses.
Status sesi Jupyter mengantri menunggu alokasi hardware
4A Apabila status menunjukkan Running atau kolom berwarna hijau, klik Connect to Jupyter. Perlu diperhatikan bahwa sistem mulai menghitung Kredit Core Hour saat status Jupyter menunjukkan Running.
Sesi Jupyter siap diakses.

Menghentikan (Stop / Cancel) Sesi Jupyter

User dapat menghentikan sesi Jupyter yang sedang berjalan dengan klik tombol Delete.

4B User dapat kembali mengunjungi halaman sesi My Interactive Sessions melalui menu di dasboard EFIRO.

Interactivesession.png

Default Notebook untuk Python

User dapat menjalankan komputasi Python pada Notebook default yaitu Python 3 (ipykernel).

  • User juga dapat melakukan instalasi package (via pip atau conda) di Notebook.
  • Package akan terinstal di dalam Conda Environment user yang digunakan pada sesi Jupyter Notebook tersebut.
Python 3 adalah kernel default Notebook di Jupyter ALELEON Supercomputer.

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 cuda.

Akan tetapi terkadang ada package Python yang membutuhkan versi CUDA spesifik. Berikut adalah daftar lengkap modul CUDA di ALELEON Supercomputer untuk memenuhi kebutuhan tersebut:

Daftar Modul NVIDIA CUDA di ALELEON Supercomputer
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.