Komputasi Python dengan Conda Environment (Mandiri): Perbedaan antara revisi
WilsonLisan (bicara | kontrib) (melengkapi hyperlink subbab baru) |
WilsonLisan (bicara | kontrib) (→0. Standar Kompetensi dan Spesifikasi: menekankan user paham apa yang dia lakukan) |
||
Baris 2: | Baris 2: | ||
[[Berkas:Logo Python Anaconda Mamba ALELEON tp.png|400x400px]] | [[Berkas:Logo Python Anaconda Mamba ALELEON tp.png|400x400px]] | ||
Halaman ini menjelaskan menjalankan komputasi / aplikasi Python dengan conda environment '''<big>(conda env)</big>''' di ALELEON Supercomputer | Halaman ini menjelaskan menjalankan komputasi / aplikasi Python dengan conda environment '''<big>(conda env)</big>''' di ALELEON Supercomputer yang '''<big>dibuat secara mandiri oleh user itu sendiri.</big>''' | ||
{| class="wikitable" | {| class="wikitable" | ||
!''Laman ini merupakan bagian laman'' [<nowiki/>[[Komputasi Python]]] | !''Laman ini merupakan bagian laman'' [<nowiki/>[[Komputasi Python]]] | ||
Baris 8: | Baris 8: | ||
== '''''0. Standar Kompetensi dan Spesifikasi''''' == | == '''''0. Standar Kompetensi dan Spesifikasi''''' == | ||
Tutorial ini mengasumsikan user berpengalaman dalam instalasi environment dan package Python. | Tutorial ini mengasumsikan user berpengalaman dalam instalasi environment dan package Python serta memahami konteks instalasi mandiri untuk kebebasan kostumisasi tersendiri. | ||
=== Spesifikasi === | === Spesifikasi === |
Revisi per 3 Juli 2025 11.29
Halaman ini menjelaskan menjalankan komputasi / aplikasi Python dengan conda environment (conda env) di ALELEON Supercomputer yang dibuat secara mandiri oleh user itu sendiri.
Laman ini merupakan bagian laman [Komputasi Python] |
---|
0. Standar Kompetensi dan Spesifikasi
Tutorial ini mengasumsikan user berpengalaman dalam instalasi environment dan package Python serta memahami konteks instalasi mandiri untuk kebebasan kostumisasi tersendiri.
Spesifikasi
- Tutorial ini memandu membuat conda environment dengan site-packages yang terisolasi di dalamnya.
- Pembuatan conda env dan instalasi package mengkonsumsi storage HOME user.
- Pantau konsumsi storage HOME dengan perintah
$ ncdu $HOME
- Pantau konsumsi storage HOME dengan perintah
- Tutorial ini menggunakan keterangan simbol perintah terminal:
$
|
Perintah ketika conda env tidak aktif |
(env)$
|
Perintah ketika conda env aktif |
1. Langkah Menjalankan Komputasi
No | Subbab | Langkah |
---|---|---|
1 | [ 2 ] | Buat conda env untuk menampung instalasi package. |
2 | [ 3 ] | Manajemen conda env, pilih yang dibutuhkan: |
3 | [ 4 ] | Langkah bagi yang akan menjalankan package Python versi CUDA |
4 | [ 5 ] | Menjalankan komputasi dengan pilihan: |
2. Membuat Conda Environment
ALELEON Supercomputer menyediakan pilihan Python Package Manager (PPM) berikut untuk membuat conda env. Pilih sesuai preferensi user:
- Anaconda: PPM Python paling banyak digunakan dan saat ini menjadi standar industri.
- Mamba: PPM Python alternatif Anaconda versi open-source komunitas.
(klik expand / kembangkan)
- Langkah Membuat conda env - | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Menggunakan terminal!
| |||||||||||||||||||||||||||
-/ 1 /-
| |||||||||||||||||||||||||||
Pilih dan aktifkan modul PPM untuk membuat conda env:
$ module load [nama-modul-anaconda-atau-mamba]
| |||||||||||||||||||||||||||
Saran sebelum langkah 2 ... | |||||||||||||||||||||||||||
Pilih nama conda env yang mengandung unsur nama modul:
| |||||||||||||||||||||||||||
-/ 2 /-
| |||||||||||||||||||||||||||
Buat conda env dengan opsi: | |||||||||||||||||||||||||||
2A - Conda env kosong dengan Python versi tertentu, apabila:
- Anaconda $ conda create -n [nama-conda-env] python=[versi] - Mamba $ mamba create -n [nama-conda-env] python=[versi] Contoh dengan Python 3.10 $ conda create -n skripsi python=3.10 | |||||||||||||||||||||||||||
2B - Conda env kosong dengan Python versi 3.12.
- Anaconda $ conda create -n [nama-conda-env] python=3.12 - Mamba $ mamba create -n [nama-conda-env] python=3.12 | |||||||||||||||||||||||||||
2C - Conda env dengan file "resep" konfigurasi yml
- Anaconda $ conda create -f [nama-file-yml].yml - Mamba $ mamba create -f [nama-file-yml].yml | |||||||||||||||||||||||||||
--- |
3. Manajemen Conda Environment
Terdiri dari:
- [ 3.1 - Aktivasi Conda Env dan Instalasi Package ]
- [ 3.2 - Menghapus Cache Conda dan Package ]
- [ 3.3 - Menghapus Conda Environment ]
- [ 3.4 - Manajemen Lainnya ]
3.1. Aktivasi Conda Env dan Instalasi Package
Ada baiknya user melengkapi instalasi package sebelum menjalankan komputasi karena:
- Batch job -> supaya script Python berjalan tanpa error missing package.
- Sesi Jupyter -> untuk efisiensi penggunaan karena terkadang ada package yang membutuhkan waktu lama untuk instalasi.
Langkah berikut berjalan di login node dan tidak mengkonsumsi Core Hour.
- Mengaktifkan dan Instalasi Package Conda Env - |
---|
Menggunakan terminal!
|
-/ 1 /-
|
Muat modul PPM yang digunakan untuk membuat conda env:
$ module load [nama-modul-anaconda-atau-mamba] |
-/ 2 /-
|
Aktifkan conda env dengan perintah source :
$ source activate [nama-conda-env] - Apabila lupa nama conda env, cari dengan: $ conda env list |
-/ 3 /-
|
Lakukan instalasi package Python yang dibutuhkan:
|
-/ 4 /-
|
Untuk user yang hendak menggunakan sesi Jupyter |
Instal package:
(env)$ pip install jupyter jupyterlab |
-/ 5 /-
|
Lihat subbab [ 4 ] |
-/ 6 /-
|
Apabila hendak menonaktfkan conda env:
(env)$ conda deactivate |
3.2. Menghapus Cache Conda dan Package
Pembuatan conda env dan instalasi package Python juga mengeluarkan file cache yang apabila dibiarkan akan menumpuk dan menghabiskan ruang storage HOME. User dapat berkala membersihkan cache ini.
- Menghapus cache conda dan package - |
---|
-/ 1 /-
|
Muat modul PPM yang digunakan untuk membuat conda env:
$ module load [nama-modul-anaconda-atau-mamba] |
-/ 2 /-
|
Pilih opsi: |
- Menghapus index dan cache package conda. - Tidak mempengaruhi conda env dan package - di dalamnya. $ conda clean --all - Menghapus semua cache pip $ pip cache purge |
3.3. Menghapus Conda Environment
Apabila merasa tidak dibutuhkan, user dapat menghapus conda environment dimana juga meluangkan storage HOME.
- Menghapus conda environment - |
---|
-/ 1 /-
|
Muat modul PPM yang digunakan untuk membuat conda env:
$ module load [nama-modul-anaconda-atau-mamba] |
-/ 2 /-
|
Hapus conda env dengan:
$ conda remove -n [nama-conda-env] --all |
3.4. Manajemen Conda Environment Lainnya
Berikut manajemen conda yang sekiranya berguna:
(klik expand / kembangkan)
- Manajemen conda environment lainnya - |
---|
- Mengganti nama conda env $ conda rename -n [nama-conda-env-saat-ini] [nama-conda-env-baru] - Menduplikat conda env yang ada $ conda create -n [nama-conda-duplikat] --clone [nama-conda-env-yang-ada] - Membuat file konfigurasi yml dari conda env yang aktif (env)$ conda env create -f [nama-file-yml].yml |
4. Instalasi Package Python versi GPU / CUDA?
Perhatikan hal berikut apabila user menginstal package Python versi CUDA dan hendak menggunakan compute / interactive node GPU:
- Package membutuhkan jenis dan versi library NVIDIA sesuai seperti CUDA, cuDNN untuk dapat berjalan di GPU NVIDIA.
- Umumnya (walau tidak semua) package Python CUDA saat ini juga menginstal package NVIDIA yang dibutuhkan.
- Berikut metode mengecek dan melengkapi library NVIDIA yang dibutuhkan package:
- Melanjutkan langkah 5 instalasi di atas - |
---|
-/ 5A /-
|
Cek ketersediaan library CUDA di conda env:
- Apabila instal package dengan pip (env)$ pip list | grep cuda - Apabila instal package dengan conda (env)$ conda list | grep cuda |
Ada output |
Conda env siap digunakan.
|
Tidak ada output |
User harus memuat modul CUDA ketika menjalankan job:
|
5. Pilihan Menjalankan Komputasi
Berikut opsi menjalankan komputasi Python dengan conda env, pilih sesuai kebutuhan:
- [ 5.1 - Batch Job ]
- Menjalankan script Python siap jalan tanpa interaksi user di [Compute node].
- Batch job akan berhenti ketika:
- Program komputasi selesai berjalan.
- Program komputasi menyentuh limit waktu yang ditentukan user.
- Program menjumpai error sehingga selesai prematur.
- Koneksi user tidak mempengaruhi jalannya batch job:
- Job tidak akan berhenti ketika koneksi user terputus, atau
- user keluar (log out) dari ALELEON.
- [ 5.2 - Sesi Jupyter ]
- Menjalankan sesi interaktif Jupyter Lab atau Notebook di [interactive node].
- Sesi Jupyter akan berhenti ketika:
- Waktu sesi habis.
- Sesi dihentikan secara manual oleh user.
- Sesi menjumpai error sehingga selesai prematur.
- Koneksi user tidak mempengaruhi jalannya sesi Jupyter, contoh:
- Sesi tidak akan berhenti ketika koneksi user terputus, atau
- user keluar (log out) dari ALELEON.
- Ketika user keluar dari sesi Jupyter saat cell berjalan dan kembali masuk:
- Bisa jadi cell tsb. tidak menampilkan proses jalannya komputasi.
- Lihat cell berikutnya apakah belum / sedang / sudah selesai berjalan.
---
5.1. Batch Job
Menjalankan script Python siap jalan tanpa interaksi user di [Compute node]..
Perhatikan file
.ipynb
harus dikonversi ke file.py
.- Job dijalankan oleh manajemen Slurm, user menunggu hingga selesai.
(klik expand / kembangkan)
- Langkah Batch Job di Terminal - | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tutorial ini mengasumsikan user familiar dengan terminal Linux | |||||||||||||||||||||||||||
Menggunakan terminal!
| |||||||||||||||||||||||||||
-/ 0 /-
| |||||||||||||||||||||||||||
Apakah bisa menjalankan job? | |||||||||||||||||||||||||||
User dengan Kredit Core Hour disarankan cek kuota terlebih dulu:
$ sausage
| |||||||||||||||||||||||||||
-/ 1 /-
| |||||||||||||||||||||||||||
Lakukan persiapan: | |||||||||||||||||||||||||||
1A - Pastikan package lengkap pada conda env yang akan digunakan:
1B - Siapkan file komputasi yang dibutuhkan:
1C - 1 - Nonaktifkan conda env di terminal apabila aktif: (env)$ conda deactivate 2 - Nonaktifkan modul Package Python: $ ml unload Anaconda Mamba Apabila ada pesan ini, abaikan: the module ... cannot be unloaded because it was not loaded | |||||||||||||||||||||||||||
-/ 2A /-
| |||||||||||||||||||||||||||
Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi:
$ nano submit.sh atau vim | |||||||||||||||||||||||||||
Contoh template Submit Script:
| |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
-/ 2B /-
| |||||||||||||||||||||||||||
SBATCH komputasi (ntasks, mem, time, dll) punya limit berdasarkan:
Untuk melihat limit, jalankan perintah berikut: $ slimit-python
| |||||||||||||||||||||||||||
-/ 3 /-
| |||||||||||||||||||||||||||
Jalankan job dengan perintah:
$ sbatch [nama-submit-script] Contoh: $ sbatch submit.sh | |||||||||||||||||||||||||||
-/ 4 /-
| |||||||||||||||||||||||||||
User dapat melihat status jalannya job dengan perintah:
$ squeue -ul $USER
| |||||||||||||||||||||||||||
-/ 5 /-
| |||||||||||||||||||||||||||
User dapat memantau file output dengan perintah Unix seperti:
| |||||||||||||||||||||||||||
-/ 6 /-
| |||||||||||||||||||||||||||
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 Batch Job di web EFIRO - | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-/ 0 /-
| ||||||||||||||||||||||||
Apakah bisa menjalankan job? | ||||||||||||||||||||||||
User dengan Kredit Core Hour disarankan cek kuota terlebih dulu:
$ sausage
| ||||||||||||||||||||||||
-/ 1 /-
| ||||||||||||||||||||||||
[Login ke web EFIRO] ALELEON Supercomputer. | ||||||||||||||||||||||||
-/ 2 /-
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
![]() New Job > From Template
| ||||||||||||||||||||||||
-/ 3 /-
| ||||||||||||||||||||||||
Buat ruang job untuk menjalankan komputasi: | ||||||||||||||||||||||||
Create New Job
| ||||||||||||||||||||||||
-/ 4 /-
| ||||||||||||||||||||||||
Lakukan persiapan: | ||||||||||||||||||||||||
4A - Pastikan package lengkap pada conda env yang akan digunakan:
4B - Siapkan file komputasi yang dibutuhkan di ruang job:
| ||||||||||||||||||||||||
-/ 5A /-
| ||||||||||||||||||||||||
Lengkapi Submit Script melalui tombol Open Editor
| ||||||||||||||||||||||||
![]()
... module load ${PM} module load [Nama-modul-CUDA] ...
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
-/ 5B /-
| ||||||||||||||||||||||||
SBATCH komputasi (ntasks, mem, time, dll) punya limit berdasarkan:
Untuk melihat limit, jalankan perintah berikut: $ slimit-python
| ||||||||||||||||||||||||
-/ 6 /-
| ||||||||||||||||||||||||
Jalankan job dengan klik tombol Submit
| ||||||||||||||||||||||||
-/ 7 /-
| ||||||||||||||||||||||||
Lihat output file komputasi pada kolom Folder Contents
| ||||||||||||||||||||||||
-/ 8 /-
| ||||||||||||||||||||||||
Apabila user ingin menghentikan job yang berjalan, klik Stop
| ||||||||||||||||||||||||
-/ 9 /-
| ||||||||||||||||||||||||
Untuk menghapus ruang job dan datanya:
| ||||||||||||||||||||||||
--- |
5.2. Sesi Jupyter
Menjalankan sesi interaktif Jupyter Lab atau Notebook di [interactive node].
(klik expand / kembangkan)
- Langkah Sesi Jupyter - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-/ 1 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[Login ke web EFIRO] ALELEON Supercomputer. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 2 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lakukan persiapan sebelum sesi Jupyter: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Untuk efisiensi sesi terkait batasan waktu dan konsumsi Core Hour:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 3 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 4 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 5 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Klik tombol Launch untuk memulai sesi Jupyter:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 6 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apabila status Running, klik tombol Connect to Jupyter
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 7 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gunakan kernel Python 3 (ipykernel) untuk sesi Jupyter. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-/ 8 /-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sesi Jupyter tidak terputus ketika:
User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--- |
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
Kontributor
EFISON turut mengucapakan terima kasih spesial kepada:
- [Sadasa Aacademy] untuk pengujian semua tutorial di laman ini.