Komputasi dengan Container Apptainer: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) (menambah limitasi, melengkapi batch job (80% jadi)) |
WilsonLisan (bicara | kontrib) (menambah intro modif image Python) |
||
(8 revisi perantara oleh pengguna yang sama tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
[[Berkas: | [[Berkas:Logo Apptainer ALELEON tp.png|nirbing|400x400px]] | ||
Halaman ini menjelaskan langkah menjalankan komputasi di ALELEON Supercomputer dengan '''image container''' melalui platform '''[[https://apptainer.org/ Apptainer]].''' ALELEON Supercomputer dapat menyediakan dan menjalankan image container untuk komputasi berbagai bidang. | Halaman ini menjelaskan langkah menjalankan komputasi di ALELEON Supercomputer dengan '''image container''' melalui platform '''[[https://apptainer.org/ Apptainer]].''' ALELEON Supercomputer dapat menyediakan dan menjalankan image container untuk komputasi berbagai bidang. | ||
== '''Langkah Menjalankan Komputasi''' == | =='''Wololo!''' == | ||
Perhatikan halaman ini sedang dalam proses revisi penulisan. User disarankan untuk kembali mereferensi halaman ini setelah pesan ini hilang. Terima kasih untuk bersedia menunggu dan mohon maaf atas ketidaknyamanannya. | |||
== '''''Standar Kompetensi''''' == | |||
Tutorial ini mengasumsikan user: | |||
# Memahami cara kerja sistem container dan image. | |||
# Dalam ranah tertentu mengetahui teknis kompatibilitas software dan hardware. | |||
== '''''Langkah Menjalankan Komputasi''''' == | |||
Terdapat 2 langkah utama: | Terdapat 2 langkah utama: | ||
# Memilih image container yang digunakan. | # Memilih image container yang digunakan. | ||
# | #* ''Apabila mampu dan dibutuhkan - melengkapi image container baik secara internal (rebuild) atau eksternal.'' | ||
# Menjalankan image container sesuai ketentuannya. | |||
== '''Pilihan Image Container''' == | == '''''Pilihan Image Container''''' == | ||
Tersedia pilihan image berikut yang dapat dipilih sesuai preferensi user: | Tersedia pilihan image berikut yang dapat dipilih sesuai preferensi user: | ||
=== Image Global ALELEON Supercomputer === | |||
Image siap pakai yang dapat diakses global oleh semua user. | |||
''<small><code>(klik expand / kembangkan)</code></small>'' | * Tabel ini menyediakan info dan spesifikasi image esensial untuk penggunaannya di ALELEON Supercomputer. | ||
* Permohonan menyediakan image hubungi '''support@efisonlt.com'''. | |||
''<small><code>(klik expand / kembangkan)</code></small>'' | |||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
! colspan=" | ! colspan="6" |- Daftar Image Global ALELEON Supercomputer - | ||
|- | |- | ||
! rowspan="2" |Nama Image | ! rowspan="2" |Nama Image | ||
! colspan=" | ! colspan="5" |Support Hardware & Platform | ||
|- | |- | ||
!CPU | ![[Berkas:GMB CPU icon.png|nirbing|60x60px]] | ||
!GPU | ![[Berkas:GMB GPU icon.png|nirbing|80x80px]] | ||
! | !Parallel | ||
!Python | !Python | ||
!Jupyter | ![[Berkas:EOD Apps Jupyter icon.png|nirbing|80x80px]] | ||
|- | |- | ||
|PyTorch - NVIDIA NGC release 23.08 | |'''PyTorch - NVIDIA NGC release 23.08''' | ||
* ''PyTorch 2.1.0a0+29c30b1 versi CUDA'' | |||
{| class="wikitable" | {| class="wikitable" | ||
! | !dir dan nama img | ||
|<code>$NVCONT/ | |<code>'''$NVCONT/NGC_PyTorch_r23.08.sif'''</code> | ||
|- | |- | ||
!Info detail | !Info detail | ||
Baris 41: | Baris 51: | ||
|V | |V | ||
|V | |V | ||
* MPI | |||
* OMP | |||
|V | |V | ||
* 3.10 | |||
* pip | |||
|V | |V | ||
* Lab | |||
|- | |- | ||
|PyTorch - NVIDIA NGC release 24.04 | |'''PyTorch - NVIDIA NGC release 24.04''' | ||
* ''PyTorch 2.3.0a0+6ddf5cf85e versi CUDA'' | |||
{| class="wikitable" | {| class="wikitable" | ||
!direktori dan nama | !direktori dan nama | ||
|<code>$NVCONT/ | |<code>'''$NVCONT/NGC_PyTorch_r24.04.sif'''</code> | ||
|- | |- | ||
!Info detail | !Info detail | ||
Baris 56: | Baris 75: | ||
|V | |V | ||
|V | |V | ||
* MPI | |||
* OMP | |||
|V | |V | ||
* 3.10 | |||
* pip | |||
|V | |V | ||
* Lab | |||
|- | |- | ||
|TensorFlow - NVIDIA NGC release 24.04 | |'''TensorFlow - NVIDIA NGC release 24.04''' | ||
* ''TensorFlow 2.15 versi CUDA'' | |||
{| class="wikitable" | {| class="wikitable" | ||
!direktori dan nama | !direktori dan nama | ||
|<code>$NVCONT/ | |<code>'''$NVCONT/NGC_TensorFlow_r24.04.sif'''</code> | ||
|- | |- | ||
!Info detail | !Info detail | ||
Baris 71: | Baris 99: | ||
|V | |V | ||
|V | |V | ||
* MPI | |||
* OMP | |||
|V | |V | ||
* 3.10 | |||
* pip | |||
|V | |V | ||
* Lab | |||
|- | |- | ||
|AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27 | |'''AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27''' | ||
* ''ACPYPE 2023.10.27'' | |||
{| class="wikitable" | {| class="wikitable" | ||
!direktori dan nama | !direktori dan nama | ||
|<code>$SCONT/ | |<code>'''$SCONT/acpype-2023.10.27.sif'''</code> | ||
|- | |- | ||
!Info detail | !Info detail | ||
Baris 87: | Baris 124: | ||
|X | |X | ||
|X | |X | ||
|X | |X | ||
|- | |- | ||
! colspan=" | ! colspan="6" |--- | ||
|} | |} | ||
=== User | === User Menyediakan Image === | ||
User dapat melakukan pull image dari container registry | User dapat menyediakan image sendiri dengan melakukan pull image dari container registry melalui Apptainer: | ||
''<small><code>(klik expand / kembangkan)</code></small>'' | |||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
! | !- Langkah Pull Image Container dengan Apptainer - | ||
|- | |||
!<big>0</big> | |||
|- | |- | ||
|[[Berkas: | |[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''Menggunakan terminal!''' | ||
*User | *User EFIRO klik app '''<code>Aleleon Shell Access</code>''' | ||
* ''atau'' menu '''<code>Apps > Aleleon Shell Access</code>''' | |||
|- | |- | ||
!1 | !<big>1</big> | ||
|- | |- | ||
|Aktifkan modul Apptainer: | |Aktifkan modul Apptainer: | ||
$ '''ml apptainer''' | |||
|- | |- | ||
!2 | !<big>2</big> | ||
|- | |- | ||
|Lakukan pull dengan format: | |Lakukan pull dengan format: | ||
'''- Platform docker''' | |||
$ apptainer pull docker://'''''[image-pull-tag]''''' | |||
'''- Platform shub''' | |||
$ apptainer pull shub://'''''[image-pull-tag]''''' | |||
'''- Platform OCI compatible''' | |||
$ apptainer pull oras://'''''[image-pull-tag]''''' | |||
Contoh pull image '''[[https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch/tags PyTorch - NVIDIA NGC release 25.04]]''': | |||
'''$''' apptainer pull docker://'''nvcr.io/nvidia/pytorch:25.04-py3''' | |||
Apptainer akan mengubah image yang di pull ke format '''<big><code>.sif</code></big>''' | |||
* Platform Apptainer menggunakan image format <code>'''.sif'''</code> | |||
|- | |- | ||
!--- | |||
! | |||
|} | |} | ||
|- | [[Berkas:GMB warning wololo.png|nirbing|50x50px]] '''Mohon diperhatikan:''' | ||
*User menaruh image di HOME dimana mengkonsumsi storage. Untuk memantau penggunaan storage dan besar file lihat '''[[https://wiki.efisonlt.com/wiki/Manajemen_File_di_ALELEON_Supercomputer#Limit_dan_Memantau_Penggunaan_Storage_HOME Memantau Penggunaan Storage HOME]].''' | |||
* Apakah image container user cocok atau dapat dijalankan di ALELEON Supercomputer? Lihat '''[<nowiki/>[[Spesifikasi ALELEON Supercomputer]]]''' untuk menyesuaikan kecocokan software dengan hardware ALELEON. User juga dapat berdiskusi dengan tim admin terkait kompatibilitas image container ini. | |||
== '''''Melengkapi Image''''' == | |||
''Dalam ranah teknis tertentu <big>'''dan apabila dibutuhkan'''</big>'', user dapat memodifikasi atau menambah image container melalui Apptainer. Silahkan pilih kategori berikut: | |||
* Apabila tidak butuh, lanjutkan ke '''[Pilihan Menjalankan Komputasi]''' | |||
* '''[Modifikasi Image Python]''' | |||
* '''[Modifikasi Image pada umumnya]''' | |||
--- | |||
=== Modifikasi Image Berbasis Python === | |||
Subbab ini untuk image yang dibuat khusus menjalankan package Python. Dalam ranah tertentu ''tergantung bagaimana image dikemas'', user dapat memodifikasi image dengan menambah instalasi package Python: | |||
# ''site-packages adalah tempat Python menampung instalasi package user''. Info lebih lanjut lihat '''[[https://wiki.efisonlt.com/wiki/Komputasi_Python#Intro:_Komputasi_Python_di_HPC Intro: Komputasi Python HPC]]'''. | |||
# Image container Python (''apabila dikemas dengan benar'') dapat mengakomodasi '''2 lokasi site-packages:''' | |||
#* '''<big>Eksternal di HOME user</big>'''. Cara paling cepat dimana user mengaktifkan containter dan melakukan instalasi package yang otomatis ditampung di HOME user. Perhatikan site-packages eksternal ini bersifat '''<big>''home global''</big>''' yang artinya, contoh: | |||
#** User menambah package eksternal di image Python yang berisikan environment Python versi 3.10. | |||
#** Maka package ini akan aktif di image Python lain dengan environment Python serupa. | |||
#** ''Lakukan manuver install dan uninstall package eksternal ini dengan bijak.'' | |||
#* '''<big>Internal di dalam image</big>'''. User dapat memodifikasi site-packages internal dengan metode '''[[https://apptainer.org/docs/user/main/definition_files.html Definition Files Apptainer]]''' yaitu membuat "resep" untuk build ulang image. Cara yang baik secara praktik namun cukup kompleks. | |||
# Silahkan pilih sesuai kebutuhan user: | |||
''<small><code>(klik expand / kembangkan)</code></small>'' | |||
{| class="wikitable mw-collapsible mw-collapsed" | |||
!- Menambah Package Python Eksternal Image - | |||
|- | |- | ||
|'''Ketentuan:''' | |||
| | # Image mendukung operasional package Python (conda / pip). | ||
''' | # User tidak dapat instal / hapus package di tingkatan root image. | ||
Package terisolasi di direktori <code>$HOME/.local</code> dan level versi Python. | |||
* Contoh user menambah package di image dengan Python 3.10. | |||
* Maka package ini akan aktif di image lain dengan versi Python serupa. | |||
* Akan tetapi tidak aktif di image lain dengan versi Python berbeda. | |||
|- | |||
! | ! | ||
|- | |- | ||
Baris 158: | Baris 216: | ||
!2 | !2 | ||
|- | |- | ||
|Jalankan image container dengan perintah: | |Jalankan image container dengan perintah: | ||
<code>$ '''apptainer run ''[direktori-dan-nama-image]''.sif'''</code> | <code>$ '''apptainer run ''[direktori-dan-nama-image]''.sif'''</code> | ||
Untuk image dengan isi library NVIDIA CUDA, jalankan: | |||
<code>$ '''apptainer run --nv ''[direktori-dan-nama-image]''.sif'''</code> | <code>$ '''apptainer run --nv ''[direktori-dan-nama-image]''.sif'''</code> | ||
|- | |- | ||
! | !3 | ||
|- | |- | ||
| | |Instal package dengan pip atau conda sesuai ketersediaan. | ||
Contoh umum instalasi pip | |||
> pip install '''''[nama-package]''''' | |||
Contoh umum instalasi conda | |||
> conda install conda-forge::'''''[nama-package]''''' | |||
Daftar package dan tutorial instal lihat: | |||
* '''[[https://pypi.org/ PyPI The Python Package Index]]''' | |||
* '''[[https://conda-forge.org/packages/ Packages in Conda Forge]]''' | |||
|- | |||
!4 | |||
|- | |- | ||
|Untuk keluar dari container, jalankan: | |Untuk keluar dari container, jalankan: | ||
<code>'''> exit'''</code> | <code>'''> exit'''</code> | ||
|- | |- | ||
!--- | !--- | ||
|} | |} | ||
== ''' | == '''Sebelum Menjalankan Container ...''' == | ||
Terdapat beberapa | Terdapat beberapa hal yang perlu menjadi pertimbangan user: | ||
# Image container tidak dapat mengakses modul software ALELEON Supercomputer karena berada di "ruang kerja" | # Image container '''tidak dapat mengakses''' modul software ALELEON Supercomputer karena berada di "ruang kerja" berbeda. | ||
# User yang | # '''User yang hendak menjalankan container di GPU''' harap memastikan image dilengkapi dengan library NVIDIA yang sesuai. | ||
# Harap memastikan image telah mempunyai semua kebutuhan package untuk komputasi user. | |||
== '''Pilihan Menjalankan Komputasi''' == | == '''Pilihan Menjalankan Komputasi''' == | ||
User dapat menjalankan Apptainer dengan pilihan berikut. Sesuaikan dengan peruntukan image. | User dapat menjalankan Apptainer dengan pilihan berikut. Sesuaikan dengan peruntukan image. | ||
=== Berjalan di Login Node === | === Berjalan di Login Node === | ||
Baris 203: | Baris 260: | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
!'' | !''Menjalankan Apptainer di Login Node'' | ||
[[Berkas:Sbatch terminal display rev2.png|tepi|400x400px]] | [[Berkas:Sbatch terminal display rev2.png|tepi|400x400px]] | ||
|- | |||
! | |||
|- | |- | ||
| Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal! | | Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal! | ||
Baris 296: | Baris 355: | ||
*Buka menu '''Clusters > Aleleon Shell Access''' | *Buka menu '''Clusters > Aleleon Shell Access''' | ||
[[Berkas:Shellaccess.png|nirbing|200x200px]] | [[Berkas:Shellaccess.png|nirbing|200x200px]] | ||
*Jalankan perintah: | *Jalankan perintah ''(sementara gunakan)'': | ||
'''$ slimit-python''' | '''$ slimit-python''' | ||
|- | |- | ||
Baris 371: | Baris 430: | ||
!''Langkah Batch Job Apptainer di Terminal'' | !''Langkah Batch Job Apptainer di Terminal'' | ||
[[Berkas:Sbatch terminal display rev2.png|tepi|400x400px]] | [[Berkas:Sbatch terminal display rev2.png|tepi|400x400px]] | ||
|- | |||
! | |||
|- | |- | ||
| Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal! | | Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal! | ||
Baris 392: | Baris 453: | ||
''<small><code>Klik expand / kembangkan</code></small>'' | ''<small><code>Klik expand / kembangkan</code></small>'' | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
!Template submit script Apptainer versi CPU | !Template submit script Apptainer versi CPU - | ||
|- | |||
|<syntaxhighlight lang="bash" line="1"> | |||
#!/bin/bash | |||
# ----------------------------------------------------- | |||
# Template SLURM Submit Script | |||
# Container Apptainer (CPU) | rev.010225 | |||
# | |||
# NOTES: | |||
# 1. Isi bagian yang ditandai 4 garing (////). | |||
# 2. Template ini bersifat referensi. | |||
# User dapat mengubah bagian yang perlu diubah. | |||
# ----------------------------------------------------- | |||
# ----------------------------------------------------- | |||
# 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 direktori dan nama image container | |||
IMAGE="////.sif" | |||
# ---------------------------------------------------- | |||
# Script jalannya program | |||
# ---------------------------------------------------- | |||
# Memuat modul Apptainer | |||
module load apptainer | |||
# Menjalankan image container | |||
# Masukkan command untuk menjalankan program komputasi | |||
apptainer exec ${IMAGE} //// | |||
</syntaxhighlight> | |||
|} | |} | ||
|- | |- | ||
| | | | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
!Template submit script Apptainer versi GPU | !Template submit script Apptainer versi GPU - | ||
|- | |||
|<syntaxhighlight lang="bash" line="1"> | |||
#!/bin/bash | |||
# ----------------------------------------------------- | |||
# Template SLURM Submit Script | |||
# Container Apptainer (GPU) | rev.010225 | |||
# | |||
# NOTES: | |||
# 1. Isi bagian yang ditandai 4 garing (////). | |||
# 2. Template ini bersifat referensi. | |||
# User dapat mengubah bagian yang perlu diubah. | |||
# ----------------------------------------------------- | |||
# ----------------------------------------------------- | |||
# 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 direktori dan nama image container | |||
IMAGE="////.sif" | |||
# ---------------------------------------------------- | |||
# Script jalannya program | |||
# ---------------------------------------------------- | |||
# Memuat modul Apptainer | |||
module load apptainer | |||
# Menjalankan image container | |||
# Masukkan command untuk menjalankan program komputasi | |||
apptainer exec ${IMAGE} //// | |||
</syntaxhighlight> | |||
|} | |} | ||
|- | |- | ||
Baris 409: | Baris 572: | ||
*Sisa Core Hour user dan [[Limitasi Fair Usage ALELEON Supercomputer|'''Fair Usage Limit''']]. | *Sisa Core Hour user dan [[Limitasi Fair Usage ALELEON Supercomputer|'''Fair Usage Limit''']]. | ||
*Spesifikasi sistem dan software komputasi. | *Spesifikasi sistem dan software komputasi. | ||
Untuk melihat limit, jalankan perintah: | Untuk melihat limit, jalankan perintah ''(sementara gunakan)'': | ||
'''$ slimit-python''' | '''$ slimit-python''' | ||
|- | |- |
Revisi per 6 Mei 2025 04.36
Halaman ini menjelaskan langkah menjalankan komputasi di ALELEON Supercomputer dengan image container melalui platform [Apptainer]. ALELEON Supercomputer dapat menyediakan dan menjalankan image container untuk komputasi berbagai bidang.
Wololo!
Perhatikan halaman ini sedang dalam proses revisi penulisan. User disarankan untuk kembali mereferensi halaman ini setelah pesan ini hilang. Terima kasih untuk bersedia menunggu dan mohon maaf atas ketidaknyamanannya.
Standar Kompetensi
Tutorial ini mengasumsikan user:
- Memahami cara kerja sistem container dan image.
- Dalam ranah tertentu mengetahui teknis kompatibilitas software dan hardware.
Langkah Menjalankan Komputasi
Terdapat 2 langkah utama:
- Memilih image container yang digunakan.
- Apabila mampu dan dibutuhkan - melengkapi image container baik secara internal (rebuild) atau eksternal.
- Menjalankan image container sesuai ketentuannya.
Pilihan Image Container
Tersedia pilihan image berikut yang dapat dipilih sesuai preferensi user:
Image Global ALELEON Supercomputer
Image siap pakai yang dapat diakses global oleh semua user.
- Tabel ini menyediakan info dan spesifikasi image esensial untuk penggunaannya di ALELEON Supercomputer.
- Permohonan menyediakan image hubungi support@efisonlt.com.
(klik expand / kembangkan)
- Daftar Image Global ALELEON Supercomputer - | |||||||||
---|---|---|---|---|---|---|---|---|---|
Nama Image | Support Hardware & Platform | ||||||||
![]() |
![]() |
Parallel | Python | ![]() | |||||
PyTorch - NVIDIA NGC release 23.08
|
V | V | V
|
V
|
V
| ||||
PyTorch - NVIDIA NGC release 24.04
|
V | V | V
|
V
|
V
| ||||
TensorFlow - NVIDIA NGC release 24.04
|
V | V | V
|
V
|
V
| ||||
AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
|
V | X | X | X | X | ||||
--- |
User Menyediakan Image
User dapat menyediakan image sendiri dengan melakukan pull image dari container registry melalui Apptainer:
(klik expand / kembangkan)
- Langkah Pull Image Container dengan Apptainer - |
---|
0 |
Menggunakan terminal!
|
1 |
Aktifkan modul Apptainer:
$ ml apptainer |
2 |
Lakukan pull dengan format:
- Platform docker $ apptainer pull docker://[image-pull-tag] - Platform shub $ apptainer pull shub://[image-pull-tag] - Platform OCI compatible $ apptainer pull oras://[image-pull-tag] Contoh pull image [PyTorch - NVIDIA NGC release 25.04]: $ apptainer pull docker://nvcr.io/nvidia/pytorch:25.04-py3 Apptainer akan mengubah image yang di pull ke format
|
--- |
- User menaruh image di HOME dimana mengkonsumsi storage. Untuk memantau penggunaan storage dan besar file lihat [Memantau Penggunaan Storage HOME].
- Apakah image container user cocok atau dapat dijalankan di ALELEON Supercomputer? Lihat [Spesifikasi ALELEON Supercomputer] untuk menyesuaikan kecocokan software dengan hardware ALELEON. User juga dapat berdiskusi dengan tim admin terkait kompatibilitas image container ini.
Melengkapi Image
Dalam ranah teknis tertentu dan apabila dibutuhkan, user dapat memodifikasi atau menambah image container melalui Apptainer. Silahkan pilih kategori berikut:
- Apabila tidak butuh, lanjutkan ke [Pilihan Menjalankan Komputasi]
- [Modifikasi Image Python]
- [Modifikasi Image pada umumnya]
---
Modifikasi Image Berbasis Python
Subbab ini untuk image yang dibuat khusus menjalankan package Python. Dalam ranah tertentu tergantung bagaimana image dikemas, user dapat memodifikasi image dengan menambah instalasi package Python:
- site-packages adalah tempat Python menampung instalasi package user. Info lebih lanjut lihat [Intro: Komputasi Python HPC].
- Image container Python (apabila dikemas dengan benar) dapat mengakomodasi 2 lokasi site-packages:
- Eksternal di HOME user. Cara paling cepat dimana user mengaktifkan containter dan melakukan instalasi package yang otomatis ditampung di HOME user. Perhatikan site-packages eksternal ini bersifat home global yang artinya, contoh:
- User menambah package eksternal di image Python yang berisikan environment Python versi 3.10.
- Maka package ini akan aktif di image Python lain dengan environment Python serupa.
- Lakukan manuver install dan uninstall package eksternal ini dengan bijak.
- Internal di dalam image. User dapat memodifikasi site-packages internal dengan metode [Definition Files Apptainer] yaitu membuat "resep" untuk build ulang image. Cara yang baik secara praktik namun cukup kompleks.
- Eksternal di HOME user. Cara paling cepat dimana user mengaktifkan containter dan melakukan instalasi package yang otomatis ditampung di HOME user. Perhatikan site-packages eksternal ini bersifat home global yang artinya, contoh:
- Silahkan pilih sesuai kebutuhan user:
(klik expand / kembangkan)
- Menambah Package Python Eksternal Image - |
---|
Ketentuan:
Package terisolasi di direktori
|
Menggunakan terminal!
|
1 |
Aktifkan modul Apptainer:
|
2 |
Jalankan image container dengan perintah:
Untuk image dengan isi library NVIDIA CUDA, jalankan:
|
3 |
Instal package dengan pip atau conda sesuai ketersediaan.
Contoh umum instalasi pip > pip install [nama-package] Contoh umum instalasi conda > conda install conda-forge::[nama-package] Daftar package dan tutorial instal lihat: |
4 |
Untuk keluar dari container, jalankan:
|
--- |
Sebelum Menjalankan Container ...
Terdapat beberapa hal yang perlu menjadi pertimbangan user:
- Image container tidak dapat mengakses modul software ALELEON Supercomputer karena berada di "ruang kerja" berbeda.
- User yang hendak menjalankan container di GPU harap memastikan image dilengkapi dengan library NVIDIA yang sesuai.
- Harap memastikan image telah mempunyai semua kebutuhan package untuk komputasi user.
Pilihan Menjalankan Komputasi
User dapat menjalankan Apptainer dengan pilihan berikut. Sesuaikan dengan peruntukan image.
Berjalan di Login Node
Opsi ini hanya untuk container dengan tujuan pre-processing ringan karena login node mempunyai spesifikasi terbatas dan tidak ditujukan untuk menjalankan komputasi.
- Opsi ini tidak menggunakan kredit Core Hour.
Menjalankan Apptainer di Login Node |
---|
Menggunakan terminal!
|
1 |
Aktifkan modul Apptainer:
|
2 |
Jalankan image container dengan perintah:
|
3 |
Untuk keluar dari container, jalankan:
|
--- |
Sesi Jupyter
Menjalankan sesi interaktif Jupyter Lab atau Notebook di [interactive node].
- Perhatikan image container harus mempunyai package Jupyter di dalamnya.
Langkah Sesi Jupyter dengan Apptainer | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||||||||||
Login ke web EFIRO ALELEON Supercomputer. | ||||||||||||||||||||||||||||||||||
2 | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||||||
Pilih Notebook Python 3 untuk memulai sesi notebook Python 3. | ||||||||||||||||||||||||||||||||||
8 | ||||||||||||||||||||||||||||||||||
User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
| ||||||||||||||||||||||||||||||||||
--- |
Batch Job
Menjalankan container siap jalan melalui manajemen Slurm di [compute node] kemudian user menunggu hingga selesai. Catatan:
- Untuk komputasi Python: opsi ini hanya dapat menjalankan file Python (
.py
) siap jalan tanpa interaksi user. - Perhatikan ada kemungkinan tidak semua image container dapat berjalan dengan opsi ini.
Langkah Batch Job Apptainer di Terminal | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Menggunakan terminal!
| ||||||||||||||||
1 | ||||||||||||||||
Siapkan image container dan file komputasi yang dibutuhkan.
| ||||||||||||||||
2A | ||||||||||||||||
Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi.
| ||||||||||||||||
Contoh template Submit Script
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
2B | ||||||||||||||||
SBATCH komputasi (ntasks, mem, time, dll) mempunyai limit berdasarkan:
Untuk melihat limit, jalankan perintah (sementara gunakan): $ 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:
| ||||||||||||||||
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 | ||||||||||||||||
--- |
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