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
Langkah Interactive Job Sesi Jupyter
|
1
|
Login ke web EFIRO ALELEON Supercomputer.
|
2
|
Siapkan Conda Env yang akan digunakan.
- Disarankan untuk melengkapi instalasi library sebelum sesi Jupyter.
|
3
|
|
Buka pinned apps Jupyter di homepage EFIRO.
|
|
4
|
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
Formulir alokasi komputasi
|
Partition
|
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 apabila memilih tilla.
Cek sisa Core Hour dengan:
- Buka menu
Clusters -> ALELEON Shell Access
- Jalankan perintah
$ sausage
|
- Choose how to launch Jupyter -> Anaconda
- Choose Anaconda version
- Idealnya pilih versi yang dipakai untuk membuat Conda Env user.
- Apabila lupa, gunakan Anaconda terbaru.
- Conda environment directory
- Isi nama Conda Env user yang akan digunakan.
- Software modules
- Membuat modul software, isi apabila ada.
- Apabila menggunakan tilla, isi modul NVIDIA CUDA yang sesuai.
- 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.
|
5
|
Klik tombol Launch untuk memulai sesi Jupyter.
- User akan diarahkan ke halaman
My Interactive Sessions .
- Tunggu hingga sesi Jupyter siap diakses.
|
6
|
Apabila status Running, klik tombol Connect to Jupyter .
- Sistem mulai menghitung Core Hour!
- Untuk menghentikan sesi lebih cepat dari alokasi waktu, klik tombol
Cancel
|
7
|
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
|
8
|
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.
Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:
support@efisonlt.com