Komputasi Python dengan Conda Environment: Perbedaan antara revisi
Dari ALELEON by EFISON
WilsonLisan (bicara | kontrib) (test) |
WilsonLisan (bicara | kontrib) (test) |
||
Baris 12: | Baris 12: | ||
Kegiatan ini dilakukan pada '''terminal''': | Kegiatan ini dilakukan pada '''terminal''': | ||
* Diakses melalui login SSH | * Diakses melalui [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''login SSH'''], atau | ||
* | * Pada web EFIRO, buka menu '''Clusters -> Aleleon Shell Access''' | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
Baris 20: | Baris 20: | ||
| rowspan="2" |1 | | rowspan="2" |1 | ||
|Pilih dan aktifkan modul Anaconda yang akan digunakan. | |Pilih dan aktifkan modul Anaconda yang akan digunakan. | ||
<code>'''$ module load | <code>'''$ module load ''[nama-modul-anaconda]'''''</code> | ||
|- | |- | ||
| | | | ||
Baris 44: | Baris 44: | ||
|2 | |2 | ||
|Buat conda env di direktori HOME dan aktifkan dengan perintah: | |Buat conda env di direktori HOME dan aktifkan dengan perintah: | ||
'''$ conda create --name '' | '''$ conda create --name ''[nama-conda-env]'' pip''' | ||
''Contoh | ''Contoh nama 'skripsi''' | ||
$ conda create --name '''skripsi''' pip | $ conda create --name '''skripsi''' pip | ||
Baris 58: | Baris 58: | ||
| rowspan="2" |1 | | rowspan="2" |1 | ||
|Aktifkan conda env dengan perintah: | |Aktifkan conda env dengan perintah: | ||
'''$ source activate '' | '''$ source activate ''[nama-conda-env]''''' | ||
''Contoh mengaktifkan conda env 'skripsi''' | ''Contoh mengaktifkan conda env 'skripsi''' | ||
Baris 83: | Baris 83: | ||
| rowspan="2" |2 | | rowspan="2" |2 | ||
|Untuk mengubah nama conda env: | |Untuk mengubah nama conda env: | ||
'''$ conda rename -n '' | '''$ conda rename -n ''[nama-saat-ini]'' ''[nama-baru]''''' | ||
''Contoh mengubah nama env skripsi ke tesis'' | ''Contoh mengubah nama env skripsi ke tesis'' | ||
Baris 105: | Baris 105: | ||
#* File ipynb harus dikonversi ke file Python. | #* File ipynb harus dikonversi ke file Python. | ||
# Berjalan di Compute Node. | # Berjalan di Compute Node. | ||
# Tutorial ini mengasumsikan user | # Tutorial ini mengasumsikan user familiar dengan terminal Linux. | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
! colspan="2" |Langkah Job Submission Terminal | ! colspan="2" |Langkah Job Submission Terminal | ||
Baris 111: | Baris 111: | ||
|- | |- | ||
|1 | |1 | ||
|Lakukan [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH ''' | |Lakukan [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''] ke ALELEON Supercomputer. | ||
|- | |- | ||
|2 | |2 | ||
Baris 128: | Baris 128: | ||
!Anaconda Python di CPU | !Anaconda Python di CPU | ||
|- | |- | ||
| | |<syntaxhighlight lang="bash"> | ||
#!/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} | |||
</syntaxhighlight> | |||
|} | |} | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
!Anaconda Python di GPU | !Anaconda Python di GPU | ||
|- | |- | ||
| | |<syntaxhighlight lang="bash"> | ||
#!/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} | |||
</syntaxhighlight> | |||
|} | |} | ||
|- | |- | ||
| | | | ||
| | | | ||
{| class="wikitable" | |||
|+ | |||
!Panduan nilai maksimal alokasi komputasi SBATCH | |||
|- | |||
|'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan:''' | |||
<code>#SBATCH --ntasks=128</code> | |||
<code>#SBATCH --mem=128GB</code><code>#SBATCH --gpus=2</code><code>#SBATCH --time=72:00:00</code>User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini''']. | |||
|- | |||
|'''Versi CPU''' | |||
<code>#SBATCH --ntasks=128</code> | |||
<code>#SBATCH --mem=128GB</code><code>#SBATCH --time=72:00:00</code> | |||
|- | |- | ||
| | | | ||
| | |} | ||
|- | |||
|4 | |||
|Jalankan job komputasi dengan perintah: | |||
'''$ sbatch ''[nama-submit-script]''''' | |||
''Contoh:'' | |||
$ sbatch submit.sh | |||
|- | |||
|5 | |||
|User dapat melihat status jalannya job dengan perintah: | |||
'''<code>$ squeue -ul $USER</code>''' | |||
|} | |} | ||
Revisi per 4 April 2024 06.53
Halaman ini menjelaskan menjalankan komputasi Python dengan environment Anaconda di ALELEON Supercomputer.
Langkah Menjalankan Komputasi
Terdapat dua langkah utama:
- Membuat dan menyiapkan conda environment untuk komputasi user.
- Memilih metode menjalankan komputasi.
Membuat Conda Environment
Kegiatan ini dilakukan pada terminal:
- Diakses melalui login SSH, atau
- Pada web EFIRO, buka menu Clusters -> Aleleon Shell Access
Membuat Conda Environment | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Pilih dan aktifkan modul Anaconda yang akan digunakan.
| |||||||||||
| ||||||||||||
2 | Buat conda env di direktori HOME dan aktifkan dengan perintah:
$ conda create --name [nama-conda-env] pip Contoh nama 'skripsi' $ conda create --name skripsi pip |
Mengaktifkan Conda Environment dan Instalasi Package | |
---|---|
0 | Aktifkan modul Anaconda yang digunakan untuk membuat conda env user. |
1 | Aktifkan conda env dengan perintah:
$ source activate [nama-conda-env] Contoh mengaktifkan conda env 'skripsi' $ source activate skripsi |
User dapat melihat daftar conda env yang dibuat sebelumnya dengan:
| |
2 | Lakukan instalasi package Python yang dibutuhkan dengan pip
|
3 | Untuk menonaktifkan conda env jalankan perintah:
|
Manajemen Conda Environment | |
---|---|
1 | Deactivate conda env untuk melakukan manajemen dibawah ini. |
2 | Untuk mengubah nama conda env:
$ conda rename -n [nama-saat-ini] [nama-baru] Contoh mengubah nama env skripsi ke tesis $ conda rename -n skripsi tesis |
Untuk menghapus conda env:
|
Metode Menjalankan Komputasi
User dapat memilih metode menjalankan komputasi sesuai keinginan:
- Job submission di terminal
- Job submission di web EFIRO
- Interactive job Jupyter Lab / Notebook
Job Submission Terminal
Ketentuan:
- Menjalankan file Python di terminal dengan scheduler SLURM.
- File ipynb harus dikonversi ke file Python.
- Berjalan di Compute Node.
- Tutorial ini mengasumsikan user familiar dengan terminal Linux.
Langkah Job Submission Terminal | |||||
---|---|---|---|---|---|
1 | Login SSH ke ALELEON Supercomputer. | ||||
2 | Siapkan conda env dan file komputasi yang dibutuhkan.
| ||||
3 | Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi.
| ||||
Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
| |||||
| |||||
4 | Jalankan job komputasi dengan perintah:
$ sbatch [nama-submit-script] Contoh: $ sbatch submit.sh | ||||
5 | User dapat melihat status jalannya job dengan perintah:
|
Job Submission Web EFIRO
Ketentuan:
- Menjalankan file Python di web EFIRO Job Composer dengan scheduler SLURM.
- File ipynb harus dikonversi ke file Python.
- Berjalan di Compute Node.
Langkah Job Submission Web EFIRO | |
---|---|
Interactive Job Jupyter
Ketentuan:
- Menjalankan sesi interaktif Jupyter Lab atau Notebook.
- Berjalan di Interactive Node.
Langkah Interactive Job Sesi Jupyter | |
---|---|