Komputasi dengan Container Apptainer: Perbedaan antara revisi

Dari ALELEON by EFISON
(membuat pondasi tutorial melengkapi image)
(melengkapi opsi menjalankan login node dan jupyter)
Baris 20: Baris 20:
| colspan="7" |Gunakan info ini untuk menjalankan image container.
| colspan="7" |Gunakan info ini untuk menjalankan image container.
|-
|-
! rowspan="2" |Nama dan direktori Image
! rowspan="2" |Nama Image
! colspan="6" |Support Hardware & Platform
! colspan="6" |Support Hardware & Platform
|-
|-
Baris 32: Baris 32:
|PyTorch - NVIDIA NGC release 23.08
|PyTorch - NVIDIA NGC release 23.08
{| class="wikitable"
{| class="wikitable"
!Nama & dir image
!direktori dan nama
|<code>$NVCONT/'''NGC_PyTorch_r23.08.sif'''</code>
|<code>$NVCONT/'''NGC_PyTorch_r23.08.sif'''</code>
|-
|-
Baris 47: Baris 47:
|PyTorch - NVIDIA NGC release 24.04
|PyTorch - NVIDIA NGC release 24.04
{| class="wikitable"
{| class="wikitable"
!Nama & dir image
!direktori dan nama
|<code>$NVCONT/'''NGC_PyTorch_r24.04.sif'''</code>
|<code>$NVCONT/'''NGC_PyTorch_r24.04.sif'''</code>
|-
|-
Baris 62: Baris 62:
|TensorFlow - NVIDIA NGC release 24.04
|TensorFlow - NVIDIA NGC release 24.04
{| class="wikitable"
{| class="wikitable"
!Nama & dir image
!direktori dan nama
|<code>$NVCONT/'''NGC_TensorFlow_r24.04.sif'''</code>
|<code>$NVCONT/'''NGC_TensorFlow_r24.04.sif'''</code>
|-
|-
Baris 77: Baris 77:
|AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
|AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
{| class="wikitable"
{| class="wikitable"
!Nama & dir image
!direktori dan nama
|<code>$SCONT/'''acpype-2023.10.27.sif'''</code>
|<code>$SCONT/'''acpype-2023.10.27.sif'''</code>
|-
|-
Baris 89: Baris 89:
|V
|V
|X
|X
|-
! colspan="7" |---
|}
|}
=== User Melakukan Pull Image ===
=== User Melakukan Pull Image ===
Baris 131: Baris 133:


* Mohon user memperhatikan hal tersebut.
* Mohon user memperhatikan hal tersebut.
|-
!---
|}
|}
'''Note:'''
'''Note:'''
Baris 137: Baris 141:
* Dapat berdiskusi dengan tim admin terkait pilihan menjalankan komputasi.
* Dapat berdiskusi dengan tim admin terkait pilihan menjalankan komputasi.
== '''Melengkapi atau Modifikasi Image''' ==
== '''Melengkapi atau Modifikasi Image''' ==
Dalam ranah tertentu, user dapat melengkapi atau memodifikasi image dengan menambah instalasi package di dalamnya.  
Dalam ranah tertentu, user dapat melengkapi atau memodifikasi image apabila dibutuhkan dengan menambah instalasi package di dalamnya.  


* Package terinstal dan terisolasi di direktori HOME user.
* Package terinstal dan terisolasi di direktori HOME user.
Baris 157: Baris 161:
''<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"
! colspan="2" |Image basis Python - menambah package dengan pip
! colspan="2" |''Image basis Python - menambah package dengan pip''
|-
|-
!1
!1
|Muat image container dengan format:
|Jalankan image container dengan perintah:
<code>$ '''apptainer run ''[alamat-direktori-dan-nama-image]''.sif'''</code>
<code>$ '''apptainer run ''[direktori-dan-nama-image]''.sif'''</code>


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


<code>$ '''apptainer run --nv ''[alamat-direktori-dan-nama-image]''.sif'''</code>
<code>$ '''apptainer run --nv ''[direktori-dan-nama-image]''.sif'''</code>
|-
|-
! rowspan="2" |2
! rowspan="2" |2
|Lakukan instalasi library dengan '''pip'''
|Lakukan instalasi library dengan '''pip'''
<code>'''$ python -m pip install ''[nama-package]'''''</code>
<code>'''> python -m pip install ''[nama-package]'''''</code>
|-
|-
|Apabila membutuhkan update pip, jalankan:
|Apabila membutuhkan update pip, jalankan:
<code>'''$ python -m pip install --upgrade pip'''</code>
<code>'''> python -m pip install --upgrade pip'''</code>
|-
!3
|Untuk keluar dari container, jalankan:
<code>'''> exit'''</code>
|}
|}
|-
!---
|}
== '''Pilihan Menjalankan Image Container''' ==
User dapat menjalankan image container dengan pilihan berikut. Sesuaikan dengan peruntukan atau jenis image.
''<small><code>(klik expand / kembangkan)</code></small>''
=== Berjalan di Login Node ===
Opsi ini hanya untuk image container '''dengan tujuan pre-processing ringan''' karena login node mempunyai spesifikasi terbatas (sangat lambat) dan tidak ditujukan untuk menjalankan komputasi.
* Opsi ini tidak menggunakan kredit Core Hour.
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Menjalankan Image Container di Login Node
[[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!
*User web EFIRO buka app '''<code>Aleleon Shell Access</code>'''.
|-
!1
|-
|Aktifkan modul Apptainer:
<code>$ '''ml apptainer'''</code>
|-
!2
|-
|Jalankan image container dengan perintah:
<code>$ '''apptainer run ''[direktori-dan-nama-image]''.sif'''</code>
|-
!3
|-
|Untuk keluar dari container, jalankan:
<code>'''> exit'''</code>
|-
!---
|}
|}
== '''Sesi Jupyter dengan Container''' ==
 
{| class="wikitable"
=== Sesi Jupyter ===
!Langkah Interactive Job Sesi Jupyter dengan Container
Menjalankan sesi interaktif Jupyter Lab atau Notebook di '''[<nowiki/>[[Spesifikasi ALELEON Supercomputer#Spesifikasi%20Interactive%20Node|interactive node]]].'''
[[Berkas:Efirojupyterlab.png|400x400px]]
 
* Perhatikan image container harus mempunyai '''package Jupyter''' di dalamnya.
 
{| class="wikitable mw-collapsible mw-collapsed"
!Langkah Sesi Jupyter
[[Berkas:Efiro jupyter display.png|400x400px]]
|-
|-
!1
!1
Baris 195: Baris 245:
|-
|-
|Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
|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
{| class="wikitable"
{| class="wikitable"
! rowspan="2" |Formulir alokasi komputasi
!<code>''Choose Jupyter version''</code>
! colspan="2" |Partition
|-
|Pilih sesuai preferensi user, <code>Jupyter Lab</code> atau <code>Notebook</code>
|-
!
|-
!''<code>Partition</code>''
|-
|Pilih sesuai kebutuhan:
*<code>torti</code> -> interactive node CPU
*<code>tilla</code> -> interactive node GPU
|-
!
|-
!<code>''Number of CPU thread(s)''</code>
|-
|Alokasi core CPU, range <code>2 - 32</code> untuk torti dan tilla.
|-
!
|-
!<code>''Amount of memory/RAM (GB)''</code>
|-
|Alokasi RAM dalam satuan GB, range <code>1 - 64</code> untuk torti dan tilla.
|-
!
|-
!''<code>Number of GPUs</code>''
|-
|Jumlah GPU, isi angka <code>1</code> apabila pakai tilla
|-
!
|-
!''<code>Number of hours</code>''
|-
|Waktu maksimal sesi Jupyter, range <code>1 - 72</code> untuk torti dan tilla'''.'''
|-
!
|-
|'''Form CPU, RAM, GPU, dan hours mempunyai limit''' berdasarkan:
*Sisa Core Hour user dan [[Limitasi Fair Usage ALELEON Supercomputer|'''Fair Usage Limit''']].
*Spesifikasi sistem dan software komputasi.
Langkah melihat limit:
*Buka menu '''Clusters > Aleleon Shell Access'''
[[Berkas:Shellaccess.png|nirbing|200x200px]]
*Jalankan perintah:
'''$ slimit-python'''
|-
!
|-
!''<code>Choose how to launch Jupyter</code>''
|-
|Pilih sesuai keinginan:
 
*<code>Container</code> -> menggunakan image siap pakai dari ALELEON.
*<code>Custom container</code> -> menggunakan image yang dipull / buat user.
 
Diikuti dengan pilih image atau menyediakan direktori & nama image user.
|-
!
|-
!''<code>Software Modules</code>''
|-
|-
!torti
|Kosongkan karena image container tidak dapat mengakses modul software.
!tilla
|-
|-
|Number of CPU core(s)
!
| colspan="2" |1 - 32
|-
|-
|Amount of memory/RAM (GB)
!''<code>Environment setup</code>''
| colspan="2" |1 - 64
|-
|-
|Number of GPUs
|Memuat environment variable, ''isi apabila ada''.
| -
|1
|-
|-
|Number of hours
!
| colspan="2" |1 - 72
|-
|-
| colspan="3" |'''Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:'''
!''<code>Additional Jupyter arguments</code>''
*Alokasi CPU * hours > sisa CPU Core Hour
|-
*Alokasi GPU * hours > sisa GPU Hour apabila memilih '''tilla'''.
|Memuat argumen tambahan Jupyter, ''isi apabila ada''.
Cek sisa Core Hour dengan:
|-
#Buka menu '''<code>Clusters</code>''' '''->''' '''<code>ALELEON Shell Access</code>'''
!
#Jalankan perintah
|-
$ '''sausage'''
!''<code>Email address</code>''
|-
|Notifikasi email untuk status mulai dan selesainya Jupyter.
*''Isi apabila berkenan.''
|}
|}
*'''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
!5
|-
|-
|Klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter.
|Klik tombol '''<code>Launch</code>''' untuk memulai sesi Jupyter.
*User akan diarahkan ke halaman '''<code>My Interactive Sessions</code>'''.
*User akan diarahkan ke halaman '''<code>My Interactive Sessions</code>'''.
*Tunggu hingga sesi Jupyter siap diakses.
*Tunggu hingga sesi Jupyter siap diakses.
[[Berkas:Jupyternotebookqueue.png|nir|jmpl|''Status sesi Jupyter mengantri menunggu alokasi hardware'']]
[[Berkas:Jupyternotebookqueue.png|nirbing|500x500px]]
|-
|-
!5
!6
|-
|-
|Apabila status '''Running''', klik tombol '''<code>Connect to Jupyter</code>'''.
|Apabila status '''Running''', klik tombol '''<code>Connect to Jupyter</code>'''.
*Sistem mulai menghitung Core Hour!
*Sistem mulai menghitung Core Hour!
[[Berkas:Newjupyter120124.png|nir|jmpl|''Sesi Jupyter siap diakses.'']]Untuk menghentikan sesi, klik tombol '''<code>Cancel</code>'''.
*Untuk menghentikan sesi yang sedang running, klik tombol '''<code>Cancel</code>'''
[[Berkas:Newjupyter120124.png|nirbing|500x500px]]
|-
|-
!6
!7
|-
|-
|Pilih Notebook Python 3 untuk memulai sesi notebook Python 3.[[Berkas:Jupyternotebookkernelupdated.png|al=|nir|jmpl|200x200px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Notebook'']][[Berkas:Rjupyterlab.png|nir|jmpl|225x225px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Lab'']]
|Pilih Notebook Python 3 untuk memulai sesi notebook Python 3.[[Berkas:Jupyternotebookkernelupdated.png|al=|nir|jmpl|200x200px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Notebook'']][[Berkas:Rjupyterlab.png|nir|jmpl|225x225px|''Gunakan Notebook Python 3 untuk menjalankan kernel conda env user di Jupyter Lab'']]
|-
|-
!7
!8
|-
|-
|User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
|User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:
*Menu '''<code>My Interactive Sessions</code>''' pada homepage EFIRO.
*Menu '''<code>My Interactive Sessions</code>''' pada homepage EFIRO.
*Kolom '''<code>Active interactive sessions</code>''' pada homepage EFIRO.
*Kolom '''<code>Active interactive sessions</code>''' pada homepage EFIRO.
|-
!---
|}
|}
=== Batch Job ===
== '''Sesi Jupyter dengan Container''' ==
=='''Pelaporan Kendala dan Support'''==
=='''Pelaporan Kendala dan Support'''==
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.
Apabila menjumpai masalah teknis dalam menjalankan komputasi, silahkan lapor dengan klik gambar berikut ini.

Revisi per 31 Januari 2025 15.14

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:

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

Pilihan Image Container

Tersedia pilihan image berikut yang dapat dipilih sesuai preferensi user:

(klik expand / kembangkan)

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
direktori dan nama $NVCONT/NGC_PyTorch_r23.08.sif
Info detail [PyTorch r23.08 docs]
V V V V V V
PyTorch - NVIDIA NGC release 24.04
direktori dan nama $NVCONT/NGC_PyTorch_r24.04.sif
Info detail [PyTorch r24.04 docs]
V V V V V V
TensorFlow - NVIDIA NGC release 24.04
direktori dan nama $NVCONT/NGC_TensorFlow_r24.04.sif
Info detail [TensorFlow r24.04 docs]
V V V V V V
AnteChamber PYthon Parser interfacE (ACPYPE) 2023.10.27
direktori dan nama $SCONT/acpype-2023.10.27.sif
Info detail [Official ACYPE doc]
V X X X V X
---

User Melakukan Pull Image

User dapat melakukan pull image dari container registry apapun dengan langkah:

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

$ ml 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 [PyTorch 25.01-py3 dari NVIDIA NGC Catalog]:

$ apptainer pull docker://nvcr.io/nvidia/pytorch:25.01-py3

3
ALELEON membutuhkan nama dan direktori file image untuk menjalankan image.
  • Mohon user memperhatikan hal tersebut.
---

Note:

  • User menaruh image di HOME dimana mengkonsumsi storage.
  • Idealnya user mengetahui langkah menggunakan container tersebut.
  • Dapat berdiskusi dengan tim admin terkait pilihan menjalankan komputasi.

Melengkapi atau Modifikasi Image

Dalam ranah tertentu, user dapat melengkapi atau memodifikasi image apabila dibutuhkan dengan menambah instalasi package di dalamnya.

  • Package terinstal dan terisolasi di direktori HOME user.
Icon apps terminal cropped.png
Menggunakan terminal!
  • User web EFIRO buka app Aleleon Shell Access.
1
Aktifkan modul Apptainer:

$ ml apptainer

2
Pilih skenario yang sesuai dengan image yang akan dimodifikasi:

(klik expand / kembangkan)

Image basis Python - menambah package dengan pip
1 Jalankan image container dengan perintah:

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

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

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

2 Lakukan instalasi library dengan pip

> python -m pip install [nama-package]

Apabila membutuhkan update pip, jalankan:

> python -m pip install --upgrade pip

3 Untuk keluar dari container, jalankan:

> exit

---

Pilihan Menjalankan Image Container

User dapat menjalankan image container dengan pilihan berikut. Sesuaikan dengan peruntukan atau jenis image.

(klik expand / kembangkan)

Berjalan di Login Node

Opsi ini hanya untuk image container dengan tujuan pre-processing ringan karena login node mempunyai spesifikasi terbatas (sangat lambat) dan tidak ditujukan untuk menjalankan komputasi.

  • Opsi ini tidak menggunakan kredit Core Hour.
Langkah Menjalankan Image Container 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

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

Sesi Jupyter dengan Container

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