Komputasi dengan Container Apptainer: Perbedaan antara revisi

Dari ALELEON by EFISON
(pembaharuan format daftar image siap pakai)
(Melengkapi opsi image siap pakai dan pull image)
Baris 24: Baris 24:
=== Opsi Image Siap Pakai ===
=== Opsi Image Siap Pakai ===
Image ini disediakan oleh admin EFISON. Permohonan menyediakan / pembuatan image dapat menghubungi admin di '''support@efisonlt.com'''.
Image ini disediakan oleh admin EFISON. Permohonan menyediakan / pembuatan image dapat menghubungi admin di '''support@efisonlt.com'''.
{| class="wikitable"
{| class="wikitable mw-collapsible mw-collapsed"
|+Daftar Image Siap Pakai
! colspan="7" |Daftar Image Siap Pakai ALELEON Supercomputer
|-
|-
!Keterangan image
!Nama dan direktori Image
! colspan="5" |Support Hardware & Software
! colspan="6" |Support Hardware & Platform
! rowspan="2" |Opsi Menjalankan Komputasi
|-
|-
!Nama dan direktori Image
!Keterangan
!CPU
!CPU
!GPU
!GPU
Baris 37: Baris 36:
!MPI
!MPI
!Python
!Python
!Jupyter
|-
|-
! colspan="7" |
! colspan="7" |
Baris 48: Baris 48:
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |
| rowspan="2" |V
* Sesi interaktif Jupyter
|-
|-
|''Package PyTorch dengan akselerasi GPU NVIDIA.''
|''Package PyTorch dengan akselerasi GPU NVIDIA.''
Baris 62: Baris 61:
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |
| rowspan="2" |V
* Sesi interaktif Jupyter
|-
|-
|''Package PyTorch dengan akselerasi GPU NVIDIA.''
|''Package PyTorch dengan akselerasi GPU NVIDIA.''
Baris 76: Baris 74:
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |
| rowspan="2" |V
* Sesi interaktif Jupyter
|-
|-
|''Package TensorFlow dengan akselerasi GPU NVIDIA.''
|''Package TensorFlow dengan akselerasi GPU NVIDIA.''
Baris 90: Baris 87:
| rowspan="2" |X
| rowspan="2" |X
| rowspan="2" |V
| rowspan="2" |V
| rowspan="2" |
| rowspan="2" |X
* Pre-processing login node
|-
|-
|''Package Python untuk menggunakan Antechamber.''
|''Package Python untuk menggunakan Antechamber.''
Baris 98: Baris 94:


=== User Melakukan Pull Image ===
=== User Melakukan Pull Image ===
{| class="wikitable mw-collapsible mw-collapsed"
Mempunyai preferensi image container sendiri? User dapat melakukan pull image dari container registry apapun dengan ketentuan:  
!Langkah Melakukan Pull Image dengan Apptainer
|-
!1
|-
|Masuk ke terminal melalui '''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#Login_SSH Login SSH]''' atau
{| class="wikitable"
|[[Berkas:Pinnedapps terminal.png|nirbing|129x129px]]
|
*[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO '''Login ke web EFIRO'''];
*Buka pinned apps '''<code>Aleleon Shell Access</code>'''
|}Kegiatan ini tidak mengurangi Core Hour user.
|-
!2
|-
|Muat modul Apptainer:
<code>$ '''module load apptainer'''</code>
|-
!3
|-
|Lakukan pull dengan rumus:  
<code>$ '''apptainer pull docker://''[image-tag]'''''</code>


Contoh pull imafe [https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags TensorFlow 24.01-tf2-py3 dari NVIDIA NGC Catalog]:
* User menaruh image di HOME dimana mengkonsumsi storage HOME.
 
* Idealnya user mengetahui bagaimana cara menggunakan container tersebut untuk komputasi.
<code>$ apptainer pull docker://nvcr.io/nvidia/tensorflow:24.04-tf2-py3</code>
** Dapat berdiskusi dengan tim admin terkait pilihan menjalankan komputasi.
|}
 
* '''User membuat image sendiri:'''


{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Membuat Image Container dengan Apptainer
!Langkah Melakukan Pull Image Container dengan Apptainer
|-
|[[Berkas:Icon apps terminal cropped.png|kiri|nirbing|80x80px]]Menggunakan terminal!
*User web EFIRO buka app '''<code>Aleleon Shell Access</code>'''.
|-
|-
!1
!1
|-
|Masuk ke terminal melalui '''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#Login_SSH Login SSH]''' atau
{| class="wikitable"
|[[Berkas:Pinnedapps terminal.png|nirbing|129x129px]]
|
*[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO '''Login ke web EFIRO'''];
*Buka pinned apps '''<code>Aleleon Shell Access</code>'''
|}Kegiatan ini tidak mengurangi Core Hour user.
|-
!2
|-
|-
|Muat modul Apptainer:
|Muat modul Apptainer:
<code>$ '''module load apptainer'''</code>
<code>$ '''module load apptainer'''</code>
|-
|-
!3
!2
|-
|-
|Buat sandbox dengan image sif:
|Lakukan pull dengan format:
<code>'''$ apptainer build --sandbox ''[sandbox-dir]'' ''[image-name]''.sif'''</code>
{| class="wikitable"
!Platform
!Perintah
|-
|-
!4
|Docker
|'''<code>$ apptainer pull docker://''[image-pull-tag]''</code>'''
|-
|-
|Jalankan sanbox dengan memperbolehkan modifikasi
|Shub
'''<code>$ apptainer run --fakeroot --writeable ''[sandbox-dir]''</code>'''
|'''<code>$ apptainer pull shub://''[image-pull-tag]''</code>'''
|-
|-
!5
|OCI compatible
|'''<code>$ apptainer pull oras://''[image-pull-tag]''</code>'''
|}
Contoh pull image '''[[https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags TensorFlow 24.01-tf2-py3 dari NVIDIA NGC Catalog]]''':
 
<code>'''$ apptainer pull docker://nvcr.io/nvidia/tensorflow:24.04-tf2-py3'''</code>
|-
|-
|Lakukan modifikasi sesuai keinginan user
!3
Apptainer> ''[command-untuk-modifikasi...]''
Apptainer> '''exit'''
|-
|-
!6
|Untuk menjalankan image, Apptainer membutuhkan '''nama dan direktori file image'''.
|-
 
|Bangun image baru dari sandbox tersebut:
* Mohon user untuk memperhatikan dan mengatur kedua hal tersebut.
<code>'''$ apptainer build ''[image-name]''.sif ''[sandbox-dir]'''''</code>
|}
|}



Revisi per 31 Januari 2025 08.07

Berkas:Python apptainer logo.png

Halaman ini menjelaskan bagaimana menggunakan container image untuk menjalankan komputasi di ALELEON Supercomputer dengan platform [Apptainer].

Laman ini merupakan bagian laman -> Komputasi Python

Fungsi Spesifik

ALELEON Supercomputer dapat menyediakan dan menjalankan image container untuk komputasi berbagai bidang. Pada umumnya, setiap image container menjalankan fungsi atau aplikasi spesifik.

Langkah Menjalankan Komputasi

Terdapat 2 langkah utama:

  1. Memilih image container yang digunakan.
  2. Melengkapi (apabila dibutuhkan) dan menjalankan image container sesuai ketentuannya.

Pilihan Image Container

ALELEON Supercomputer menyediakan tiga pilihan image sebagai berikut. SIlahkan pilih yang sesuai dengan kebutuhan user.

  1. Image siap pakai.
  2. User melakukan pull image sendiri.
  3. User membuat atau modifikasi image dengan definition files Apptainer.

Opsi Image Siap Pakai

Image ini disediakan oleh admin EFISON. Permohonan menyediakan / pembuatan image dapat menghubungi admin di support@efisonlt.com.

Daftar Image Siap Pakai ALELEON Supercomputer
Nama dan direktori Image Support Hardware & Platform
Keterangan CPU GPU OMP MPI Python Jupyter
PyTorch NVIDIA NGC release 23.08
$NVCONT/NGC_PyTorch_r23.08.sif V V V V V V
Package PyTorch dengan akselerasi GPU NVIDIA.
PyTorch NVIDIA NGC release 24.04
$NVCONT/NGC_PyTorch_r24.04.sif V V V V V V
Package PyTorch dengan akselerasi GPU NVIDIA.
TensorFlow NVIDIA NGC 24.04
$NVCONT/NGC_TensorFlow_r24.04.sif V V V V V V
Package TensorFlow dengan akselerasi GPU NVIDIA.
AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
$SCONT/acpype-2023.10.27.sif V X X X V X
Package Python untuk menggunakan Antechamber.

User Melakukan Pull Image

Mempunyai preferensi image container sendiri? User dapat melakukan pull image dari container registry apapun dengan ketentuan:

  • User menaruh image di HOME dimana mengkonsumsi storage HOME.
  • Idealnya user mengetahui bagaimana cara menggunakan container tersebut untuk komputasi.
    • Dapat berdiskusi dengan tim admin terkait pilihan menjalankan komputasi.
Langkah Melakukan Pull Image Container dengan Apptainer
Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Muat modul Apptainer:

$ module load apptainer

2
Lakukan pull dengan format:
Platform Perintah
Docker $ apptainer pull docker://[image-pull-tag]
Shub $ apptainer pull shub://[image-pull-tag]
OCI compatible $ apptainer pull oras://[image-pull-tag]

Contoh pull image [TensorFlow 24.01-tf2-py3 dari NVIDIA NGC Catalog]:

$ apptainer pull docker://nvcr.io/nvidia/tensorflow:24.04-tf2-py3

3
Untuk menjalankan image, Apptainer membutuhkan nama dan direktori file image.
  • Mohon user untuk memperhatikan dan mengatur kedua hal tersebut.

Instalasi Library Python pada Image Container

User dapat menambah library Python pada image container (apabila dibutuhkan) dimana terinstal pada HOME user.

  • Disarankan melakukan instalasi library melalui langkah ini sebelum memulai sesi Jupyter karena tidak menghabiskan Core Hour.
Langkah Instalasi Package ke Image Container
1
Masuk ke terminal melalui Login SSH atau
Pinnedapps terminal.png
Kegiatan ini tidak mengurangi Core Hour user.
2
Muat modul Apptainer:

$ module load apptainer

3
Muat image container dengan rumus:

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

Apabila butuh GPU NVIDIA saat instalasi package, tambahkan flag --nv:

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

Untuk image global dari ALELEON, direktori dan nama image adalah:

/comp/containers/nvidia/[nama-image].sif

Contoh:/comp/containers/nvidia/pytorch_23.08-py3.sif

4A
Lakukan instalasi library dengan pip

$ python -m pip install [nama-package]

4B
Apabila membutuhkan update pip, jalankan:

$ python -m pip install --upgrade pip

Instalasi update ini dilakukan pada HOME user.

Sesi Jupyter dengan Container

Langkah Interactive Job Sesi Jupyter dengan Container

Efirojupyterlab.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 -> CPU saja
    • tilla -> CPU dan GPU
Formulir alokasi komputasi Partition
torti tilla
Number of CPU core(s) 1 - 32
Amount of memory/RAM (GB) 1 - 64
Number of GPUs - 1
Number of hours 1 - 72
Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:
  • Alokasi CPU * hours > sisa CPU Core Hour
  • Alokasi GPU * hours > sisa GPU Hour apabila memilih tilla.

Cek sisa Core Hour dengan:

  1. Buka menu Clusters -> ALELEON Shell Access
  2. Jalankan perintah
$ sausage
  • Choose how to launch Jupyter -> silahkan pilih:
    • Container -> menggunakan image siap pakai dari ALELEON
    • Custom container -> menggunakan image yang dipull / buat user
  • Pilih image atau menyediakan direktori & nama image user
  • Software modules -> kosongkan
  • Environment setup
    • Memuat environment variable, isi apabila ada
  • Additional Jupyter arguments
    • Memuat argument tambahan Jupyter, isi apabila ada
  • Email address
    • Notifikasi email untuk status mulai dan selesainya sesi Jupyter.
    • Isi apabila berkenan.
4
Klik tombol Launch untuk memulai sesi Jupyter.
  • User akan diarahkan ke halaman My Interactive Sessions.
  • Tunggu hingga sesi Jupyter siap diakses.
Status sesi Jupyter mengantri menunggu alokasi hardware
5
Apabila status Running, klik tombol Connect to Jupyter.
  • Sistem mulai menghitung Core Hour!
Sesi Jupyter siap diakses.
Untuk menghentikan sesi, klik tombol Cancel.
6
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
7
User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
  • Menu My Interactive Sessions pada homepage EFIRO.
  • Kolom Active interactive sessions pada homepage EFIRO.

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