Komputasi Python dengan Anaconda: Perbedaan antara revisi

Dari ALELEON by EFISON
(21 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 16: Baris 16:


{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Membuat Conda Environment
!Membuat Conda Environment
|-
!1
|-
|-
| rowspan="2" |'''1'''
|Pilih dan aktifkan modul Anaconda yang akan digunakan.
|Pilih dan aktifkan modul Anaconda yang akan digunakan.
<code>$ '''module load ''[nama-modul-anaconda]'''''</code>
<code>$ '''module load ''[nama-modul-anaconda]'''''</code>
|-
|
{| class="wikitable"
{| class="wikitable"
! colspan="2" |Daftar nama modul Anaconda
! colspan="2" |Daftar nama modul Anaconda
Baris 42: Baris 41:
|}
|}
|-
|-
|'''2'''
!2
|-
|Buat conda env di direktori HOME dan aktifkan dengan perintah:
|Buat conda env di direktori HOME dan aktifkan dengan perintah:
  $ '''conda create --name ''[nama-conda-env]'' pip'''
  $ '''conda create --name ''[nama-conda-env]'' pip'''
Baris 51: Baris 51:
|}
|}
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Mengaktifkan Conda Environment dan Instalasi Package
!Mengaktifkan Conda Environment dan Instalasi Package
|-
!0
|-
|-
|'''''0'''''
|''Aktifkan modul Anaconda yang digunakan untuk membuat conda env user.''
|''Aktifkan modul Anaconda yang digunakan untuk membuat conda env user.''
|-
|-
| rowspan="2" |'''1'''
!1
|-
|Aktifkan conda env dengan perintah:  
|Aktifkan conda env dengan perintah:  
  $ '''source activate ''[nama-conda-env]'''''
  $ '''source activate ''[nama-conda-env]'''''
Baris 62: Baris 64:
  ''Contoh mengaktifkan conda env 'skripsi'''
  ''Contoh mengaktifkan conda env 'skripsi'''
  $ source activate '''skripsi'''
  $ source activate '''skripsi'''
|-
!2
|-
|-
|User dapat melihat daftar conda env yang dibuat sebelumnya dengan:
|User dapat melihat daftar conda env yang dibuat sebelumnya dengan:
<code>$ '''conda env list'''</code>
<code>$ '''conda env list'''</code>
|-
|-
|'''2'''
!3
|-
|Lakukan instalasi package Python yang dibutuhkan dengan '''<code>pip</code>'''
|Lakukan instalasi package Python yang dibutuhkan dengan '''<code>pip</code>'''
* Contoh [https://pytorch.org/get-started/locally/ instalasi PyTorch dengan pip].
* Contoh [https://pytorch.org/get-started/locally/ instalasi PyTorch dengan pip].
* Contoh [https://www.tensorflow.org/install/pip instalasi TensorFlow dengan pip].
* Contoh [https://www.tensorflow.org/install/pip instalasi TensorFlow dengan pip].
|-
|-
|'''3'''
!4
|-
|Untuk menonaktifkan conda env jalankan perintah:
|Untuk menonaktifkan conda env jalankan perintah:
<code>$ '''conda deactivate'''</code>
<code>$ '''conda deactivate'''</code>
|}
|}
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Manajemen Conda Environment
!Manajemen Conda Environment
|-
|-
|'''1'''
|Deactivate conda env untuk melakukan manajemen ini
|Deactivate conda env untuk melakukan manajemen dibawah ini.
|-
!a
|-
|-
| rowspan="2" |'''2'''
|Untuk mengubah nama conda env:
|Untuk mengubah nama conda env:
  $ '''conda rename -n ''[nama-saat-ini]'' ''[nama-baru]'''''
  $ '''conda rename -n ''[nama-saat-ini]'' ''[nama-baru]'''''
Baris 87: Baris 93:
  ''Contoh mengubah nama env skripsi ke tesis''
  ''Contoh mengubah nama env skripsi ke tesis''
  $ conda rename -n skripsi tesis
  $ conda rename -n skripsi tesis
|-
!b
|-
|-
|Untuk menghapus conda env:  
|Untuk menghapus conda env:  
Baris 107: Baris 115:
# Tutorial ini mengasumsikan user familiar dengan terminal Linux.
# Tutorial ini mengasumsikan user familiar dengan terminal Linux.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Job Submission Terminal
!Langkah Job Submission Terminal
[[Berkas:Sbatch Terminal.png|tepi|400x400px]]
[[Berkas:Sbatch Terminal.png|tepi|400x400px]]
|-
|-
|'''1'''
!1
|Lakukan [https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''] ke ALELEON Supercomputer.
|-
| Lakukan [https: / wiki.efisonlt.com wiki Menggunakan_ALELEON_Supercomputer_via_Terminal#1_ |[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#1_|_Login_SSH '''Login SSH'''] ke ALELEON Supercomputer.
|-
!2
|-
|-
|'''2'''
|Siapkan conda env dan file komputasi yang dibutuhkan.
|Siapkan conda env dan file komputasi yang dibutuhkan.


* User dapat upload / download file dengan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
* User dapat upload / download file dengan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
|-
|-
| rowspan="3" |'''3'''
!3
|-
|Buat '''Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi.
|Buat '''Submit Script''' yaitu 'formulir' untuk menjalankan job komputasi.


* Nama file bebas dengan format .sh, contoh '''<code>submit.sh</code>'''
* Nama file bebas dengan format .sh, contoh '''<code>submit.sh</code>'''
|-
!
|-
|-
|Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
|Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
Baris 245: Baris 258:
Info script lebih detail lihat [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']].
Info script lebih detail lihat [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']].
|-
|-
|<nowiki>---</nowiki>
!
|-
|
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Panduan nilai maksimal alokasi komputasi SBATCH
!Panduan nilai maksimal alokasi komputasi SBATCH
Baris 251: Baris 266:
|Pada akun perseorangan, SLURM akan menahan job apabila:  
|Pada akun perseorangan, SLURM akan menahan job apabila:  


* ntasks * time (jam) lebih besar dari sisa CPU Core Hour user
* ntasks * time (jam) > sisa CPU Core Hour
* gpus * time (jam) lebih besar dari sisa GPU Hour user
* gpus * time (jam) > sisa GPU Hour


Cek sisa Core Hour dengan perintah '''<code>sausage</code>''' di terminal.
Cek sisa Core Hour dengan perintah <code>'''sausage'''</code> di terminal.
|-
|-
|'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan:'''
!'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan'''
{| class="wikitable"
{| class="wikitable"
!ntasks
!total ntasks
!mem
!total mem
!gpus
!total gpus
!time
!time
|-
|-
Baris 268: Baris 283:
|72:00:00
|72:00:00
|}
|}
User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini'''].
|-
|User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini''']
|-
!
|-
|-
|'''Versi CPU dan GPU:'''
|'''Versi CPU dan GPU:'''
Baris 293: Baris 311:
|}
|}
<nowiki>*</nowiki>Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
<nowiki>*</nowiki>Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
|-
!
|-
|-
|'''Versi MPI (dengan MPI4PY):'''
|'''Versi MPI (dengan MPI4PY):'''
Baris 312: Baris 332:
* Info detail buka laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']].
* Info detail buka laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']].
|}
|}
---
|-
|-
|'''4'''
!4
|-
|Jalankan job komputasi dengan perintah:  
|Jalankan job komputasi dengan perintah:  
  $ '''sbatch ''[nama-submit-script]'''''
  $ '''sbatch ''[nama-submit-script]'''''
Baris 321: Baris 341:
  $ sbatch submit.sh
  $ sbatch submit.sh
|-
|-
|'''5'''
!5
|-
|User dapat melihat status jalannya job dengan perintah:  
|User dapat melihat status jalannya job dengan perintah:  
'''<code>$ squeue -ul $USER</code>'''
'''<code>$ squeue -ul $USER</code>'''
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Daftar ST (STATE) yang menunjukkan status jalannya job:
! colspan="2" |Daftar ST (STATE) menunjukkan status jalannya job:
|-
|-
!STATE
!STATE
Baris 349: Baris 370:
|}
|}
|-
|-
|'''6'''
!
|-
|Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
|Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
  '''$ scancel ''[job-ID]'''''
  '''$ scancel ''[job-ID]'''''
   
   
  ''Job ID ada pada squeue diatas.
  ''Job ID ada pada squeue diatas.''
  contoh membatalkan job ID 231:''
  contoh membatalkan job ID 231:
  $ scancel 231
  $ scancel 231
|}
|}
Baris 365: Baris 387:
# Berjalan di Compute Node.
# Berjalan di Compute Node.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Job Submission Web EFIRO
!Langkah Job Submission Web EFIRO
[[Berkas:Efirojobcomposer3.png|nirbing|400x400px]]
[[Berkas:Efirojobcomposer3.png|nirbing|400x400px]]
|-
|-
|'''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#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|
|-
!2
|-
|-
|'''2'''
|[[Berkas:Pinnedapps jc.png|nir|jmpl|143x143px|Buka app '''<code>Job Composer</code>''' di Pinned Apps.]][[Berkas:Jcnewjobmarked.png|nir|jmpl|180x180px|Pilih menu '''<code>New Job</code>''' -> '''<code>From Template</code>''']]
|Buka app '''<code>Job Composer</code>''' di Pinned Apps.[[Berkas:Pinnedapps jc.png|nir|jmpl|143x143px]]Pilih menu '''<code>New Job</code>''' -> '''<code>From Template</code>'''[[Berkas:Jcnewjobmarked.png|nir|jmpl|180x180px]]
|-
|-
|
!3
|
|-
|-
|'''3'''
|
|
{| class="wikitable"
{| class="wikitable"
Baris 394: Baris 413:
|Menjalankan Anaconda Python versi GPU
|Menjalankan Anaconda Python versi GPU
|}
|}
Kemudian Isi '''<code>Job Name</code>''' dan klik '''<code>Create New Job</code>'''[[Berkas:Jctemplate-2.png|nir|jmpl]]
Kemudian Isi '''<code>Job Name</code>''' dan klik '''<code>Create New Job</code>'''
 
[[Berkas:Jctemplate-2.png|nirbing]]
|-
|-
|
!4
|
|-
|-
|'''4'''
|Upload dan edit file untuk menjalankan komputasi pada '''<code>Edit Files</code>'''
|Upload dan edit file untuk menjalankan komputasi pada '''<code>Edit Files</code>'''[[Berkas:Jcjoboption.png|nir|jmpl|Tombol '''<code>Edit Files</code>''' dan '''<code>Open Terminal</code>''']]
[[Berkas:Jcjoboption.png|nirbing|400x400px]]
* Untuk upload file tunggal diatas 2GB gunakan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
* Untuk upload file tunggal diatas 2GB gunakan [[Upload File dengan Aplikasi FTP|'''software FTP''']].
* Apabila butuh akses terminal buka <code>'''Open Terminal'''</code>.
* Apabila butuh akses terminal buka <code>'''Open Terminal'''</code>.
|-
|-
|
!5
|
|-
|-
| rowspan="3" |'''5'''
|Lengkapi '''Submit Script''' melalui tombol '''<code>Open Editor</code>'''.
|Lengkapi '''Submit Script''' melalui tombol '''<code>Open Editor</code>'''.[[Berkas:Jceditor3.png|al=|nir|jmpl|400x400px]]
[[Berkas:Jceditor3.png|al=|nirbing|400x400px]]
 
* Submit script adalah 'formulir' untuk menjalankan job komputasi.
* Submit script adalah 'formulir' untuk menjalankan job komputasi.
* Ikuti petunjuk NOTES didalamnya
* Ikuti petunjuk NOTES didalamnya
* Klik '''<code>Save</code>''' setiap kali mengubah script.
* Klik '''<code>Save</code>''' setiap kali mengubah script.
|-
|-
|
!
|-
|-
|
|
Baris 422: Baris 440:
|Pada akun perseorangan, SLURM akan menahan job apabila:  
|Pada akun perseorangan, SLURM akan menahan job apabila:  


* ntasks * time (jam) lebih besar dari sisa CPU Core Hour user
* ntasks * time (jam) > sisa CPU Core Hour
* gpus * time (jam) lebih besar dari sisa GPU Hour user
* gpus * time (jam) > sisa GPU Hour


Cek sisa Core Hour dengan langkah:
Cek sisa Core Hour dengan langkah:
Baris 430: Baris 448:
# Jalankan perintah '''<code>sausage</code>'''
# Jalankan perintah '''<code>sausage</code>'''
|-
|-
|'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan:'''
!'''Limitasi [[Limitasi Fair Usage ALELEON Supercomputer|fair policy usage]] untuk menjaga kualitas layanan'''
{| class="wikitable"
{| class="wikitable"
!ntasks
!total ntasks
!mem
!total mem
!gpus
!total gpus
!time
!time
|-
|-
Baris 442: Baris 460:
|72:00:00
|72:00:00
|}
|}
User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini'''].
|-
|-
|'''Versi CPU:'''
|User dapat mengajukan permintaan membuka limitasi melalui [https://efisonlt.com/pelaporan-kendala-aleleon-supercomputer/ '''form ini''']
|-
!
|-
|'''Versi CPU dan GPU:'''
{| class="wikitable"
{| class="wikitable"
!Node
!Jenis komputasi
!ntasks
!ntasks
!mem
!mem
Baris 452: Baris 473:
!time
!time
|-
|-
|normal
|CPU normal
| rowspan="2" |128
| rowspan="2" |128
|240GB
|240GB
| rowspan="2" | -
| rowspan="2" | -
| rowspan="2" |72:00:00
| rowspan="3" |72:00:00
|-
|-
|high-mem*
|CPU high-mem*
|500GB
|500GB
|}
<nowiki>*</nowiki>Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
|-
|'''Versi GPU:'''
{| class="wikitable"
!ntasks
!mem
!gpus
!time
|-
|-
|GPU
|32
|32
|120GB
|120GB
|2
|2
|72:00:00
|}
|}
<nowiki>*</nowiki>Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code>
|-
!
|-
|-
|'''Versi MPI (dengan MPI4PY):'''
|'''Versi MPI (dengan MPI4PY):'''
Baris 495: Baris 510:
|}
|}
|-
|-
|
!6
|
|-
|-
|'''6'''
|Jalankan job dengan klik tombol '''<code>Submit</code>'''.
|Jalankan job dengan klik tombol '''<code>Submit</code>'''.[[Berkas:Jcsubmit2.png|al=|nir|jmpl|Tombol '''<code>Submit</code>''' dan '''<code>Stop</code>''' disebelahnya.]]
[[Berkas:Jcsubmit2.png|al=|nirbing|400x400px]]
 
* Pantau kolom status yang menjelaskan status jalannya job.
* Pantau kolom status yang menjelaskan status jalannya job.
* Apabila ingin membatalkan job yang berjalan, klik '''<code>Stop</code>'''.
* Apabila ingin membatalkan job yang berjalan, klik '''<code>Stop</code>'''.
Baris 506: Baris 519:


{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Daftar status job
! colspan="2" |Daftar status job:
|-
|-
!Status
!Status
Baris 531: Baris 544:
|}
|}
|-
|-
|
!7
|
|-
|-
|'''7'''
|Lihat output file komputasi pada kolom '''<code>Folder Contents</code>'''
|Lihat output file komputasi pada kolom '''<code>Folder Contents</code>'''
*Atau dengan membuka '''<code>Edit Files</code>'''
*Atau dengan membuka '''<code>Edit Files</code>'''
Baris 546: Baris 557:
# Berjalan di Interactive Node.
# Berjalan di Interactive Node.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
! colspan="2" |Langkah Interactive Job Sesi Jupyter
!Langkah Interactive Job Sesi Jupyter
[[Berkas:Efirojupyterlab.png|400x400px]]
[[Berkas:Efirojupyterlab.png|400x400px]]
|-
|-
|'''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#1_|_Login_Web_EFIRO Login ke web EFIRO]''' ALELEON Supercomputer.
|-
!2
|-
|-
|'''2'''
|[[Berkas:Pinnedapps jupyter.png|nir|jmpl|141x141px|Buka app '''<code>Jupyter</code>''' di Pinned Apps pada homepage EFIRO.]]
|Buka app '''<code>Jupyter</code>''' di Pinned Apps.[[Berkas:Pinnedapps jupyter.png|nir|jmpl|141x141px]]
|-
!3
|-
|-
|'''3'''
|Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:
|Isi formulir untuk memulai sesi Jupyter dengan panduan berikut:


Baris 561: Baris 575:
** ''pilih sesuai preferensi user, Jupyter Lab atau Notebook''
** ''pilih sesuai preferensi user, Jupyter Lab atau Notebook''
* '''Partition''' -> ''pilih sesuai kebutuhan:''  
* '''Partition''' -> ''pilih sesuai kebutuhan:''  
** torti -> CPU saja  
** torti -> CPU saja
** tilla -> CPU dan GPU
** tilla -> CPU dan GPU


Baris 583: Baris 597:
|-
|-
| colspan="3" |'''Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:'''  
| colspan="3" |'''Pada akun perseorangan, sesi Jupyter tidak akan berjalan apabila:'''  
* Alokasi CPU * hours lebih besar dari sisa CPU Core Hour user.
* Alokasi CPU * hours > sisa CPU Core Hour  
* Alokasi GPU * hours lebih besar dari sisa GPU Hour user.
* Alokasi GPU * hours > sisa GPU Hour


Cek sisa Core Hour dengan:  
Cek sisa Core Hour dengan:  
Baris 600: Baris 614:
** ''Membuat modul software, isi sesuai kebutuhan user''
** ''Membuat modul software, isi sesuai kebutuhan user''
** ''Apabila menggunakan tilla, isi modul '''NVIDIA CUDA''' yang sesuai''
** ''Apabila menggunakan tilla, isi modul '''NVIDIA CUDA''' yang sesuai''
* '''Environment setup'''
{| class="wikitable mw-collapsible mw-collapsed"
|-
! colspan="2" |Daftar Software Modules NVIDIA CUDA
|-
!Nama Software Modules
!Versi
|-
|cuda/11.2-cuDNN8.1.1
|CUDA 11.2 + cuDNN 8.1.1
|-
|cuda/11.6-cuDNN8.3.3
|CUDA 11.6 + cuDNN 8.3.3
|-
|cuda/11.8-cuDNN8.6.0
|CUDA 11.8 + cuDNN 8.6.0
|-
|cuda/12.0-cuDNN8.7.0
|CUDA 12.0 + cuDNN 8.7.0
|-
|cuda/12.1-cuDNN8.8.1
|CUDA 12.1 + cuDNN 8.8.1
|-
|cuda/12.3-cuDNN8.9.6
|CUDA 12.3 + cuDNN 8.9.6
|}
*'''Environment setup'''
** ''Memuat environment variable, isi apabila ada''
** ''Memuat environment variable, isi apabila ada''
* '''Additional Jupyter arguments'''
* '''Additional Jupyter arguments'''
Baris 607: Baris 646:
** ''Notifikasi email untuk status mulai dan selesainya sesi Jupyter.''
** ''Notifikasi email untuk status mulai dan selesainya sesi Jupyter.''
** ''Isi apabila berkenan.''
** ''Isi apabila berkenan.''
|-
|-
|'''4'''
!4
|-
|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>'''.
Baris 615: Baris 654:
[[Berkas:Jupyternotebookqueue.png|nir|jmpl|''Status sesi Jupyter mengantri menunggu alokasi hardware'']]
[[Berkas:Jupyternotebookqueue.png|nir|jmpl|''Status sesi Jupyter mengantri menunggu alokasi hardware'']]
|-
|-
|'''5'''
!5
|-
|Apabila status '''Running''', klik tombol '''<code>Connect to Jupyter</code>'''.
|Apabila status '''Running''', klik tombol '''<code>Connect to Jupyter</code>'''.


Baris 622: Baris 662:
[[Berkas:Newjupyter120124.png|nir|jmpl|''Sesi Jupyter siap diakses.'']]Untuk menghentikan sesi, klik tombol '''<code>Cancel</code>'''.
[[Berkas:Newjupyter120124.png|nir|jmpl|''Sesi Jupyter siap diakses.'']]Untuk menghentikan sesi, klik tombol '''<code>Cancel</code>'''.
|-
|-
|'''6'''
!6
|-
|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'''
!7
|-
|User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:  
|User dapat mengunjungi sesi Jupyter yang sedang berjalan pada:  



Revisi per 5 April 2024 09.04

Halaman ini menjelaskan menjalankan komputasi Python dengan environment Anaconda di ALELEON Supercomputer.

Pythonanaconda.png

Langkah Menjalankan Komputasi

Terdapat dua langkah utama:

  1. Membuat dan menyiapkan conda environment untuk komputasi user.
  2. Memilih metode menjalankan komputasi.

Membuat Conda Environment

Kegiatan ini dilakukan pada terminal:

  • Diakses melalui login SSH, atau
  • Pada web EFIRO, buka menu Clusters -> Aleleon Shell Access
Membuat Conda Environment
1
Pilih dan aktifkan modul Anaconda yang akan digunakan.

$ module load [nama-modul-anaconda]

Daftar nama modul Anaconda
Nama Modul Versi
Anaconda3/2023.07-2 Anaconda 3 2023.07-2
Anaconda3/2022.05 Anaconda 3 2022.05
Anaconda3/2021.05 Anaconda 3 2021.05
Anaconda3/2020.11 Anaconda 3 2020.11
2
Buat conda env di direktori HOME dan aktifkan dengan perintah:
$ conda create --name [nama-conda-env] pip

Contoh nama 'skripsi'
$ conda create --name skripsi pip
Mengaktifkan Conda Environment dan Instalasi Package
0
Aktifkan modul Anaconda yang digunakan untuk membuat conda env user.
1
Aktifkan conda env dengan perintah:
$ source activate [nama-conda-env]

Contoh mengaktifkan conda env 'skripsi'
$ source activate skripsi
2
User dapat melihat daftar conda env yang dibuat sebelumnya dengan:

$ conda env list

3
Lakukan instalasi package Python yang dibutuhkan dengan pip
4
Untuk menonaktifkan conda env jalankan perintah:

$ conda deactivate

Manajemen Conda Environment
Deactivate conda env untuk melakukan manajemen ini
a
Untuk mengubah nama conda env:
$ conda rename -n [nama-saat-ini] [nama-baru]

Contoh mengubah nama env skripsi ke tesis
$ conda rename -n skripsi tesis
b
Untuk menghapus conda env:

$ conda remove -n <nama-conda-env> --all

Metode Menjalankan Komputasi

User dapat memilih metode menjalankan komputasi sesuai keinginan:

  • Job submission di terminal
  • Job submission di web EFIRO
  • Interactive job Jupyter Lab / Notebook

Job Submission Terminal

Ketentuan:

  1. Menjalankan file Python di terminal dengan scheduler SLURM.
    • File ipynb harus dikonversi ke file Python.
  2. Berjalan di Compute Node.
  3. Tutorial ini mengasumsikan user familiar dengan terminal Linux.
Langkah Job Submission Terminal

Sbatch Terminal.png

1
Login SSH ke ALELEON Supercomputer.
2
Siapkan conda env dan file komputasi yang dibutuhkan.
3
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 didalamnya.
Anaconda Python di CPU
#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Anaconda Python (CPU)
# 
# NOTES: 
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat Conda Environment.
# -----------------------------------------------------

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

# Nama Conda Environment yang digunakan
CONDA_NAME=////

# Nama program Python yang dijalankan
INPUT_FILE=////.py

# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------

# Mengaktifkan Conda Environment 
module load Anaconda3
source activate ${CONDA}/${CONDA_NAME}

# Menjalankan file Python
python3 ${INPUT_FILE}
Anaconda Python di GPU
#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Anaconda Python (GPU)
# 
# NOTES: 
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# 3. Pastikan user sudah membuat Conda Environment.
# -----------------------------------------------------

# -----------------------------------------------------
# Alokasi komputasi SBATCH dan file input
# -----------------------------------------------------

# Menggunakan 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 

# Nama Conda Environment yang digunakan
CONDA_NAME=////

# Nama program Python yang dijalankan
INPUT_FILE=////.py

# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------

# Memuat modul NVIDIA CUDA default 
module load cuda

# Mengaktifkan Conda Environment 
module load Anaconda3
source activate ${CONDA}/${CONDA_NAME}

# Menjalankan file Python
python3 ${INPUT_FILE}

Info script lebih detail lihat Submit Script ALELEON Supercomputer.

Panduan nilai maksimal alokasi komputasi SBATCH
Pada akun perseorangan, SLURM akan menahan job apabila:
  • ntasks * time (jam) > sisa CPU Core Hour
  • gpus * time (jam) > sisa GPU Hour

Cek sisa Core Hour dengan perintah sausage di terminal.

Limitasi fair policy usage untuk menjaga kualitas layanan
total ntasks total mem total gpus time
128 128GB 2 72:00:00
User dapat mengajukan permintaan membuka limitasi melalui form ini
Versi CPU dan GPU:
Jenis komputasi ntasks mem gpus time
CPU normal 128 240GB - 72:00:00
CPU high-mem* 500GB
GPU 32 120GB 2

*Tambahkan parameter #SBATCH --nodelist=epyc001

Versi MPI (dengan MPI4PY):
ntasks mem gpus time
384 240GB - 72:00:00

Ketika ntasks lebih dari 128:

  • SLURM otomatis menjalankan job pada multi-node.
  • Mem mengalokasikan memori RAM per-node.
  • Info detail buka laman MPI ALELEON Supercomputer.
4
Jalankan job komputasi dengan perintah:
$ sbatch [nama-submit-script]

Contoh:
$ sbatch submit.sh
5
User dapat melihat status jalannya job dengan perintah:

$ squeue -ul $USER

Daftar ST (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

Job Submission Web EFIRO

Ketentuan:

  1. Menjalankan file Python di web EFIRO Job Composer dengan scheduler SLURM.
    • File ipynb harus dikonversi ke file Python.
  2. Berjalan di Compute Node.
Langkah Job Submission Web EFIRO

Efirojobcomposer3.png

1
Login ke web EFIRO ALELEON Supercomputer.
2
Buka app Job Composer di Pinned Apps.
Pilih menu New Job -> From Template
3
Pilih template Anaconda Python yang diinginkan
Nama Template Penjelasan
Anaconda Python (CPU) Menjalankan Anaconda Python versi CPU
Anaconda Python (GPU) Menjalankan Anaconda Python versi GPU

Kemudian Isi Job Name dan klik Create New Job

Jctemplate-2.png

4
Upload dan edit file untuk menjalankan komputasi pada Edit Files

Jcjoboption.png

  • Untuk upload file tunggal diatas 2GB gunakan software FTP.
  • Apabila butuh akses terminal buka Open Terminal.
5
Lengkapi Submit Script melalui tombol Open Editor.

  • Submit script adalah 'formulir' untuk menjalankan job komputasi.
  • Ikuti petunjuk NOTES didalamnya
  • Klik Save setiap kali mengubah script.
Panduan nilai maksimal alokasi komputasi SBATCH
Pada akun perseorangan, SLURM akan menahan job apabila:
  • ntasks * time (jam) > sisa CPU Core Hour
  • gpus * time (jam) > sisa GPU Hour

Cek sisa Core Hour dengan langkah:

  1. Buka menu Open Terminal
  2. Jalankan perintah sausage
Limitasi fair policy usage untuk menjaga kualitas layanan
total ntasks total mem total gpus time
128 128GB 2 72:00:00
User dapat mengajukan permintaan membuka limitasi melalui form ini
Versi CPU dan GPU:
Jenis komputasi ntasks mem gpus time
CPU normal 128 240GB - 72:00:00
CPU high-mem* 500GB
GPU 32 120GB 2

*Tambahkan parameter #SBATCH --nodelist=epyc001

Versi MPI (dengan MPI4PY):
ntasks mem gpus time
384 240GB - 72:00:00

Ketika ntasks lebih dari 128:

  • SLURM otomatis menjalankan job pada multi-node.
  • Mem mengalokasikan memori RAM per-node.
  • Info detail buka laman MPI ALELEON Supercomputer.
6
Jalankan job dengan klik tombol Submit.

  • Pantau kolom status yang menjelaskan status jalannya job.
  • Apabila ingin membatalkan job yang berjalan, klik Stop.
  • Job completed dapat dijalankan kembali dengan Submit.
Daftar status job:
Status Arti
Not Submitted Job belum pernah dijalankan.
Running Job berjalan.
Queue Job mengantri dan belum berjalan.
Completed Job selesai berjalan.
Failed Job berhenti di tengah jalan, antara error atau di stop user
Untuk melihat alasan queue:
  1. Buka app Active Jobs pada homepage EFIRO.
  2. Ubah opsi Your jobs untuk melihat status job user saja. Klik simbol > untuk melihat status job pending pada kolom Reason. Arti reason lihat laman Daftar Reason NODELIST ALELEON Supercomputer.
7
Lihat output file komputasi pada kolom Folder Contents
  • Atau dengan membuka Edit Files
Kolom Folder Contents.

Interactive Job Jupyter

Ketentuan:

  1. Menjalankan sesi interaktif Jupyter Lab atau Notebook.
  2. Berjalan di Interactive Node.
Langkah Interactive Job Sesi Jupyter

Efirojupyterlab.png

1
Login ke web EFIRO ALELEON Supercomputer.
2
Buka app Jupyter di Pinned Apps pada 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 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 app Aleleon Shell Access pada homepage EFIRO
  2. Jalankan perintah sausage
  • Choose how to launch Jupyter -> Anaconda
  • Choose Anaconda version
    • Pilih versi yang digunakan untuk membuat conda env user
  • Conda environment directory
    • Isi nama conda env user yang akan digunakan
  • Software modules
    • Membuat modul software, isi sesuai kebutuhan user
    • Apabila menggunakan tilla, isi modul NVIDIA CUDA yang sesuai
Daftar Software Modules NVIDIA CUDA
Nama Software Modules Versi
cuda/11.2-cuDNN8.1.1 CUDA 11.2 + cuDNN 8.1.1
cuda/11.6-cuDNN8.3.3 CUDA 11.6 + cuDNN 8.3.3
cuda/11.8-cuDNN8.6.0 CUDA 11.8 + cuDNN 8.6.0
cuda/12.0-cuDNN8.7.0 CUDA 12.0 + cuDNN 8.7.0
cuda/12.1-cuDNN8.8.1 CUDA 12.1 + cuDNN 8.8.1
cuda/12.3-cuDNN8.9.6 CUDA 12.3 + cuDNN 8.9.6
  • 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.