Berkas: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.
Langkah Menjalankan Komputasi
Terdapat dua langkah utama:
- Membuat dan menyiapkan conda environment untuk komputasi user.
- Memilih metode menjalankan komputasi.
Membuat Conda Environment (Conda Env)
Membuat Conda Environment dan Instalasi Library Python
|
1
|
Masuk ke terminal melalui Login SSH atau
Kegiatan ini tidak mengurangi Core Hour user.
|
2
|
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
|
Note: Apabila bingung memilih versi yang mana, pilih versi terbaru
|
3
|
Buat Conda Env di direktori HOME dengan perintah:
$ conda create --name [nama-conda-env] pip
Contoh dengan nama 'skripsi'
$ conda create --name skripsi pip
|
4
|
Aktifkan Conda Env dengan perintah:
$ source activate [nama-conda-env]
Contoh:
$ source activate skripsi
|
5
|
Lakukan instalasi package Python yang dibutuhkan dengan pip
|
6
|
Untuk menonaktifkan Conda Env jalankan perintah:
$ conda deactivate
|
Manajemen Conda Environment
|
a
|
Mengaktifkan Conda Env yang telah dibuat:
- Idealnya muat modul Anaconda yang dipakai untuk membuat conda env.
- Apabila lupa, bisa gunakan modul Anaconda terbaru.
- Aktifkan conda env dengan perintah:
$ source activate [nama-conda-env]
|
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: (klik expand / kembangkan)
- Job submission terminal
- Berjalan di compute node melalui manajemen Slurm.
- Hanya untuk file Python (py), file ipynb harus diubah ke py.
- Job submission web EFIRO
- Berjalan di compute node melalui manajemen Slurm via web EFIRO.
- Hanya untuk file Python (py), file ipynb harus diubah ke py.
- Interactive job Jupyter
Job Submission Terminal
Langkah Job Submission Terminal
|
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.
Template Submit Script Anaconda Python versi 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}
|
Untuk Anaconda versi GPU, apabila user butuh modul CUDA versi spesifik:
Template Submit Script Anaconda Python versi 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}
|
|
|
3B
|
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
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
|
Job Submission Web EFIRO
Langkah Job Submission Web EFIRO
|
1
|
Login ke web EFIRO ALELEON Supercomputer.
|
2
|
Buka pinned apps Job Composer di homepage EFIRO.
Pilih menu New Job -> From Template
|
3
|
Pilih template Anaconda Python yang diinginkan:
|
Nama Template
|
Penjelasan
|
Anaconda Python (CPU)
|
Menjalankan Anaconda Python pada CPU
|
Anaconda Python (GPU)
|
Menjalankan Anaconda Python pada GPU
|
Kemudian Isi Job Name dan klik Create New Job
|
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
|
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
|
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
|
8
|
Untuk menghapus ruang job dan datanya:
- Pilih ruang job yang akan dihapus.
- Klik menu
Delete
|
Interactive Job Jupyter
Pelaporan Kendala dan Support
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.
Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:
support@efisonlt.com