Komputasi dengan Container Apptainer: Perbedaan antara revisi

Dari ALELEON by EFISON
(menambah intro modif image Python)
(→‎Melengkapi Image: melengkapi teknis instalasi package eksternal)
 
Baris 2: Baris 2:


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.  
=='''Wololo!''' ==
=='''Wololo & Eksperimental!''' ==
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.  
Perhatikan halaman ini sedang dalam proses '''<big>masa uji dan revisi penulisan</big>'''. User disarankan untuk kembali mereferensi halaman ini setelah pesan ini hilang. Terima kasih untuk bersedia menunggu dan mohon maaf atas ketidaknyamanannya.  


== '''''Standar Kompetensi''''' ==
== '''''Standar Kompetensi''''' ==
Baris 29: Baris 29:
! colspan="6" |- Daftar Image Global ALELEON Supercomputer -  
! colspan="6" |- Daftar Image Global ALELEON Supercomputer -  
|-
|-
! rowspan="2" |Nama Image
! rowspan="2" |Nama dan Spesifikasi Image
! colspan="5" |Support Hardware & Platform
! colspan="5" |Support Hardware & Platform
|-
|-
Baris 48: Baris 48:
|'''[[https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-23-08.html#rel-23-08 PyTorch r23.08 docs]]'''
|'''[[https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-23-08.html#rel-23-08 PyTorch r23.08 docs]]'''
|}
|}
|V
|'''V'''
|V
|'''V'''
|V
|'''V'''
 
* '''MPI'''
* MPI
* '''OMP'''
* OMP
|'''V'''
|V
* '''3.10'''
 
* '''pip'''
* 3.10
|'''V'''
* pip
* '''Lab'''
|V
 
* Lab
|-
|-
|'''PyTorch - NVIDIA NGC release 24.04'''
|'''PyTorch - NVIDIA NGC release 24.04'''
Baris 72: Baris 69:
|'''[[https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-24-04.html#rel-24-04 PyTorch r24.04 docs]]'''
|'''[[https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-24-04.html#rel-24-04 PyTorch r24.04 docs]]'''
|}
|}
|V
|'''V'''
|V
|'''V'''
|V
|'''V'''
 
* '''MPI'''
* MPI
* '''OMP'''
* OMP
|'''V'''
|V
* '''3.10'''
 
* '''pip'''
* 3.10
|'''V'''
* pip
* '''Lab'''
|V
 
* Lab
|-
|-
|'''TensorFlow - NVIDIA NGC release 24.04'''
|'''TensorFlow - NVIDIA NGC release 24.04'''
Baris 96: Baris 90:
|'''[[https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/rel-24-0.html#rel-24-0 TensorFlow r24.04 docs]]'''
|'''[[https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/rel-24-0.html#rel-24-0 TensorFlow r24.04 docs]]'''
|}
|}
|V
|'''V'''
|V
|'''V'''
|V
|'''V'''
 
* '''MPI'''
* MPI
* '''OMP'''
* OMP
|'''V'''
|V
* '''3.10'''
 
* '''pip'''
* 3.10
|'''V'''
* pip
* '''Lab'''
|V
 
* Lab
|-
|-
|'''AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27'''
|'''AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27'''
Baris 120: Baris 111:
|'''[[https://alanwilter.github.io/acpype/ Official ACYPE doc]]'''
|'''[[https://alanwilter.github.io/acpype/ Official ACYPE doc]]'''
|}
|}
|V
|'''V'''
|X
|'''X'''
|X
|'''X'''
|X
|'''X'''
|X
|'''X'''
|-
|-
! colspan="6" |---
! colspan="6" |---
Baris 172: Baris 163:
''Dalam ranah teknis tertentu <big>'''dan apabila dibutuhkan'''</big>'', user dapat memodifikasi atau menambah image container melalui Apptainer. Silahkan pilih kategori berikut:   
''Dalam ranah teknis tertentu <big>'''dan apabila dibutuhkan'''</big>'', user dapat memodifikasi atau menambah image container melalui Apptainer. Silahkan pilih kategori berikut:   


* '''[[https://wiki.efisonlt.com/wiki/Komputasi_dengan_Container_Apptainer#Modifikasi_Image_Berbasis_Python Modifikasi Image Python]]''' - menambah instalasi package Python ke image tersebut.
* '''[Modifikasi Image pada umumnya]''' - menambah instalasi software lain ke image tersebut.
* Apabila tidak butuh, lanjutkan ke '''[Pilihan Menjalankan Komputasi]'''
* Apabila tidak butuh, lanjutkan ke '''[Pilihan Menjalankan Komputasi]'''
* '''[Modifikasi Image Python]'''
* '''[Modifikasi Image pada umumnya]'''


---
---


=== Modifikasi Image Berbasis Python ===
=== 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:
Subbab ini untuk image yang dibuat khusus menjalankan package Python. Dalam ranah tertentu dan ''tergantung bagaimana image dikemas'', user dapat menambah instalasi package Python pada image apabila belum tersedia. 
 
* Opsi ini juga berlaku untuk image global ALELEON Supercomputer.
* Lihat teknis berikut:  


# ''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]]'''.
''<small><code>(klik expand / kembangkan)</code></small>'' 
{| class="wikitable mw-collapsible mw-collapsed"
!- Teknis Modifikasi Image Python dengan Apptainer -
|-
|
#''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:'''
# 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:  
#* '''<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.
#** 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.
#** Maka package ini akan aktif di image Python lain dengan environment Python serupa.
#** '''Idealnya ketahui versi Python yang digunakan image sebelum melakukan instalasi package eksternal.'''
#** ''Lakukan manuver install dan uninstall package eksternal ini dengan bijak.''
#** ''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.
#* '''<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:  
# Silahkan pilih sesuai kebutuhan user:


''<small><code>(klik expand / kembangkan)</code></small>''
''<small><code>(klik expand / kembangkan)</code></small>''
|-
|Acuan melakukan instalasi package Python dengan opsi package manager pip dan conda:
{| class="wikitable"
! colspan="2" |- Menggunakan pip dan conda -
|-
! rowspan="2" |pip
|Contoh perintah instalasi <sub>(pilih salah satu)</sub>:
'''<sub>(env)</sub><small>$</small>''' '''pip install ''[nama-package]'''''
'''<sub>(env)</sub><small>$</small>''' '''python3 -m pip install ''[nama-package]'''''
|-
|Daftar package dan tutorial instal '''pip''' lihat web:*'''[[https://pypi.org/ PyPI The Python Package Index]]'''.
|-
! colspan="2" |
|-
! rowspan="2" |conda
|Contoh perintah instalasi <sub>(pilih salah satu)</sub>:
'''<sub>(env)</sub><small>$</small>''' '''conda install ''[nama-package]'''''
'''<sub>(env)</sub><small>$</small>''' '''conda install conda-forge::''[nama-package]'''''
|-
|Daftar package dan tutorial instal conda lihat web:
*'''[[https://conda-forge.org/packages/ Packages in Conda Forge]]'''.
|-
! colspan="2" |---
|}
|-
|Bagian ini untuk instalasi package eksternal image. Adalah praktik baik untuk mengecek dan melengkapi package image sebelum menggunakannya di sesi job komputasi.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!- Menambah Package Python Eksternal Image -
!- Cek Ketersediaan dan Instalasi Package Eksternal Image -
|-
|-
|'''Ketentuan:'''
!<big>0</big>
# 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.
|-
|-
!
|[[Berkas:EOD Apps Shell full.png|kiri|nirbing|101x101px]]'''Menggunakan terminal!'''
*User EFIRO klik app '''<code>Aleleon Shell Access</code>'''
* ''atau'' menu '''<code>Apps > Aleleon Shell Access</code>'''
|-
|-
|[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal!
!<big>1</big>
*User web EFIRO buka app '''<code>Aleleon Shell Access</code>'''.
|-
!1
|-
|-
|Aktifkan modul Apptainer:
|Aktifkan modul Apptainer:
<code>$ '''ml apptainer'''</code>
$ '''ml apptainer'''
|-
|-
!2
!<big>2</big>
|-
|-
|Jalankan image container dengan perintah:
|Jalankan image container dengan perintah:
<code>$ '''apptainer run ''[direktori-dan-nama-image]''.sif'''</code>
$ '''apptainer run ''[direktori-dan-nama-image]''.sif'''
Untuk image dengan isi library NVIDIA CUDA, jalankan: 
$ '''apptainer run --nv ''[direktori-dan-nama-image]''.sif'''
Image global ALELEON lihat:


Untuk image dengan isi library NVIDIA CUDA, jalankan:   
* Tabel '''[[https://wiki.efisonlt.com/wiki/Komputasi_dengan_Container_Apptainer#Image_Global_ALELEON_Supercomputer Daftar Image Global]]''' kolom ''Nama Image dan Spesifikasi''
|-
!<big>3</big>
|-
!Package manager apa yang digunakan image?
|-
|Setiap image bisa jadi punya ketersedian package manager:
 
* Contoh punya pip, conda, keduanya, atau tidak sama sekali.
* Cari ketersediaan ''<small>(cara primitif tapi bisa)</small>''  dengan jalankan:  
 
> pip
> conda
Bila output <code>command not found</code> maka package tersebut tidak ada.
|-
!<big>4</big>
|-
|Cek kelengkapan package:
'''- Tergantung ada pip atau conda'''
> pip list
> conda list
'''- Mencari package spesifik'''
> pip list | grep '''''[nama-package]'''''
  > pip list | grep '''''[nama-package]'''''


<code>$ '''apptainer run --nv ''[direktori-dan-nama-image]''.sif'''</code>
* Apabila package lengkap, lanjut langkah '''6'''.
* Apabila ada yang kurang, lanjut langkah '''5'''.
|-
|-
!3
!<big>5</big>
|-
|-
|Instal package dengan pip atau conda sesuai ketersediaan.
|Instal package dengan package manager '''sesuai ketersediaan image.'''
  Contoh umum instalasi pip
  - Untuk pip, apabila berikut tidak bisa,
  > pip install '''''[nama-package]'''''
  > pip install '''''[nama-package]'''''
   
   
  Contoh umum instalasi conda
  - ... gunakan opsi ini
  > conda install conda-forge::'''''[nama-package]'''''
  > python3 -m pip install '''''[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
!<big>6</big>
|-
|-
|Untuk keluar dari container, jalankan:  
|Untuk keluar dari container, jalankan:  
Baris 243: Baris 285:
!---
!---
|}
|}
 
|-
|
|-
!---
|}
== '''Sebelum Menjalankan Container ...''' ==
== '''Sebelum Menjalankan Container ...''' ==
Terdapat beberapa hal yang perlu menjadi pertimbangan user:  
Terdapat beberapa hal yang perlu menjadi pertimbangan user:  

Revisi terkini sejak 6 Mei 2025 05.50

Logo Apptainer ALELEON tp.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.

Wololo & Eksperimental!

Perhatikan halaman ini sedang dalam proses masa uji dan 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:

  1. Memahami cara kerja sistem container dan image.
  2. Dalam ranah tertentu mengetahui teknis kompatibilitas software dan hardware.

Langkah Menjalankan Komputasi

Terdapat 2 langkah utama:

  1. Memilih image container yang digunakan.
    • Apabila mampu dan dibutuhkan - melengkapi image container baik secara internal (rebuild) atau eksternal.
  2. 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 dan Spesifikasi Image Support Hardware & Platform
GMB CPU icon.png GMB GPU icon.png Parallel Python EOD Apps Jupyter icon.png
PyTorch - NVIDIA NGC release 23.08
  • PyTorch 2.1.0a0+29c30b1 versi CUDA
dir dan nama img $NVCONT/NGC_PyTorch_r23.08.sif
Info detail [PyTorch r23.08 docs]
V V V
  • MPI
  • OMP
V
  • 3.10
  • pip
V
  • Lab
PyTorch - NVIDIA NGC release 24.04
  • PyTorch 2.3.0a0+6ddf5cf85e versi CUDA
direktori dan nama $NVCONT/NGC_PyTorch_r24.04.sif
Info detail [PyTorch r24.04 docs]
V V V
  • MPI
  • OMP
V
  • 3.10
  • pip
V
  • Lab
TensorFlow - NVIDIA NGC release 24.04
  • TensorFlow 2.15 versi CUDA
direktori dan nama $NVCONT/NGC_TensorFlow_r24.04.sif
Info detail [TensorFlow r24.04 docs]
V V V
  • MPI
  • OMP
V
  • 3.10
  • pip
V
  • Lab
AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
  • ACPYPE 2023.10.27
direktori dan nama $SCONT/acpype-2023.10.27.sif
Info detail [Official ACYPE doc]
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
EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
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 .sif

  • Platform Apptainer menggunakan image format .sif
---

GMB warning wololo.png Mohon diperhatikan:

  • 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:

  • [Modifikasi Image Python] - menambah instalasi package Python ke image tersebut.
  • [Modifikasi Image pada umumnya] - menambah instalasi software lain ke image tersebut.
  • Apabila tidak butuh, lanjutkan ke [Pilihan Menjalankan Komputasi]

---

Modifikasi Image Berbasis Python

Subbab ini untuk image yang dibuat khusus menjalankan package Python. Dalam ranah tertentu dan tergantung bagaimana image dikemas, user dapat menambah instalasi package Python pada image apabila belum tersedia.

  • Opsi ini juga berlaku untuk image global ALELEON Supercomputer.
  • Lihat teknis berikut:

(klik expand / kembangkan)

- Teknis Modifikasi Image Python dengan Apptainer -
  1. Site-packages adalah tempat Python menampung instalasi package user. Info lebih lanjut lihat [Intro: Komputasi Python HPC].
  2. 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.
      • Idealnya ketahui versi Python yang digunakan image sebelum melakukan instalasi package eksternal.
      • 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.
  3. Silahkan pilih sesuai kebutuhan user:

(klik expand / kembangkan)

Acuan melakukan instalasi package Python dengan opsi package manager pip dan conda:
- Menggunakan pip dan conda -
pip Contoh perintah instalasi (pilih salah satu):
(env)$ pip install [nama-package]
(env)$ python3 -m pip install [nama-package]
Daftar package dan tutorial instal pip lihat web:*[PyPI The Python Package Index].
conda Contoh perintah instalasi (pilih salah satu):
(env)$ conda install [nama-package]
(env)$ conda install conda-forge::[nama-package] 
Daftar package dan tutorial instal conda lihat web:
---
Bagian ini untuk instalasi package eksternal image. Adalah praktik baik untuk mengecek dan melengkapi package image sebelum menggunakannya di sesi job komputasi.
- Cek Ketersediaan dan Instalasi Package Eksternal Image -
0
EOD Apps Shell full.png
Menggunakan terminal!
  • User EFIRO klik app Aleleon Shell Access
  • atau menu Apps > Aleleon Shell Access
1
Aktifkan modul Apptainer:
$ ml apptainer
2
Jalankan image container dengan perintah:
$ apptainer run [direktori-dan-nama-image].sif

Untuk image dengan isi library NVIDIA CUDA, jalankan:

$ apptainer run --nv [direktori-dan-nama-image].sif

Image global ALELEON lihat:

3
Package manager apa yang digunakan image?
Setiap image bisa jadi punya ketersedian package manager:
  • Contoh punya pip, conda, keduanya, atau tidak sama sekali.
  • Cari ketersediaan (cara primitif tapi bisa) dengan jalankan:
> pip
> conda

Bila output command not found maka package tersebut tidak ada.

4
Cek kelengkapan package:
- Tergantung ada pip atau conda 
> pip list
> conda list

- Mencari package spesifik
> pip list | grep [nama-package]
> pip list | grep [nama-package]
  • Apabila package lengkap, lanjut langkah 6.
  • Apabila ada yang kurang, lanjut langkah 5.
5
Instal package dengan package manager sesuai ketersediaan image.
- Untuk pip, apabila berikut tidak bisa,
> pip install [nama-package]

- ... gunakan opsi ini
> python3 -m pip install [nama-package]
6
Untuk keluar dari container, jalankan:

> exit

---
---

Sebelum Menjalankan Container ...

Terdapat beberapa hal yang perlu menjadi pertimbangan user:

  1. Image container tidak dapat mengakses modul software ALELEON Supercomputer karena berada di "ruang kerja" berbeda.
  2. User yang hendak menjalankan container di GPU harap memastikan image dilengkapi dengan library NVIDIA yang sesuai.
  3. 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

Sbatch terminal display rev2.png

Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Aktifkan modul Apptainer:

$ ml apptainer

2
Jalankan image container dengan perintah:

$ apptainer run [direktori-dan-nama-image].sif

3
Untuk keluar dari container, jalankan:

> exit

---

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

Efiro jupyter display.png

1
Login ke web EFIRO ALELEON Supercomputer.
2
New Pinnedapps jupyter.png Buka pinned apps Jupyter di homepage EFIRO.
3
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

Shellaccess.png

  • Jalankan perintah (sementara gunakan):
$ slimit-python
Choose how to launch Jupyter
Pilih sesuai keinginan:
  • Container -> menggunakan image siap pakai dari ALELEON.
  • Custom container -> menggunakan image yang dipull / buat user.

Diikuti dengan pilih image atau menyediakan direktori & nama image user.

Software Modules
Kosongkan karena image container tidak dapat mengakses modul software.
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.
  • Isi apabila berkenan.
5
Klik tombol Launch untuk memulai sesi Jupyter.
  • User akan diarahkan ke halaman My Interactive Sessions.
  • Tunggu hingga sesi Jupyter siap diakses.

Jupyternotebookqueue.png

6
Apabila status Running, klik tombol Connect to Jupyter.
  • Sistem mulai menghitung Core Hour!
  • Untuk menghentikan sesi yang sedang running, klik tombol Cancel

Newjupyter120124.png

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.
---

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

Sbatch terminal display rev2.png

Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Siapkan image container 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 Apptainer versi CPU -
#!/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} ////
Template submit script Apptainer versi GPU -
#!/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} ////
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 (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:

$ 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
---

Pelaporan Kendala dan Support

Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.

Wiki-pelaporankendala.jpg

Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:

support@efisonlt.com