Komputasi dengan Container Apptainer: Perbedaan antara revisi

Dari ALELEON by EFISON
(→‎Instalasi Package Python pada Image Container: menekankan step ini adalah opsional)
(→‎Instalasi Library Python pada Image Container: mengganti pip ke python3 -m pip)
Baris 148: Baris 148:
|-
|-
|Lakukan instalasi library dengan '''pip'''
|Lakukan instalasi library dengan '''pip'''
<code>'''$ pip install ''[nama-package]'''''</code>
<code>'''$ python3 -m pip install ''[nama-package]'''''</code>
|}
|}



Revisi per 30 Juli 2024 15.38

LBerkas:Python 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 instalasi library Python tambahan 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 sebagai berikut. SIlahkan pilih yang sesuai dengan kebutuhan user.

  • Image siap pakai yang disediakan ALELEON Supercomputer:
Daftar Image Siap Pakai
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
  • User melakukan pull image dari container registry manapun:
Langkah Melakukan Pull Image dengan Apptainer
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
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

  • User membuat image sendiri:
Langkah Membuat Image Container dengan Apptainer
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
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 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

4
Lakukan instalasi library dengan pip

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