Jupyter Notebook: Perbedaan antara revisi
LSlowmotion (bicara | kontrib) (v1.0) |
LSlowmotion (bicara | kontrib) (→Menjalankan SLURM Interaktif: Repair srun tutorial on GPU) |
||
Baris 27: | Baris 27: | ||
== '''SLURM Interaktif untuk Jupyter Notebook''' == | == '''SLURM Interaktif untuk Jupyter Notebook''' == | ||
Untuk menjalankan SLURM interaktif, user perlu membuat SLURM script khusus untuk dijalankan menggunakan perintah <code>srun</code>. | Untuk menjalankan SLURM interaktif, user perlu membuat SLURM script khusus untuk dijalankan menggunakan perintah <code>srun</code>. | ||
=== '''Script SLURM''' === | === '''Script SLURM''' === | ||
#!/bin/bash | #!/bin/bash | ||
Baris 57: | Baris 56: | ||
Pastikan script SLURM dapat dijalankan dengan permission <code>x</code> (execute). Menambahkan permission dapat dilakukan menggunakan perintah chmod seperti pada contoh di bawah: | Pastikan script SLURM dapat dijalankan dengan permission <code>x</code> (execute). Menambahkan permission dapat dilakukan menggunakan perintah chmod seperti pada contoh di bawah: | ||
$ chmod +x <nama_berkas_script_slurm> | $ chmod +x <nama_berkas_script_slurm> | ||
=== '''Menjalankan SLURM Interaktif''' === | === '''Menjalankan SLURM Interaktif''' === | ||
User dapat menjalankan SLURM interaktif dengan script SLURM yang sudah dibuat dengan perintah <code>srun</code>. | User dapat menjalankan SLURM interaktif dengan script SLURM yang sudah dibuat dengan perintah <code>srun</code>. | ||
Baris 64: | Baris 62: | ||
$ srun -c 4 -p epyc -t 1:00:00 <nama_berkas_script_slurm> | $ srun -c 4 -p epyc -t 1:00:00 <nama_berkas_script_slurm> | ||
Contoh perintah <code>srun</code> apabila user ingin menggunakan 4 core CPU dan 1 GPU di [[Partisi Aleleon Mk.II#Partisi gpu ampere|partisi gpu_ampere]] selama 1 jam: | Contoh perintah <code>srun</code> apabila user ingin menggunakan 4 core CPU dan 1 GPU di [[Partisi Aleleon Mk.II#Partisi gpu ampere|partisi gpu_ampere]] selama 1 jam: | ||
$ srun -c 4 - | $ srun -c 4 --gres=gpu:1 -p gpu_ampere -t 1:00:00 <nama_berkas_script_slurm> | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Daftar parameter umum pada <code>srun</code> | |+Daftar parameter umum pada <code>srun</code> | ||
Baris 73: | Baris 71: | ||
|Jumlah core CPU yang ingin digunakan | |Jumlah core CPU yang ingin digunakan | ||
|- | |- | ||
| - | | --gres | ||
|Jumlah | |Jumlah GRES (generic resource) yang ingin digunakan. Misal untuk menggunakan GRES berupa GPU sejumlah 1 unit, parameternya adalah <code>--gres=gpu:1</code>. | ||
|- | |- | ||
| -p | | -p | ||
Baris 85: | Baris 83: | ||
Untuk mematikan SLURM interaktif, user cukup melakukan menekan interrupt (Ctrl + C) dua kali. | Untuk mematikan SLURM interaktif, user cukup melakukan menekan interrupt (Ctrl + C) dua kali. | ||
== '''Mengatur SSH Tunneling untuk Mengakses Antarmuka Web dari Jupyter Notebook''' == | == '''Mengatur SSH Tunneling untuk Mengakses Antarmuka Web dari Jupyter Notebook''' == | ||
Setelah berhasil menjalankan script SLURM dengan <code>srun</code>, terminal akan menampilkan informasi mengenai hostname compute node dan port yang menjalankan SLURM interaktif. | Setelah berhasil menjalankan script SLURM dengan <code>srun</code>, terminal akan menampilkan informasi mengenai hostname compute node dan port yang menjalankan SLURM interaktif. | ||
Baris 97: | Baris 94: | ||
Pada contoh di bawah, Source port diisi dengan <code>8888</code> dan Destination diisi dengan <code>epyc02:8888</code>. Klik <code>Add</code> untuk menambah port yang dilakukan forward melalui SSH. Terakhir, klik <code>Apply</code>. | Pada contoh di bawah, Source port diisi dengan <code>8888</code> dan Destination diisi dengan <code>epyc02:8888</code>. Klik <code>Add</code> untuk menambah port yang dilakukan forward melalui SSH. Terakhir, klik <code>Apply</code>. | ||
[[Berkas:PuTTY Tunnels.png|al=PuTTY Tunnels|nir|bingkai|PuTTY Tunnels]] | [[Berkas:PuTTY Tunnels.png|al=PuTTY Tunnels|nir|bingkai|PuTTY Tunnels]] | ||
== '''Mengakses Jupyter Notebook di Web Browser''' == | == '''Mengakses Jupyter Notebook di Web Browser''' == | ||
Apabila user sudah selesai melakukan pengaturan SSH tunneling, user dapat menggunakan URL yang tampil pada terminal. Pada contoh di atas, URL tersebut adalah <code><nowiki>http://127.0.0.1:8888/?token=37cc4e7a6c86e6aacb695b8800d6700d397bb945f889507c</nowiki></code>. | Apabila user sudah selesai melakukan pengaturan SSH tunneling, user dapat menggunakan URL yang tampil pada terminal. Pada contoh di atas, URL tersebut adalah <code><nowiki>http://127.0.0.1:8888/?token=37cc4e7a6c86e6aacb695b8800d6700d397bb945f889507c</nowiki></code>. |
Revisi per 27 Oktober 2021 09.17
Jupyter Notebook adalah salah satu komponen dari koleksi Jupyter sains data interaktif dan alat-alat komputasi saintifik. Ia biasa digunakan di komputer lokal dengan menggunakan instalasi Python (umumnya Anaconda) namun bisa juga memanfaatkan sumber daya memori maupun CPU yang tersebdia di compute node di HPC ALELEON Mk. II.
Laman ini bukan merupakan perkenalan Jupyter Notebook namun hanya menjelaskan mengenai bagaimana cara mempersiapkan environment Jupyter Notebook di HPC ALELEON Mk. II dan menjalankannya secara interaktif melalui scheduler SLURM.
Syarat: Login SSH Menggunakan PuTTY
User harus login menggunakan PuTTY karena Jupyter Notebook nantinya membutuhkan port forwarding untuk menyambungkan interface Jupyter Notebook ke perangkat user. Tutorial login SSH menggunakan PuTTY dapat dibaca di Panduan Pemula Login SSH#Melalui Software PuTTY.
Persiapan: Membuat Virtual Environment Menggunakan Anaconda
User harus mempersiapkan virtual environment Anaconda dan menjalankan Jupyter Notebook di dalam virtual environment tersebut.
Sebelum membuat virtual environment, user perlu melakukan load module Anaconda dengan perintah:
$ module load Anaconda3
Setelah itu user dapat mendefinisikan direktori virtual environment ke dalam variabel VE_DIR
:
$ export VE_DIR=/work/<user>/<dir>
Buat virtual environment dengan perintah conda create
:
$ conda create --prefix $VE_DIR
Mengaktifkan dan Menonaktifkan Virtual Environment
Sebelum mengaktifkan virtual environment, user perlu melakukan load module Anaconda:
$ module load Anaconda3
User dapat mengaktifkan virtual environment dengan perintah source activate
:
$ source activate $VE_DIR
Atau apabila user belum mendefinisikan VE_DIR
:
$ source activate /work/<user>/<dir>
Untuk menonaktifkan Virtual Environment, user dapat menggunakan perintah:
$ conda deactivate
Instalasi Jupyter Notebook
Sebelum menginstall Jupyter Notebook, pastikan virtual environment sudah aktif. Install Jupyter Notebook dengan perintah conda install
:
$ conda install jupyter
SLURM Interaktif untuk Jupyter Notebook
Untuk menjalankan SLURM interaktif, user perlu membuat SLURM script khusus untuk dijalankan menggunakan perintah srun
.
Script SLURM
#!/bin/bash # LOAD MODULE YANG DIBUTUHKAN, MISAL module load Anaconda3 cuda R module load Anaconda3 # TENTUKAN DIREKTORI VIRTUAL ENVIRONMENT DAN AKTIFKAN VIRTUAL ENVIRONMENT export VE_DIR=/work/<user>/<dir> source activate $VE_DIR # PENYESUAIAN BERBAGAI DIREKTORI UNTUK MENJALANKAN JUPYTER NOTEBOOK unset XDG_RUNTIME_DIR export JUPYTER_RUNTIME_DIR=$VE_DIR/workdir/runtime export JUPYTER_DATA_DIR=$VE_DIR/workdir/data export JUPYTER_CONFIG_DIR=$VE_DIR/workdir/config # MENGATUR INTERRUPT KE CTRL-T dari CTRL-C echo "done." echo "*** Setting Jupyter interrupt character to Ctrl-T instead of Ctrl-C" echo "*** to avoid conflicts with Slurm." stty intr ^T echo "" # MENULISKAN HOSTNAME KE TERMINAL echo "*** Starting Jupyter on: " $(hostname) which jupyter jupyter notebook --no-browser --ip='0.0.0.0' # earlier versions of Jupyter allowed '*' instead of '0.0.0.0'
Pastikan script SLURM dapat dijalankan dengan permission x
(execute). Menambahkan permission dapat dilakukan menggunakan perintah chmod seperti pada contoh di bawah:
$ chmod +x <nama_berkas_script_slurm>
Menjalankan SLURM Interaktif
User dapat menjalankan SLURM interaktif dengan script SLURM yang sudah dibuat dengan perintah srun
.
Contoh perintah srun
apabila user ingin menggunakan 4 core CPU di partisi epyc selama 1 jam:
$ srun -c 4 -p epyc -t 1:00:00 <nama_berkas_script_slurm>
Contoh perintah srun
apabila user ingin menggunakan 4 core CPU dan 1 GPU di partisi gpu_ampere selama 1 jam:
$ srun -c 4 --gres=gpu:1 -p gpu_ampere -t 1:00:00 <nama_berkas_script_slurm>
Parameter | Deskripsi |
---|---|
-c | Jumlah core CPU yang ingin digunakan |
--gres | Jumlah GRES (generic resource) yang ingin digunakan. Misal untuk menggunakan GRES berupa GPU sejumlah 1 unit, parameternya adalah --gres=gpu:1 .
|
-p | Partisi |
-t | Waktu maksimal untuk menjalankan SLURM interaktif. Format: hari-jam:menit:detik
|
Daftar parameter untuk perintah srun
lebih lanjut dapat dibaca di Slurm Workload Manager - srun (schedmd.com).
Untuk mematikan SLURM interaktif, user cukup melakukan menekan interrupt (Ctrl + C) dua kali.
Mengatur SSH Tunneling untuk Mengakses Antarmuka Web dari Jupyter Notebook
Setelah berhasil menjalankan script SLURM dengan srun
, terminal akan menampilkan informasi mengenai hostname compute node dan port yang menjalankan SLURM interaktif.
Gambar di atas menunjukkan bahwa hostname yang digunakan adalah epyc02
pada port 8888
. Selanjutnya user dapat melakukan pengaturan pada PuTTY.
Klik pada Change Settings...
, pilih Connection
> SSH
> Tunnels
.
Atur Source port
dengan sembarang port atau menggunakan port yang didapatkan dari terminal. Kemudian atur Destination
dengan hostname:port
menyesuaikan hostname dan port yang didapatkan dari terminal.
Pada contoh di bawah, Source port diisi dengan 8888
dan Destination diisi dengan epyc02:8888
. Klik Add
untuk menambah port yang dilakukan forward melalui SSH. Terakhir, klik Apply
.
Mengakses Jupyter Notebook di Web Browser
Apabila user sudah selesai melakukan pengaturan SSH tunneling, user dapat menggunakan URL yang tampil pada terminal. Pada contoh di atas, URL tersebut adalah http://127.0.0.1:8888/?token=37cc4e7a6c86e6aacb695b8800d6700d397bb945f889507c
.
Selanjutnya user akan memperoleh akses ke Jupyter Notebook melalui antarmuka di web browser yang digunakan.