Komputasi Python dengan Anaconda: Perbedaan antara revisi

Dari ALELEON by EFISON
(test formatting)
 
(Menambah bagian kembali ke halaman utama)
 
(68 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 1: Baris 1:
Halaman ini menjelaskan bagaimana menjalankan komputasi Python melalui Anaconda di ALELEON Supercomputer.
 
 
[[Berkas:Pythonanaconda.png|500x500px]]
 
Halaman ini menjelaskan menjalankan komputasi Python dengan environment Anaconda di ALELEON Supercomputer. '''[https://www.anaconda.com/ Anaconda]''' adalah suite katalog packages Python dan R untuk komputasi ''data science'' dan ''machine learning''.
{| class="wikitable"
!''Kembali ke halaman utama ->'' [[Komputasi Python]]
|}
 
== '''Langkah Menjalankan Komputasi''' ==
Terdapat dua langkah utama:
 
# Membuat dan menyiapkan conda environment untuk komputasi user.
# Memilih metode menjalankan komputasi.


== '''Membuat Conda Environment''' ==
== '''Membuat Conda Environment''' ==
{| class="wikitable"
Kegiatan ini dilakukan pada '''terminal''' dan tidak mengurangi Core Hour user:
!
 
!
* Diakses melalui [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''login SSH'''], atau
* Pada web EFIRO, buka app '''Aleleon Shell Access''' [[Berkas:Pinnedapps terminal.png|nirbing|129x129px]]
 
{| class="wikitable mw-collapsible mw-collapsed"
!Membuat Conda Environment dan Instalasi Package Python
|-
|-
|1
!1
|User masuk ke terminal untuk membuat conda env:
 
* Melalui login SSH
* Bagi yang login ke web EFIRO, buka '''Clusters -> Aleleon Shell Access'''
|-
|-
| rowspan="2" |2
|Pilih dan aktifkan modul Anaconda yang akan digunakan.
|Pilih dan aktifkan modul Anaconda yang akan digunakan.
<code>'''$ module load <''nama-modul-anaconda>'''''</code>
<code>$ '''module load ''[nama-modul-anaconda]'''''</code>
|-
{| class="wikitable"
|
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Daftar nama modul Anaconda
! colspan="2" |Daftar nama modul Anaconda
|-
|-
Baris 36: Baris 46:
|}
|}
|-
|-
|
!2
|
|-
|Buat conda env di direktori HOME dan aktifkan dengan perintah:
$ '''conda create --name ''[nama-conda-env]'' pip'''
''Contoh dengan nama 'skripsi'''
$ conda create --name '''skripsi''' pip
|-
!3
|-
|Aktifkan conda env dengan perintah:
$ '''source activate ''[nama-conda-env]'''''
''Contoh:''
$ source activate '''skripsi'''
|-
!4
|-
|Lakukan instalasi package Python yang dibutuhkan dengan '''<code>pip</code>'''
* Contoh [https://pytorch.org/get-started/locally/ instalasi PyTorch dengan pip].
* Contoh [https://www.tensorflow.org/install/pip instalasi TensorFlow dengan pip].
|-
!5
|-
|Untuk menonaktifkan conda env jalankan perintah:
<code>$ '''conda deactivate'''</code>
|}
{| class="wikitable mw-collapsible mw-collapsed"
!Manajemen Conda Environment
|-
!a
|-
|'''Mengaktifkan conda env yang telah dibuat:'''
# Muat modul Anaconda yang dipakai untuk membuat conda env.
# Lakukan source activate.
|-
!b
|-
|'''Melihat daftar conda env yang telah dibuat:'''
'''$ conda env list'''
|-
!c
|-
|'''Mengubah nama conda env:'''
$ '''conda rename -n ''[nama-saat-ini]'' ''[nama-baru]'''''
''Contoh mengubah nama env skripsi ke tesis''
$ conda rename -n skripsi tesis
|-
!d
|-
|'''Menghapus conda env:'''
<code>$ '''conda remove -n ''<nama-conda-env>'' --all'''</code>
|}
|}


# User masuk ke terminal untuk membuat conda env.
== '''Metode Menjalankan Komputasi''' ==
# Pilih dan muat modul Anaconda yang akan digunakan.
User dapat memilih metode menjalankan komputasi sesuai keinginan:


{| class="wikitable"
* '''Job submission terminal'''
|+
** ''Menggunakan manajemen Slurm di terminal dan compute node.''
!
** ''Hanya untuk file Python (py), file ipynb harus diubah ke py.''
!
* '''Job submission web EFIRO'''
** ''Menggunakan manajemen Slurm di laman web EFIRO dan compute node.''
** ''Hanya untuk file Python (py), file ipynb harus diubah ke py.''
* '''Interactive job Jupyter'''
** ''Sesi IDE Jupyter Lab atau Notebook.''
** ''Menggunakan interactive node.''
 
=== Job Submission Terminal ===
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Job Submission Terminal
[[Berkas:Sbatch Terminal.png|tepi|400x400px]]
|-
!1
|-
| Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''] ke ALELEON Supercomputer.
|-
!2
|-
|Siapkan conda env dan file komputasi yang dibutuhkan.
 
* User dapat upload / download file dengan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
|-
!3A
|-
|Buat '''Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi.
 
* Nama file bebas dengan format .sh, contoh '''<code>submit.sh</code>'''
|-
!
!
|-
|Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
{| class="wikitable mw-collapsible mw-collapsed"
!Anaconda Python di CPU
|-
|<syntaxhighlight lang="bash">
#!/bin/bash
# -----------------------------------------------------
# Template SLURM Submit Script
# Anaconda Python (CPU)
#
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat 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
# Nama Conda Environment yang digunakan
CONDA_NAME=////
# Nama program Python yang dijalankan
INPUT_FILE=////.py
# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------
# Mengaktifkan Conda Environment
module load Anaconda3
source activate ${CONDA}/${CONDA_NAME}
# Menjalankan file Python
python3 ${INPUT_FILE}
</syntaxhighlight>
|}
{| class="wikitable mw-collapsible mw-collapsed"
!Anaconda Python di GPU
|-
|<syntaxhighlight lang="bash">
#!/bin/bash
# -----------------------------------------------------
# Template SLURM Submit Script
# Anaconda Python (GPU)
#
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat Conda Environment.
# -----------------------------------------------------
# -----------------------------------------------------
# Alokasi komputasi SBATCH dan file input
# -----------------------------------------------------
# Menggunakan 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
# Nama Conda Environment yang digunakan
CONDA_NAME=////
# Nama program Python yang dijalankan
INPUT_FILE=////.py
# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------
# Memuat modul NVIDIA CUDA default
module load cuda
# Mengaktifkan Conda Environment
module load Anaconda3
source activate ${CONDA}/${CONDA_NAME}
# Menjalankan file Python
python3 ${INPUT_FILE}
</syntaxhighlight>
|}
Info script lebih detail lihat [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']].
|-
!3B
Panduan nilai maksimal SBATCH
|-
|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 berikut:
'''$ slimit-python'''
|-
!4
|-
|Jalankan job komputasi dengan perintah:
$ '''sbatch ''[nama-submit-script]'''''
''Contoh:''
$ sbatch submit.sh
|-
!5
|-
|User dapat melihat status jalannya job dengan perintah:
'''<code>$ squeue -ul $USER</code>'''
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Daftar ST (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]'''''
''Job ID ada pada squeue diatas.''
contoh membatalkan job ID 231:
$ scancel 231
|}
=== Job Submission Web EFIRO ===
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Job Submission Web EFIRO
[[Berkas:Efirojobcomposer3.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#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|-
!2
|-
|Buka app '''Job Composer''' [[Berkas:New Pinnedapps jc.png|nirbing|128x128px]] 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
|-
|Anaconda Python (CPU)
|Menjalankan Anaconda Python di CPU
|-
|Anaconda Python (GPU)
|Menjalankan Anaconda Python di GPU
|}
Kemudian Isi '''<code>Job Name</code>''' dan klik '''<code>Create New Job</code>'''
 
[[Berkas:Jctemplate-2.png|nirbing]]
|-
!4
|-
|Upload dan edit file untuk job komputasi pada '''<code>Edit Files</code>'''
[[Berkas:Jcjoboption.png|nirbing|400x400px]]
* Untuk upload file tunggal diatas 2GB gunakan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
* Apabila butuh akses terminal buka <code>'''Open Terminal'''</code>.
|-
!5A
|-
|Lengkapi '''Submit Script''' melalui tombol '''<code>Open Editor</code>'''.
[[Berkas:Jceditor3.png|al=|nirbing|400x400px]]
* Submit script adalah 'formulir' untuk menjalankan job komputasi.
* Ikuti petunjuk NOTES didalamnya
* Klik '''<code>Save</code>''' setiap kali mengubah script.
|-
!5B
Panduan nilai maksimal SBATCH
|-
|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 berikut pada terminal:
'''$ slimit-python'''
|-
!6
|-
|Jalankan job dengan klik tombol '''<code>Submit</code>'''.
[[Berkas:Jcsubmit2.png|al=|nirbing|400x400px]]
* Pantau kolom status yang menjelaskan status jalannya job.
* Apabila ingin membatalkan job yang berjalan, klik '''<code>Stop</code>'''.
* Job completed dapat dijalankan kembali dengan '''<code>Submit</code>'''.
 
{| class="wikitable mw-collapsible mw-collapsed"
! 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 di tengah jalan, antara error atau di stop user
|-
| colspan="2" |'''Untuk melihat alasan queue:'''
# Buka app '''<code>Active Jobs</code>''' [[Berkas:Pinnedapps activejobs.png|nirbing|127x127px]]di homepage EFIRO.
# [[Berkas:Efiroqueueedit.png|nir|jmpl|''Ubah opsi '''<code>Your jobs</code>''' untuk melihat status job user saja. Klik simbol '''>''' untuk melihat status  job pending pada kolom '''Reason'''. Arti reason lihat laman '''[[Daftar Reason NODELIST ALELEON Supercomputer]].''''']]
|}
|-
!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>'''.'']]
|}
 
=== Interactive Job Jupyter ===
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Interactive Job Sesi Jupyter
[[Berkas:Efirojupyterlab.png|400x400px]]
|-
!1
|-
| '''[https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_ |'''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|-
!2
|-
|Buka app '''Jupyter''' [[Berkas:New Pinnedapps jupyter.png|nirbing|116x116px]] di homepage EFIRO.
|-
!3
|-
|Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
 
* '''Choose Jupyter version'''
** ''pilih sesuai preferensi user, Jupyter Lab atau Notebook''
* '''Partition''' -> ''pilih sesuai kebutuhan:''
** torti -> CPU saja
** tilla -> CPU dan GPU
 
{| class="wikitable"
!Alokasi komputasi
!torti
!tilla
|-
|Number of CPU core(s)
| colspan="2" |1 - 32
|-
|Amount of memory/RAM
| colspan="2" |1 - 64
|-
|Number of GPUs
| -
|1
|-
|Number of hours
| colspan="2" |1 - 72
|-
| colspan="3" |'''Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:'''
* Alokasi CPU * hours > sisa CPU Core Hour
* Alokasi GPU * hours > sisa GPU Hour
 
Cek sisa Core Hour dengan:
 
# Buka app [[Berkas:Pinnedapps terminal.png|nirbing|116x116px]]  di homepage EFIRO
# Jalankan perintah '''<code>sausage</code>'''
|}
 
* '''Choose how to launch Jupyter''' -> Anaconda
* '''Choose Anaconda version'''
** ''Pilih versi yang digunakan untuk membuat conda env user''
* '''Conda environment directory'''
** ''Isi nama conda env user yang akan digunakan''
* '''Software modules'''
** ''Membuat modul software, isi sesuai kebutuhan user''
** ''Apabila menggunakan tilla, isi modul '''NVIDIA CUDA''' yang sesuai''
{| class="wikitable mw-collapsible mw-collapsed"
|-
! colspan="2" |Daftar Software Modules NVIDIA CUDA
|-
!Nama Software Modules
!Versi
|-
|cuda/11.2-cuDNN8.1.1
|CUDA 11.2 + cuDNN 8.1.1
|-
|cuda/11.6-cuDNN8.3.3
|CUDA 11.6 + cuDNN 8.3.3
|-
|cuda/11.8-cuDNN8.6.0
|CUDA 11.8 + cuDNN 8.6.0
|-
|cuda/12.0-cuDNN8.7.0
|CUDA 12.0 + cuDNN 8.7.0
|-
|cuda/12.1-cuDNN8.8.1
|CUDA 12.1 + cuDNN 8.8.1
|-
|cuda/12.3-cuDNN8.9.6
|CUDA 12.3 + cuDNN 8.9.6
|}
*'''Environment setup'''
** ''Memuat environment variable, isi apabila ada''
* '''Additional Jupyter arguments'''
** Memuat argument tambahan Jupyter, isi apabila ada
* '''Email address'''
** ''Notifikasi email untuk status mulai dan selesainya sesi Jupyter.''
** ''Isi apabila berkenan.''
|-
!4
|-
|Klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter.
*User akan diarahkan ke halaman '''<code>My Interactive Sessions</code>'''.
*Tunggu hingga sesi Jupyter siap diakses.
[[Berkas:Jupyternotebookqueue.png|nir|jmpl|''Status sesi Jupyter mengantri menunggu alokasi hardware'']]
|-
!5
|-
|Apabila status '''Running''', klik tombol '''<code>Connect to Jupyter</code>'''.
 
* Sistem mulai menghitung Core Hour!
 
[[Berkas:Newjupyter120124.png|nir|jmpl|''Sesi Jupyter siap diakses.'']]Untuk menghentikan sesi, klik tombol '''<code>Cancel</code>'''.
|-
!6
|-
|Pilih Notebook Python 3 untuk memulai sesi notebook Python 3.[[Berkas:Jupyternotebookkernelupdated.png|al=|nir|jmpl|200x200px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Notebook'']][[Berkas:Rjupyterlab.png|nir|jmpl|225x225px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Lab'']]
|-
|-
|
!7
|
|
|
|-
|-
|
|User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
|
 
|
* Menu '''<code>My Interactive Sessions</code>''' pada homepage EFIRO.
|
* Kolom '''<code>Active interactive sessions</code>''' pada homepage EFIRO.
|}
|}
=='''Pelaporan Kendala dan Support'''==
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.
[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]


#
Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:
'''support@efisonlt.com'''

Revisi terkini sejak 15 Mei 2024 10.53


Pythonanaconda.png

Halaman ini menjelaskan menjalankan komputasi Python dengan environment Anaconda di ALELEON Supercomputer. Anaconda adalah suite katalog packages Python dan R untuk komputasi data science dan machine learning.

Kembali ke halaman utama -> Komputasi Python

Langkah Menjalankan Komputasi

Terdapat dua langkah utama:

  1. Membuat dan menyiapkan conda environment untuk komputasi user.
  2. Memilih metode menjalankan komputasi.

Membuat Conda Environment

Kegiatan ini dilakukan pada terminal dan tidak mengurangi Core Hour user:

  • Diakses melalui login SSH, atau
  • Pada web EFIRO, buka app Aleleon Shell Access Pinnedapps terminal.png
Membuat Conda Environment dan Instalasi Package Python
1
Pilih dan aktifkan modul Anaconda yang akan digunakan.

$ module load [nama-modul-anaconda]

Daftar nama modul Anaconda
Nama Modul Versi
Anaconda3/2023.07-2 Anaconda 3 2023.07-2
Anaconda3/2022.05 Anaconda 3 2022.05
Anaconda3/2021.05 Anaconda 3 2021.05
Anaconda3/2020.11 Anaconda 3 2020.11
2
Buat conda env di direktori HOME dan aktifkan dengan perintah:
$ conda create --name [nama-conda-env] pip

Contoh dengan nama 'skripsi'
$ conda create --name skripsi pip
3
Aktifkan conda env dengan perintah:
$ source activate [nama-conda-env]

Contoh:
$ source activate skripsi
4
Lakukan instalasi package Python yang dibutuhkan dengan pip
5
Untuk menonaktifkan conda env jalankan perintah:

$ conda deactivate

Manajemen Conda Environment
a
Mengaktifkan conda env yang telah dibuat:
  1. Muat modul Anaconda yang dipakai untuk membuat conda env.
  2. Lakukan source activate.
b
Melihat daftar conda env yang telah dibuat:
$ conda env list
c
Mengubah nama conda env:
$ conda rename -n [nama-saat-ini] [nama-baru]

Contoh mengubah nama env skripsi ke tesis
$ conda rename -n skripsi tesis
d
Menghapus conda env:

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

Metode Menjalankan Komputasi

User dapat memilih metode menjalankan komputasi sesuai keinginan:

  • Job submission terminal
    • Menggunakan manajemen Slurm di terminal dan compute node.
    • Hanya untuk file Python (py), file ipynb harus diubah ke py.
  • Job submission web EFIRO
    • Menggunakan manajemen Slurm di laman web EFIRO dan compute node.
    • Hanya untuk file Python (py), file ipynb harus diubah ke py.
  • Interactive job Jupyter
    • Sesi IDE Jupyter Lab atau Notebook.
    • Menggunakan interactive node.

Job Submission Terminal

Langkah Job Submission Terminal

Sbatch Terminal.png

1
Login SSH ke ALELEON Supercomputer.
2
Siapkan conda env dan file komputasi yang dibutuhkan.
3A
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 didalamnya.
Anaconda Python di CPU
#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Anaconda Python (CPU)
# 
# NOTES: 
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat 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 

# Nama Conda Environment yang digunakan
CONDA_NAME=////

# Nama program Python yang dijalankan
INPUT_FILE=////.py

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

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

# Menjalankan file Python
python3 ${INPUT_FILE}
Anaconda Python di GPU
#!/bin/bash

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

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

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

# Nama Conda Environment yang digunakan
CONDA_NAME=////

# Nama program Python yang dijalankan
INPUT_FILE=////.py

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

# Memuat modul NVIDIA CUDA default 
module load cuda

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

# Menjalankan file Python
python3 ${INPUT_FILE}

Info script lebih detail lihat Submit Script ALELEON Supercomputer.

3B

Panduan nilai maksimal SBATCH

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

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

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

$ squeue -ul $USER

Daftar ST (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

Job Submission Web EFIRO

Langkah Job Submission Web EFIRO

Efirojobcomposer3.png

1
Login ke web EFIRO ALELEON Supercomputer.
2
Buka app Job Composer New Pinnedapps jc.png di homepage EFIRO.

Pilih menu New Job -> From Template

Jcnewjobmarked.png

3
Pilih template Anaconda Python yang diinginkan
Nama Template Penjelasan
Anaconda Python (CPU) Menjalankan Anaconda Python di CPU
Anaconda Python (GPU) Menjalankan Anaconda Python di GPU

Kemudian Isi Job Name dan klik Create New Job

Jctemplate-2.png

4
Upload dan edit file untuk job komputasi pada Edit Files

Jcjoboption.png

  • Untuk upload file tunggal diatas 2GB gunakan software FTP.
  • Apabila butuh akses terminal buka Open Terminal.
5A
Lengkapi Submit Script melalui tombol Open Editor.

  • Submit script adalah 'formulir' untuk menjalankan job komputasi.
  • Ikuti petunjuk NOTES didalamnya
  • Klik Save setiap kali mengubah script.
5B

Panduan nilai maksimal SBATCH

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 berikut pada 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.
  • Job completed dapat dijalankan kembali dengan Submit.
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 di tengah jalan, antara error atau di stop user
Untuk melihat alasan queue:
  1. Buka app Active Jobs Pinnedapps activejobs.pngdi homepage EFIRO.
  2. Ubah opsi Your jobs untuk melihat status job user saja. Klik simbol > untuk melihat status job pending pada kolom Reason. Arti reason lihat laman Daftar Reason NODELIST ALELEON Supercomputer.
7
Lihat output file komputasi pada kolom Folder Contents
  • Atau dengan membuka Edit Files
Kolom Folder Contents.

Interactive Job Jupyter

Langkah Interactive Job Sesi Jupyter

Efirojupyterlab.png

1
Login ke web EFIRO ALELEON Supercomputer.
2
Buka app Jupyter New Pinnedapps jupyter.png di homepage EFIRO.
3
Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
  • Choose Jupyter version
    • pilih sesuai preferensi user, Jupyter Lab atau Notebook
  • Partition -> pilih sesuai kebutuhan:
    • torti -> CPU saja
    • tilla -> CPU dan GPU
Alokasi komputasi torti tilla
Number of CPU core(s) 1 - 32
Amount of memory/RAM 1 - 64
Number of GPUs - 1
Number of hours 1 - 72
Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:
  • Alokasi CPU * hours > sisa CPU Core Hour
  • Alokasi GPU * hours > sisa GPU Hour

Cek sisa Core Hour dengan:

  1. Buka app Pinnedapps terminal.png di homepage EFIRO
  2. Jalankan perintah sausage
  • Choose how to launch Jupyter -> Anaconda
  • Choose Anaconda version
    • Pilih versi yang digunakan untuk membuat conda env user
  • Conda environment directory
    • Isi nama conda env user yang akan digunakan
  • Software modules
    • Membuat modul software, isi sesuai kebutuhan user
    • Apabila menggunakan tilla, isi modul NVIDIA CUDA yang sesuai
Daftar Software Modules NVIDIA CUDA
Nama Software Modules Versi
cuda/11.2-cuDNN8.1.1 CUDA 11.2 + cuDNN 8.1.1
cuda/11.6-cuDNN8.3.3 CUDA 11.6 + cuDNN 8.3.3
cuda/11.8-cuDNN8.6.0 CUDA 11.8 + cuDNN 8.6.0
cuda/12.0-cuDNN8.7.0 CUDA 12.0 + cuDNN 8.7.0
cuda/12.1-cuDNN8.8.1 CUDA 12.1 + cuDNN 8.8.1
cuda/12.3-cuDNN8.9.6 CUDA 12.3 + cuDNN 8.9.6
  • Environment setup
    • Memuat environment variable, isi apabila ada
  • Additional Jupyter arguments
    • Memuat argument tambahan Jupyter, isi apabila ada
  • Email address
    • Notifikasi email untuk status mulai dan selesainya sesi Jupyter.
    • Isi apabila berkenan.
4
Klik tombol 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
5
Apabila status Running, klik tombol Connect to Jupyter.
  • Sistem mulai menghitung Core Hour!
Sesi Jupyter siap diakses.
Untuk menghentikan sesi, klik tombol Cancel.
6
Pilih Notebook Python 3 untuk memulai sesi notebook Python 3.
Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Notebook
Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Lab
7
User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
  • Menu My Interactive Sessions pada homepage EFIRO.
  • Kolom Active interactive sessions pada homepage EFIRO.

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