Komputasi Python dengan Container Apptainer: Perbedaan antara revisi

Dari ALELEON by EFISON
(menambah bagian support dan kembali ke halaman utama)
(mengganti link login efiro)
 
(2 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 1: Baris 1:
[[Berkas:Python apptainer logo.png|nirbing|500x500px]]
L[[Berkas:Python apptainer logo.png|nirbing|500x500px]]


Halaman ini menjelaskan komputasi Python dengan container Apptainer di ALELEON Supercomputer. Apptainer (dahulu Singularity) adalah container yang dirancang untuk sistem superkomputer / HPC.
Halaman ini menjelaskan komputasi Python dengan container Apptainer di ALELEON Supercomputer. Apptainer (dahulu Singularity) adalah container yang dirancang untuk sistem superkomputer / HPC.
{| class="wikitable"
{| class="wikitable"
!''Kembali ke halaman utama ->'' [[Komputasi Python]]
!''Laman ini merupakan bagian laman ->'' [[Komputasi Python]]
|}
|}


Baris 14: Baris 14:


== '''Pilihan Image Container''' ==
== '''Pilihan Image Container''' ==
ALELEON Supercomputer menyediakan tiga pilihan yaitu:   
ALELEON Supercomputer menyediakan tiga pilihan image yaitu:   


* Image global siap pakai yang disediakan ALELEON Supercomputer
* Image global siap pakai yang disediakan ALELEON Supercomputer
Baris 20: Baris 20:
* User membuat image sendiri
* User membuat image sendiri


=== Image Global ===
=== Daftar Image Global ===
Adalah image container yang disediakan oleh ALELEON Supercomputer dan siap pakai untuk sesi interaktif Jupyter:  
Adalah image container yang disediakan oleh ALELEON Supercomputer dan siap pakai untuk sesi interaktif Jupyter:  
{| class="wikitable"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Daftar Image Global yang tersedia
! colspan="2" |Daftar Image Global yang tersedia
|-
|-
Baris 29: Baris 29:
|-
|-
|pytorch_23.08-py3.sif
|pytorch_23.08-py3.sif
|[https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch '''Pytorch dari NVIDIA NGC Catalog''']
| rowspan="2" |[https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch '''Pytorch dari NVIDIA NGC Catalog''']
|-
|pytorch_24.04-py3.sif
|-
|tensorflow_24.04-tf2-py3.sif
|[https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow '''TensorFlow dari NVIDIA NGC Catalog''']
|-
|-
|tensorflow2.13_jupyter_cuda.sif
|tensorflow2.13_jupyter_cuda.sif
Baris 37: Baris 42:
=== Melakukan Pull Image ===
=== Melakukan Pull Image ===
User dapat melakukan pull image dari container registry manapun.   
User dapat melakukan pull image dari container registry manapun.   
 
{| class="wikitable mw-collapsible mw-collapsed"
Kegiatan ini dilakukan pada '''terminal''' dan tidak mengurangi Core Hour user:
*Diakses melalui [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''login SSH'''], atau
*Pada web EFIRO, buka app '''Aleleon Shell Access''' [[Berkas:Pinnedapps terminal.png|nirbing|129x129px]]
{| class="wikitable"
!Langkah Melakukan Pull Image dengan Apptainer
!Langkah Melakukan Pull Image dengan Apptainer
|-
|-
!1
!1
|-
|Masuk ke terminal melalui:
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''], atau
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO '''Login ke web EFIRO'''] dan 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>
|-
|-
!2
!3
|-
|-
|Lakukan pull dengan rumus:  
|Lakukan pull dengan rumus:  
<code>$ '''apptainer pull docker://''[image-tag]'''''</code>
<code>$ '''apptainer pull docker://''[image-tag]'''''</code>


Contoh pull [https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags '''TensorFlow 24.01-tf2-py3''' dari NVIDIA NGC Catalog]:  
Contoh pull imafe [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>
<code>$ apptainer pull docker://nvcr.io/nvidia/tensorflow:24.04-tf2-py3</code>
Baris 61: Baris 71:
=== Membuat Image Sendiri ===
=== Membuat Image Sendiri ===
User juga dapat membuat image sendiri melalui sandbox Apptainer di ALELEON Supercomputer.   
User juga dapat membuat image sendiri melalui sandbox Apptainer di ALELEON Supercomputer.   
* Kegiatan ini dilakukan pada terminal dan tidak mengurangi Core Hour user.


{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
Baris 68: Baris 76:
|-
|-
!1
!1
|-
|Masuk ke terminal melalui:
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''], atau
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO '''Login ke web EFIRO'''] dan 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>
|-
|-
!2
!3
|-
|-
|Buat sandbox dengan image sif:
|Buat sandbox dengan image sif:
<code>'''$ apptainer build --sandbox ''[sandbox-dir]'' ''[image-name]''.sif'''</code>
<code>'''$ apptainer build --sandbox ''[sandbox-dir]'' ''[image-name]''.sif'''</code>
|-
|-
!3
!4
|-
|-
|Jalankan sanbox dengan memperbolehkan modifikasi
|Jalankan sanbox dengan memperbolehkan modifikasi
'''<code>$ apptainer run --fakeroot --writeable ''[sandbox-dir]''</code>'''
'''<code>$ apptainer run --fakeroot --writeable ''[sandbox-dir]''</code>'''
|-
|-
!4
!5
|-
|-
|Lakukan modifikasi sesuai keinginan user
|Lakukan modifikasi sesuai keinginan user
Baris 88: Baris 105:
  Apptainer> '''exit'''
  Apptainer> '''exit'''
|-
|-
!5
!6
|-
|-
|Bangun image baru dari sandbox tersebut:  
|Bangun image baru dari sandbox tersebut:  
Baris 96: Baris 113:
== '''Instalasi Package Python pada Image Container''' ==
== '''Instalasi Package Python pada Image Container''' ==
User dapat menambah package Python pada image container dimana terinstal pada HOME user.  
User dapat menambah package Python pada image container dimana terinstal pada HOME user.  
 
{| class="wikitable mw-collapsible mw-collapsed"
Kegiatan ini dilakukan pada '''terminal''' dan tidak mengurangi Core Hour user:
*Diakses melalui [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''login SSH'''], atau
*Pada web EFIRO, buka app '''Aleleon Shell Access''' [[Berkas:Pinnedapps terminal.png|nirbing|129x129px]]
{| class="wikitable"
!Langkah Instalasi Package ke Image Container
!Langkah Instalasi Package ke Image Container
|-
|-
!1
!1
|-
|Masuk ke terminal melalui:
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''], atau
* [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO '''Login ke web EFIRO'''] dan 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>
|-
|-
!2
!3
|-
|-
|Muat image container dengan rumus:  
|Muat image container dengan rumus:  
Baris 119: Baris 141:
!
!
|-
|-
|Apabila menggunakan image global yang disediakan, nama image menjadi:  
|Untuk image global dari ALELEON, direktori dan nama image adalah:  
<code>'''/comp/containers/nvidia/''[nama-image]''.sif'''</code>
<code>'''/comp/containers/nvidia/''[nama-image]''.sif'''</code>


Contoh -><code>/comp/containers/nvidia/pytorch_23.08-py3.sif</code>
Contoh -><code>/comp/containers/nvidia/pytorch_23.08-py3.sif</code>
|-
|-
!3
!4
|-
|-
|Lakukan instalasi package dengan '''pip'''
|Lakukan instalasi package dengan '''pip'''
Baris 137: Baris 159:
!1
!1
|-
|-
| '''[https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_ |'''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
| '''[https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_EFIRO#1_ |'''[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|-
|-
!2
!2
|-
|-
|Buka app '''Jupyter''' [[Berkas:New Pinnedapps jupyter.png|nirbing|116x116px]] di homepage EFIRO.
|Buka pinned apps '''Jupyter''' [[Berkas:New Pinnedapps jupyter.png|nirbing|116x116px]] di homepage EFIRO.
|-
|-
!3
!3
Baris 173: Baris 195:
*Alokasi GPU * hours > sisa GPU Hour
*Alokasi GPU * hours > sisa GPU Hour
Cek sisa Core Hour dengan:
Cek sisa Core Hour dengan:
#Buka app [[Berkas:Pinnedapps terminal.png|nirbing|116x116px]]  di homepage EFIRO
#Buka menu '''<code>Clusters => Aleleon Shell Access</code>'''
#Jalankan perintah '''<code>sausage</code>'''
#Jalankan perintah '''<code>sausage</code>'''
|}
|}
Baris 179: Baris 201:
**'''Container''' -> menggunakan image siap pakai dari ALELEON
**'''Container''' -> menggunakan image siap pakai dari ALELEON
**'''Custom container''' -> menggunakan image yang dipull / buat user
**'''Custom container''' -> menggunakan image yang dipull / buat user
*'''Choose Anaconda version'''
*'''''Pilih image atau menyediakan direktori & nama image user'''''
**''Pilih versi yang digunakan untuk membuat conda env user''
*'''Pilih image atau menyediakan direktori & nama image'''  
*'''Software modules''' -> ''kosongkan''
*'''Software modules''' -> ''kosongkan''



Revisi terkini sejak 28 Mei 2024 10.18

LPython apptainer logo.png

Halaman ini menjelaskan komputasi Python dengan container Apptainer di ALELEON Supercomputer. Apptainer (dahulu Singularity) adalah container yang dirancang untuk sistem superkomputer / HPC.

Laman ini merupakan bagian laman -> Komputasi Python

Langkah Menjalankan Komputasi dan Limitasi

Terdapat 3 langkah utama:

  1. Memilih atau menyiapkan image container yang digunakan.
  2. Melengkapi image container dengan Python package apabila dibutuhkan.
  3. Saat ini container hanya dapat dijalankan dengan app Jupyter New Pinnedapps jupyter.png pada interactive node.

Pilihan Image Container

ALELEON Supercomputer menyediakan tiga pilihan image yaitu:

  • Image global siap pakai yang disediakan ALELEON Supercomputer
  • User melakukan pull image dari container registry
  • User membuat image sendiri

Daftar Image Global

Adalah image container yang disediakan oleh ALELEON Supercomputer dan siap pakai untuk sesi interaktif Jupyter:

Daftar Image Global yang tersedia
Nama Image Keterangan
pytorch_23.08-py3.sif Pytorch dari NVIDIA NGC Catalog
pytorch_24.04-py3.sif
tensorflow_24.04-tf2-py3.sif TensorFlow dari NVIDIA NGC Catalog
tensorflow2.13_jupyter_cuda.sif TensorFlow 2.13 custom dari admin ALELEON

Melakukan Pull Image

User dapat melakukan pull image dari container registry manapun.

Langkah Melakukan Pull Image dengan Apptainer
1
Masuk ke terminal melalui:

Kegiatan ini tidak mengurangi Core Hour user.

2
Muat modul Apptainer:

$ module load apptainer

3
Lakukan pull dengan rumus:

$ apptainer pull docker://[image-tag]

Contoh pull imafe TensorFlow 24.01-tf2-py3 dari NVIDIA NGC Catalog:

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

Membuat Image Sendiri

User juga dapat membuat image sendiri melalui sandbox Apptainer di ALELEON Supercomputer.

Langkah Membuat Image Container dengan Apptainer
1
Masuk ke terminal melalui:

Kegiatan ini tidak mengurangi Core Hour user.

2
Muat modul Apptainer:

$ module load apptainer

3
Buat sandbox dengan image sif:

$ apptainer build --sandbox [sandbox-dir] [image-name].sif

4
Jalankan sanbox dengan memperbolehkan modifikasi

$ apptainer run --fakeroot --writeable [sandbox-dir]

5
Lakukan modifikasi sesuai keinginan user
Apptainer> [command-untuk-modifikasi...]
Apptainer> exit
6
Bangun image baru dari sandbox tersebut:

$ apptainer build [image-name].sif [sandbox-dir]

Instalasi Package Python pada Image Container

User dapat menambah package Python pada image container dimana terinstal pada HOME user.

Langkah Instalasi Package ke Image Container
1
Masuk ke terminal melalui:

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

4
Lakukan instalasi package dengan pip

$ pip install [nama-package]

Sesi Jupyter dengan Container

Langkah Interactive Job Sesi Jupyter dengan Container

Efirojupyterlab.png

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

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