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
Membuat Conda Environment dan Instalasi Package Python
|
1
|
Masuk ke terminal melalui:
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
|
|
3
|
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
|
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:
- 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:
$ conda remove -n <nama-conda-env> --all
|
Metode Menjalankan Komputasi
User dapat memilih metode menjalankan komputasi sesuai keinginan:
- 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.
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
|
1
|
[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 di CPU
|
Anaconda Python (GPU)
|
Menjalankan Anaconda Python di GPU
|
Kemudian Isi Job Name dan klik Create New Job
|
4
|
Upload dan edit file untuk job komputasi pada Edit Files
- 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:
- Buka app
Active Jobs di homepage EFIRO.
|
|
7
|
Lihat output file komputasi pada kolom Folder Contents
- Atau dengan membuka
Edit Files
|
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