Komputasi dengan Container Apptainer: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) (menambah limitasi, melengkapi batch job (80% jadi)) |
WilsonLisan (bicara | kontrib) (paraphrasing pull image, edit info menambah package dan perhatian) |
||
Baris 10: | Baris 10: | ||
== '''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 Siap Pakai === | === Image Siap Pakai === | ||
Image siap pakai yang dapat diakses global oleh semua user. Permohonan menyediakan image hubungi '''support@efisonlt.com'''. | Image siap pakai yang dapat diakses global oleh semua user. Permohonan menyediakan image hubungi '''support@efisonlt.com'''. | ||
Baris 87: | Baris 84: | ||
|X | |X | ||
|X | |X | ||
| | |X | ||
|X | |X | ||
|- | |- | ||
Baris 93: | Baris 90: | ||
|} | |} | ||
=== User Melakukan Pull Image === | === User Melakukan Pull Image === | ||
User dapat melakukan pull image dari container registry | User dapat melakukan pull image dari container registry dengan langkah: | ||
{| class="wikitable mw-collapsible mw-collapsed" | {| class="wikitable mw-collapsible mw-collapsed" | ||
!''Langkah Pull Image Container dengan Apptainer'' | !''Langkah Pull Image Container dengan Apptainer'' | ||
|- | |||
! | |||
|- | |- | ||
|[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal! | |[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal! | ||
Baris 109: | Baris 108: | ||
|- | |- | ||
|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 25.01 dari NVIDIA NGC]]''': | |||
<code>'''$''' apptainer pull docker://'''nvcr.io/nvidia/pytorch:25.01-py3'''</code> | <code>'''$''' apptainer pull docker://'''nvcr.io/nvidia/pytorch:25.01-py3'''</code> | ||
|- | |- | ||
!3 | !3 | ||
Baris 138: | Baris 130: | ||
'''Note:''' | '''Note:''' | ||
*User menaruh image di HOME dimana mengkonsumsi storage. | *User menaruh image di HOME dimana mengkonsumsi storage. | ||
* | * User dapat berdiskusi dengan tim admin terkait langkah menjalankan container menyesuaikan sistem ALELEON Supercomputer. | ||
== '''Melengkapi Image''' == | |||
== '''Melengkapi | '''''Dalam ranah dan teknis tertentu serta apabila dibutuhkan''''', user dapat menambah instalasi package pada image dengan ketentuan: | ||
Dalam ranah tertentu, user dapat | |||
* Package terinstal dan terisolasi di direktori HOME user. | * Instalasi package pada tingkatan user. Umumnya tidak dapat melakukan instalasi di tingkatan root. | ||
* Package terinstal dan terisolasi di direktori <code>'''$HOME/.local'''</code> user. | |||
{| class="wikitable" | {| class="wikitable mw-collapsible mw-collapsed" | ||
!''Langkah Menambah Package di Image'' | |||
|- | |||
! | ! | ||
|- | |- | ||
Baris 158: | Baris 152: | ||
!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 | ||
|- | |- | ||
| | |Pilih skenario yang sesuai dengan kebutuhan image: | ||
<code>'''> | ''<small><code>(klik expand / kembangkan)</code></small>'' | ||
{| class="wikitable mw-collapsible mw-collapsed" | |||
! colspan="2" |''Image basis Python - menambah package'' | |||
|- | |||
| colspan="2" |'''Ketentuan:''' | |||
* Image mendukung operasional package Python (conda / pip) | |||
|- | |||
!1 | |||
|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]]''' | |||
|- | |- | ||
! | !2 | ||
|Untuk keluar dari container, jalankan: | |Untuk keluar dari container, jalankan: | ||
<code>'''> exit'''</code> | <code>'''> exit'''</code> | ||
Baris 186: | Baris 189: | ||
|} | |} | ||
== ''' | == '''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 205: | ||
{| 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 300: | ||
*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 375: | ||
!''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 388: | Baris 394: | ||
! | ! | ||
|- | |- | ||
|Contoh template Submit Script | |Contoh template Submit Script '''(coming soon!)''' | ||
*Ikuti petunjuk '''NOTES dan alur script''' di dalamnya. | *Ikuti petunjuk '''NOTES dan alur script''' di dalamnya. | ||
''<small><code>Klik expand / kembangkan</code></small>'' | ''<small><code>Klik expand / kembangkan</code></small>'' | ||
Baris 409: | Baris 415: | ||
*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 1 Februari 2025 06.18
Berkas:Python apptainer logo.png
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.
Langkah Menjalankan Komputasi
Terdapat 2 langkah utama:
- Memilih image container yang digunakan.
- Melengkapi (apabila dibutuhkan) dan menjalankan image container sesuai ketentuannya.
Pilihan Image Container
Tersedia pilihan image berikut yang dapat dipilih sesuai preferensi user:
Image Siap Pakai
Image siap pakai yang dapat diakses global oleh semua user. Permohonan menyediakan image hubungi support@efisonlt.com.
Daftar Image Siap Pakai ALELEON Supercomputer | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Gunakan info ini untuk menjalankan image container. | ||||||||||
Nama Image | Support Hardware & Platform | |||||||||
CPU | GPU | OMP | MPI | Python | Jupyter | |||||
PyTorch - NVIDIA NGC release 23.08
|
V | V | V | V | V | V | ||||
PyTorch - NVIDIA NGC release 24.04
|
V | V | V | V | V | V | ||||
TensorFlow - NVIDIA NGC release 24.04
|
V | V | V | V | V | V | ||||
AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
|
V | X | X | X | X | X | ||||
--- |
User Melakukan Pull Image
User dapat melakukan pull image dari container registry dengan langkah:
Langkah Pull Image Container dengan Apptainer |
---|
Menggunakan terminal!
|
1 |
Aktifkan modul 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 25.01 dari NVIDIA NGC]:
|
3 |
ALELEON membutuhkan nama dan direktori file image untuk menjalankan image.
|
--- |
Note:
- User menaruh image di HOME dimana mengkonsumsi storage.
- User dapat berdiskusi dengan tim admin terkait langkah menjalankan container menyesuaikan sistem ALELEON Supercomputer.
Melengkapi Image
Dalam ranah dan teknis tertentu serta apabila dibutuhkan, user dapat menambah instalasi package pada image dengan ketentuan:
- Instalasi package pada tingkatan user. Umumnya tidak dapat melakukan instalasi di tingkatan root.
- Package terinstal dan terisolasi di direktori
$HOME/.local
user.
Langkah Menambah Package di Image | ||||||||
---|---|---|---|---|---|---|---|---|
Menggunakan terminal!
| ||||||||
1 | ||||||||
Aktifkan modul Apptainer:
| ||||||||
2 | ||||||||
Jalankan image container dengan perintah:
Untuk image dengan isi library NVIDIA CUDA, jalankan:
| ||||||||
3 | ||||||||
Pilih skenario yang sesuai dengan kebutuhan image:
| ||||||||
--- |
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 (coming soon!)
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
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