Berkas:Logo Python - Anaconda - Mamba ALELEON.png
Halaman ini menjelaskan menjalankan komputasi Python dengan conda environment di ALELEON Supercomputer.
Langkah Menjalankan Komputasi
Terdapat dua langkah utama:
- Membuat conda environment dan instal package yang diperlukan di dalamnya.
- Menjalankan komputasi dengan conda env tersebut.
Membangun Conda Environment
ALELEON Supercomputer menyediakan pilihan package manager Python untuk membuat conda environment. Pilih sesuai preferensi user:
|
|
- PM Python paling banyak digunakan.
- Saat ini menjadi standar industri.
|
- Alternatif Anaconda, dibuat dengan C++.
- Dikembangkan oleh komunitas.
- Dalam beberapa kasus lebih ringan dan cepat.
|
Membuat dan Manajemen Conda Environment
|
Menggunakan terminal!
- User web EFIRO buka app
Aleleon Shell Access .
|
1
|
Pilih skenario berikut yang sesuai dengan kebutuhan user:
(klik expand / kembangkan)
Membuat conda env secara umum dengan Anaconda
|
1
|
Pilih dan aktifkan modul Anaconda untuk membuat conda env:
$ module load [nama-modul-anaconda]
Daftar nama modul Anaconda 3
Versi
|
Nama Modul
|
Versi Py default
|
2024-02-1
|
Anaconda3/2024.02-1
|
3.11.7
|
2023.07-2
|
Anaconda3/2023.07-2
|
3.11.4
|
2022.05
|
Anaconda3/2022.05
|
3.9.12
|
2021.05
|
Anaconda3/2021.05
|
3.8.8
|
2020.11
|
Anaconda3/2020.11
|
3.8.5
|
|
2
|
Ingat atau catat modul Anaconda yang dipakai.
- Kedepannya digunakan untuk mengaktifkan conda env ini.
|
3
|
Buat conda env di direktori HOME:
$ conda create -n [nama-conda-env]
Contoh nama 'skripsi' -> $ conda create -n skripsi
|
4
|
Aktifkan conda env dengan perintah source:
$ source activate [nama-conda-env]
Contoh nama 'skripsi' -> $ source activate skripsi
|
Menonaktifkan conda env:
|
(env-user)$ conda deactivate
|
Mengaktifkan kembali conda env:
|
Lakukan langkah 1 dan 4 . Apabila lupa nama env:
$ conda env list
|
Manajemen lainnya:
|
Manajemen lain seperti rename, delete, clone, export, dll lihat:
Untuk opsi menambah instalasi package lihat:
|
---
|
Membuat conda env secara umum dengan Mamba
|
1
|
Pilih dan aktifkan modul Mamba untuk membuat conda env:
$ module load [nama-modul-mamba]
Daftar nama modul Mamba
Versi
|
Nama Modul
|
Versi Py default
|
23.11.0-0
|
Mamba/23.11.0-0
|
3.10.13
|
|
2
|
Ingat atau catat modul Mamba yang dipakai.
- Kedepannya digunakan untuk mengaktifkan conda env ini.
|
3
|
Buat conda env di direktori HOME:
$ mamba create -n [nama-conda-env]
Contoh nama 'skripsi' -> $ mamba create -n skripsi
|
4
|
Aktifkan conda env dengan perintah source:
$ source activate [nama-conda-env]
Contoh nama 'skripsi' -> $ source activate skripsi
|
Menonaktifkan conda env:
|
(env-user)$ conda deactivate
|
Mengaktifkan kembali conda env:
|
Lakukan langkah 1 dan 4 . Apabila lupa nama env:
$ conda env list
|
Manajemen lainnya:
|
Manajemen lain seperti rename, delete, clone, export, dll lihat:
Untuk opsi menambah instalasi package lihat:
|
---
|
Membuat conda env package gmx_MMPBSA
|
Tool berbasis MMPBSA.py dari AMBER untuk:
- Kalkulasi end-state free energy dengan file GROMACS.
- Berdasarkan package Python sehingga butuh conda env.
|
1
|
Muat modul berikut (disarankan pakai Mamba):
$ ml Mamba/23.11.0-0 OpenMPI/4.1.1-GCC-11.2.0
|
2
|
Buat conda env dengan environment file yang tersedia:
$ mamba env create -f /comp/condaenv_yml/gmxMMPBSA.yml
|
Note:
- Perintah ini membuat conda env bernama
gmxMMPBSA .
- Conda env ini berisikan dependencies untuk instalasi gmx_MMPBSA:
Isi conda environment gmxMMPBSA
|
- Python 3.11.8
- AmberTools 23.6 versi conda
- Gromacs 2023.4
- MPI4PY 4.0.1 + MPICH 4.2.3
- Numpy 1.26.4
- Matplotlib 3.7.3
- SciPy 1.14.1
- Pandas 1.5.3
- Seaborn 4.2.2
- ParmEd 4.2.2
- PyQt6 6.7.1
|
|
3
|
Aktifkan conda env gmxMMPBSA dan instal package gmx_MMPBSA:
$ source activate gmxMMPBSA
$ python -m pip install gmx_MMPBSA
|
4
|
Conda env siap digunakan untuk komputasi dengan metode:
- [Batch Job] - menjalankan komputasi melalui manajemen Slurm.
|
Menonaktifkan conda env:
|
(env-user)$ conda deactivate
|
Mengaktifkan kembali conda env ini:
|
$ ml Mamba/23.11.0-0
$ source activate gmxMMPBSA
|
Manajemen lainnya:
|
Manajemen lain seperti rename, delete, clone, export, dll lihat:
Untuk opsi menambah instalasi package lihat:
|
---
|
|
Instalasi Package di Conda Environment
|
Menggunakan terminal!
- User web EFIRO buka app
Aleleon Shell Access .
|
1
|
Aktifkan conda env yang akan dipakai untuk instalasi package ini.
|
2
|
Pilih tutorial instalasi sesuai kebutuhan:
(klik expand / kembangkan)
Instalasi Package Secara Umum dengan pip / conda
|
User dapat melakukan instalasi package lainnya dengan pip atau conda
|
pip
|
Contoh umum:
(env-user)$ pip install [nama-package]
|
Daftar package dan tutorial instal pip lihat web:
|
|
conda
|
Contoh umum:
(env-user)$ conda install conda-forge::[nama-package]
|
Daftar package dan tutorial instal conda lihat web:
|
---
|
Instalasi Package TensorFlow
|
Tersedia dua versi TensorFlow, pilih sesuai kebutuhan:
- Versi CPU - berjalan di CPU.
- Versi GPU - berjalan dengan akselerasi GPU NVIDIA dan lib. CUDA.
|
Versi
|
Perintah pip
|
CPU
|
(env-user)$ python3 -m pip install tensorflow
|
GPU
|
(env-user)$ python3 -m pip install 'tensorflow[and-cuda]'
|
---
|
Instalasi Package PyTorch
|
Tersedia dua versi PyTorch, pilih sesuai kebutuhan:
- Versi CPU - berjalan di CPU.
- Versi GPU - berjalan dengan akselerasi GPU NVIDIA dan lib. CUDA.
|
Versi
|
Perintah pip
|
CPU
|
(env-user)$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
|
GPU - CUDA 11.8
|
(env-user)$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
|
GPU - CUDA 12.1
|
(env-user)$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
|
GPU - CUDA 12.4
|
(env-user)$ pip3 install torch torchvision torchaudio
|
---
|
Instalasi Package Jupyter untuk user Mamba
|
Conda env dari Mamba perlu instalasi package Jupyter untuk menggunakan sesi Jupyter:
(env-user)$ mamba install -c conda-forge jupyterlab
(env-user)$ mamba install -c conda-forge jupyter
|
---
|
|
Pilihan Menjalankan Komputasi
User dapat menjalankan komputasi dengan conda env melalui pilihan berikut, pilih sesuai kebutuhan:
Batch Job
Menjalankan script Python siap jalan tanpa interaksi user melalui manajemen Slurm di [compute node].
- Perhatikan untuk file
.ipynb
harus dikonversi ke file .py
.
- Tersedia dua pilihan tampilan yaitu terminal dan web EFIRO. Pilih sesuai keinginan.
(klik expand / kembangkan)
Langkah Job Submission Slurm di Terminal
|
Menggunakan terminal!
- User web EFIRO buka app
Aleleon Shell Access .
|
1
|
Siapkan conda env dan file komputasi yang dibutuhkan.
- User dapat upload / download file dengan software FTP.
- User web EFIRO juga dapat gunakan app
Home Directory
|
2A
|
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 dan alur script di dalamnya.
Klik expand / kembangkan
Template submit script Conda Environment versi CPU
|
#!/bin/bash
# -----------------------------------------------------
# Template SLURM Submit Script
# Python dengan Conda Environment (CPU) | rev.210125
#
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
# User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah melengkapi 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
# Input nama modul package manager yang digunakan untuk membuat
# conda env user. Daftar nama:
# Anaconda3/2020.11 || Anaconda3/2021.05 || Anaconda3/2022.05 ||
# Anaconda3/2023.07-2 || Anaconda3/2024.02-1 || Mamba/23.11.0-0 ||
PM="////"
# Nama conda environment yang digunakan
CONDA_NAME="////"
# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------
# Memuat modul
module load ${PM}
# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}
# Tuliskan perintah menjalankan komputasi Python user
# contoh -> python3 [nama-file-python]
////
|
|
Template submit script conda environment versi GPU
|
Note:
- Muat modul CUDA di submit script untuk komputasi Python GPU.
- Telusuri kebutuhan versi CUDA untuk package user.
- Daftar modul CUDA tersedia di template.
- Apabila tidak ada kebutuhan spesifik, pilih versi terbaru.
- Apabila modul CUDA yang dibutuhkan tidak ada:
- Hubungi tim admin di support@efisonlt.com untuk instalasi.
- Berikut info khusus untuk package tertentu:
(klik expand / kembangkan)
Bagi user yang menjalankan TensorFlow / PyTorch GPU
|
- Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
- Panduan memuat modul CUDA ada pada template script.
- Kebutuhan TensorFlow GPU lihat [Install TensorFlow with pip]
- Lihat bagian Software Requirements poin CUDA Toolkit
- Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
- Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
|
---
|
|
#!/bin/bash
# -----------------------------------------------------
# Template SLURM Submit Script
# Python dengan Conda Environment (GPU) | rev.210125
#
# NOTES:
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
# User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah melengkapi conda environment.
# -----------------------------------------------------
# -----------------------------------------------------
# Alokasi komputasi SBATCH dan file input
# -----------------------------------------------------
# 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
# Input nama modul package manager yang digunakan untuk membuat
# conda env user. Daftar nama:
# Anaconda3/2020.11 || Anaconda3/2021.05 || Anaconda3/2022.05 ||
# Anaconda3/2023.07-2 || Anaconda3/2024.02-1 || Mamba/23.11.0-0 ||
PM="////"
# Input nama modul NVIDIA CUDA yang sesuai dengan keperluan conda
# env user. Pilihan:
# cuda/11.2-cuDNN8.1.1 || cuda/11.6-cuDNN8.3.3 || cuda/11.8-cuDNN8.6.0 ||
# cuda/12.0-cuDNN8.7.0 || cuda/12.1-cuDNN8.8.1 || cuda/12.3-cuDNN8.9.6 ||
# cuda/12.4-cuDNN9.2.1 || cuda/12.5-cuDNN9.2.1
CUDA="////"
# Nama conda environment yang digunakan
CONDA_NAME="////"
# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------
# Memuat modul
module load ${PM} ${CUDA}
# Mengaktifkan Conda Environment
source activate ${CONDA_NAME}
# Tuliskan perintah menjalankan komputasi Python user
# contoh -> python3 [nama-file-python]
////
|
|
|
2B
|
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:
$ slimit-python
|
3
|
Jalankan job komputasi dengan perintah:
$ sbatch [nama-submit-script]
Contoh:
$ sbatch submit.sh
|
4
|
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
|
---
|
Langkah Job Submission Slurm di 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
|
Conda Environment Python (CPU)
|
Menjalankan conda env pada CPU
|
Conda Environment Python (GPU)
|
Menjalankan conda env 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 dan alur script didalamnya.
- Klik
Save setiap kali mengubah script.
- Perhatikan note berikut untuk skenario tertentu:
Klik expand / kembangkan
Bagi user yang menjalankan conda env di GPU
|
Note:
- Muat modul CUDA di submit script untuk memanfaatkan GPU.
- Telusuri kebutuhan versi CUDA untuk package user.
- Daftar modul CUDA tersedia di template.
- Apabila tidak ada kebutuhan spesifik, pilih versi terbaru.
- Apabila modul CUDA yang dibutuhkan tidak ada:
- Hubungi tim admin di support@efisonlt.com untuk instalasi.
- Berikut info khusus untuk package tertentu:
(klik expand / kembangkan)
Bagi user yang menjalankan TensorFlow / PyTorch GPU
|
- Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
- Panduan memuat modul CUDA ada pada template script.
- Kebutuhan TensorFlow GPU lihat [Install TensorFlow with pip]
- Lihat bagian Software Requirements poin CUDA Toolkit
- Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
- Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
|
---
|
|
|
|
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
|
---
|
Sesi Jupyter
Menjalankan sesi interaktif Jupyter Lab atau Notebook di [interactive node].
Langkah Sesi Jupyter
|
1
|
Login ke web EFIRO ALELEON Supercomputer.
|
2
|
Siapkan conda environment yang akan digunakan.
- Jangan lupa instal package Jupyter untuk conda env dari Mamba
|
Untuk sesi Jupyter efektif terkait batasan waktu dan konsumsi Core Hour:
- Disarankan melengkapi instalasi package sebelum sesi Jupyter.
- Hindari instalasi package besar selama 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 -> interactive node CPU
tilla -> interactive node GPU
|
|
Number of CPU thread(s)
|
Alokasi core CPU, range 2 - 32 untuk torti dan tilla.
|
|
Amount of memory/RAM (GB)
|
Alokasi RAM dalam satuan GB, range 1 - 64 untuk torti dan tilla.
|
|
Number of GPUs
|
Jumlah GPU, isi angka 1 apabila pakai tilla
|
|
Number of hours
|
Waktu maksimal sesi Jupyter, range 1 - 72 untuk torti dan tilla.
|
|
Form CPU, RAM, GPU, dan hours mempunyai limit berdasarkan:
- Sisa Core Hour user dan Fair Usage Limit.
- Spesifikasi sistem dan software komputasi.
Langkah melihat limit:
- Buka menu Clusters > Aleleon Shell Access
$ slimit-python
|
|
Choose how to launch Jupyter
|
Pilih Anaconda/Mamba
|
|
Choose Anaconda/Mamba version
|
Pilih versi yang digunakan untuk membuat conda env user.
|
|
Conda/Mamba environment directory
|
Isi nama conda env user, contoh: skripsi
|
|
Software Modules
|
Memuat modul software diluar conda env user , isi apabila ada.
- Perhatikan note berikut bagi yang memilih partition tilla:
Klik expand / kembangkan
User tilla dan software modules NVIDIA CUDA
|
Note:
- Muat modul CUDA untuk memanfaatkan GPU di Tilla.
- Telusuri kebutuhan versi CUDA untuk package user.
- Berikut daftar modul CUDA tersedia:
- Apabila tidak ada kebutuhan spesifik, pilih versi terbaru.
Versi CUDA
|
Nama modul
|
11.2
|
cuda/11.2-cuDNN8.1.1
|
11.6
|
cuda/11.6-cuDNN8.3.3
|
11.8
|
cuda/11.8-cuDNN8.6.0
|
12.0
|
cuda/12.0-cuDNN8.7.0
|
12.1
|
cuda/12.1-cuDNN8.8.1
|
12.3
|
cuda/12.3-cuDNN8.9.6
|
12.4
|
cuda/12.4-cuDNN9.2.1
|
12.5
|
cuda/12.5-cuDNN9.2.1
|
- Apabila modul CUDA yang dibutuhkan tidak ada:
- Hubungi tim admin di support@efisonlt.com untuk instalasi.
- Berikut info khusus untuk package tertentu:
(klik expand / kembangkan)
Bagi user yang menjalankan TensorFlow / PyTorch GPU
|
- Membutuhkan library NVIDIA CUDA spesifik untuk berjalan.
- Panduan memuat modul CUDA ada pada template script.
- Kebutuhan TensorFlow GPU lihat [Install TensorFlow with pip]
- Lihat bagian Software Requirements poin CUDA Toolkit
- Kebutuhan PyTorch GPU mengikuti pilihan instalasi user.
- Sesuaikan dengan nama modul CUDA ALELEON (cukup jelas).
|
---
|
|
|
|
Environment setup
|
Memuat environment variable, isi apabila ada.
|
|
Additional Jupyter arguments
|
Memuat argumen tambahan Jupyter, isi apabila ada.
|
|
Email address
|
Notifikasi email untuk status mulai dan selesainya Jupyter.
|
|
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 yang sedang running, 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