Menggunakan ALELEON Supercomputer via Terminal: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) |
WilsonLisan (bicara | kontrib) (paraphrasing) |
||
Baris 1: | Baris 1: | ||
Tutorial ini menjabarkan cara klasik menggunakan ALELEON Supercomputer via tampilan terminal. Perlu diperhatikan bahwa tutorial ini '''ditujukan untuk user yang dapat menggunakan terminal OS Linux.''' | Tutorial ini menjabarkan cara klasik menggunakan ALELEON Supercomputer via tampilan terminal. Perlu diperhatikan bahwa tutorial ini '''ditujukan untuk user yang dapat menggunakan terminal OS Linux.''' | ||
[[Berkas:Terminal.png| | |||
[[Berkas:Terminal.png|al=|nirbing|600x600px]] | |||
== '''Persetujuan Prefix''' == | == '''Persetujuan Prefix''' == | ||
Baris 15: | Baris 16: | ||
== '''3 - Selamat Datang di Login Node ALELEON Supercomputer''' == | == '''3 - Selamat Datang di Login Node ALELEON Supercomputer''' == | ||
[[Berkas:Login-node-compute-node-1.png|al=|nirbing|600x600px]] | |||
ALELEON Supercomputer mempunyai dua jenis node utama yaitu '''Login Node dan Compute Node'''. Setelah login SSH, user masuk ke '''Login Node''' yang menjadi '''front-end''' bagi user untuk berinteraksi dengan ALELEON Supercomputer. Pada Login Node, user dapat melakukan kegiatan seperti manajemen data, download / upload, compiling, menyiapkan job komputasi, dan menjalankan job komputasi (job submission) ke Compute Node. '''Compute Node''' berperan sebagai '''back-end''' untuk menjalankan job komputasi semua user. | ALELEON Supercomputer mempunyai dua jenis node utama yaitu '''Login Node dan Compute Node'''. Setelah login SSH, user masuk ke '''Login Node''' yang menjadi '''front-end''' bagi user untuk berinteraksi dengan ALELEON Supercomputer. Pada Login Node, user dapat melakukan kegiatan seperti manajemen data, download / upload, compiling, menyiapkan job komputasi, dan menjalankan job komputasi (job submission) ke Compute Node. '''Compute Node''' berperan sebagai '''back-end''' untuk menjalankan job komputasi semua user. | ||
Baris 20: | Baris 23: | ||
'''/work/<nama-user>''' | '''/work/<nama-user>''' | ||
'''Dimohon untuk tidak menjalankan komputasi berat di Login Node karena mempunyai spesifikasi performa yang terbatas dan akan mengganggu user lainnya'''. Admin EFISON berhak memberikan peringatan kepada user atau menghentikan job komputasi user yang memakan semua resources Login Node (contoh menjalankan framework komputasi di Login Node yang seharusnya dijalankan di Compute Node). | '''Dimohon untuk tidak menjalankan komputasi berat di Login Node karena mempunyai spesifikasi performa yang terbatas dan akan mengganggu user lainnya'''. Admin EFISON berhak memberikan peringatan kepada user atau menghentikan job komputasi user yang memakan semua resources Login Node (contoh menjalankan framework komputasi di Login Node yang seharusnya dijalankan di Compute Node). | ||
== '''4 - Menggunakan Software dengan Module Environment''' == | == '''4 - Menggunakan Software dengan Module Environment''' == | ||
Pada ALELEON Supercomputer, [[Module Environment|'''user dapat menggunakan software yang tersedia dengan Module Environment''']]. User dapat melihat info lengkap ketersediaan software ALELEON Supercomputer pada [[Katalog Software ALELEON Supercomputer|'''Katalog Software ALELEON Supercomputer''']]. | Pada ALELEON Supercomputer, [[Module Environment|'''user dapat menggunakan software yang tersedia dengan Module Environment''']]. User dapat melihat info lengkap ketersediaan software ALELEON Supercomputer pada [[Katalog Software ALELEON Supercomputer|'''Katalog Software ALELEON Supercomputer''']]. | ||
== '''5 - Menjalankan Komputasi | == '''5 - Menjalankan Komputasi di ALELEON Supercomputer''' == | ||
User dapat menjalankan komputasi di Compute Node melalui '''SLURM''', di mana adalah program manajemen untuk mengantarkan job komputasi user ke Compute Node serta mengatur antrian, load balancing, dan alokasi resources (CPU, RAM, GPU, dll). | |||
[[Berkas:Slurmm.png| | [[Berkas:Slurmm.png|al=|nirbing|600x600px]] | ||
---- | |||
=== | === Menggunakan SLURM === | ||
Berikut adalah perintah dasar bagi user untuk menggunakan SLURM: | Berikut adalah perintah dasar bagi user untuk menggunakan SLURM: | ||
$ '''sbatch''' <SLURM-script> | |||
* Menjalankan job komputasi user yang ditulis pada '''SLURM script''' ke Compute Node. | |||
* SLURM Script adalah bash script yang berisikan alokasi resources (CPU, GPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user. | |||
--- | |||
$ '''sbatch''' < | |||
$ '''squeue''' | $ '''squeue''' | ||
* | * Melihat status dan antrian semua komputasi yang dijalankan via SLURM. | ||
* | * Tambahan opsi flag: | ||
** '''-l''' : menampilkan squeue dengan info yang lebih lengkap. | |||
** '''-u $USER''' : menampilkan squeue untuk job user saja. | |||
--- | |||
$ '''scancel''' <job-ID> | $ '''scancel''' <job-ID> | ||
* Membatalkan job SLURM yang sedang berjalan berdasarkan nomor ID job. | |||
* User hanya bisa membatalkan job yang dijalankan user sendiri. | |||
---- | |||
---- | |||
=== Contoh Menggunakan SLURM === | === Contoh Menggunakan SLURM === | ||
Baris 71: | Baris 73: | ||
Job selesai bila sudah tidak terlihat di daftar squeue. Lihat apakah job menghasilkan output yang diinginkan atau tidak. | Job selesai bila sudah tidak terlihat di daftar squeue. Lihat apakah job menghasilkan output yang diinginkan atau tidak. | ||
$ ls | $ ls | ||
skripsi slurm-skripsi result-231.txt | skripsi slurm-skripsi result-231.txt revisiii.txt | ||
Apabila user ingin membatalkan program yang tengah berjalan via SLURM, gunakan perintah '''scancel''' job ID: | Apabila user ingin membatalkan program yang tengah berjalan via SLURM, gunakan perintah '''scancel''' job ID: | ||
$ '''scancel 231''' | $ '''scancel 231''' | ||
---- | |||
---- | |||
=== SLURM Script === | === SLURM Script === | ||
'''SLURM script adalah bash-script yang berisikan alokasi resources (CPU, RAM, GPU, walltime, output, dll) dan alur jalannya program'''. Terdapat 4 komponen penting pada SLURM script: | '''SLURM script adalah bash-script yang berisikan alokasi resources (CPU, RAM, GPU, walltime, output, dll) dan alur jalannya program'''. Terdapat 4 komponen penting pada SLURM script: | ||
[[Berkas:Contoh_SLURM_updated.png|al=|nirbing|600x600px]] | |||
# Header #!/bin/bash untuk bash script. | # Header #!/bin/bash untuk bash script. | ||
# Parameter alokasi resources CPU, memori, waktu, output, dll dengan '''SBATCH'''. | # Parameter alokasi resources CPU, memori, waktu, output, dll dengan '''SBATCH'''. |
Revisi per 15 Februari 2022 07.02
Tutorial ini menjabarkan cara klasik menggunakan ALELEON Supercomputer via tampilan terminal. Perlu diperhatikan bahwa tutorial ini ditujukan untuk user yang dapat menggunakan terminal OS Linux.
Persetujuan Prefix
Simbol $ menandakan perintah terminal, sedangkan tanda kurung <> menandakan parameter input yang ditulis oleh user. Contoh terdapat rumusan perintah:
$ sbatch <myscript>
dimana script yang dibuat user bernama "kerjaan-skripsi", maka eksekusi perintah menjadi:
$ sbatch kerjaan-skripsi
1 - Koneksi VPN ALELEON Supercomputer
Langkah pertama untuk mengakses ALELEON Supercomputer adalah menghubungkan perangkat user ke koneksi VPN ALELEON Supercomputer demi keamanan jaringan dan data user selama mengakses ALELEON Supercomputer.
2 - Login SSH
User mengakses ALELEON Supercomputer melalui Login SSH. ALELEON Supercomputer menyediakan berbagai opsi SSH dari SSH biasa hingga X11 dan tunneling untuk kebetuhan tertentu.
3 - Selamat Datang di Login Node ALELEON Supercomputer
ALELEON Supercomputer mempunyai dua jenis node utama yaitu Login Node dan Compute Node. Setelah login SSH, user masuk ke Login Node yang menjadi front-end bagi user untuk berinteraksi dengan ALELEON Supercomputer. Pada Login Node, user dapat melakukan kegiatan seperti manajemen data, download / upload, compiling, menyiapkan job komputasi, dan menjalankan job komputasi (job submission) ke Compute Node. Compute Node berperan sebagai back-end untuk menjalankan job komputasi semua user.
Prefix direktori HOME untuk user ALELEON Supercomputer adalah:
/work/<nama-user>
Dimohon untuk tidak menjalankan komputasi berat di Login Node karena mempunyai spesifikasi performa yang terbatas dan akan mengganggu user lainnya. Admin EFISON berhak memberikan peringatan kepada user atau menghentikan job komputasi user yang memakan semua resources Login Node (contoh menjalankan framework komputasi di Login Node yang seharusnya dijalankan di Compute Node).
4 - Menggunakan Software dengan Module Environment
Pada ALELEON Supercomputer, user dapat menggunakan software yang tersedia dengan Module Environment. User dapat melihat info lengkap ketersediaan software ALELEON Supercomputer pada Katalog Software ALELEON Supercomputer.
5 - Menjalankan Komputasi di ALELEON Supercomputer
User dapat menjalankan komputasi di Compute Node melalui SLURM, di mana adalah program manajemen untuk mengantarkan job komputasi user ke Compute Node serta mengatur antrian, load balancing, dan alokasi resources (CPU, RAM, GPU, dll).
Menggunakan SLURM
Berikut adalah perintah dasar bagi user untuk menggunakan SLURM:
$ sbatch <SLURM-script>
- Menjalankan job komputasi user yang ditulis pada SLURM script ke Compute Node.
- SLURM Script adalah bash script yang berisikan alokasi resources (CPU, GPU, RAM, walltime, output, dll) dan alur jalannya program komputasi user.
---
$ squeue
- Melihat status dan antrian semua komputasi yang dijalankan via SLURM.
- Tambahan opsi flag:
- -l : menampilkan squeue dengan info yang lebih lengkap.
- -u $USER : menampilkan squeue untuk job user saja.
---
$ scancel <job-ID>
- Membatalkan job SLURM yang sedang berjalan berdasarkan nomor ID job.
- User hanya bisa membatalkan job yang dijalankan user sendiri.
Contoh Menggunakan SLURM
User akan menjalankan program bernama 'skripsi' di Compute Node. User membuat SLURM script yang berisikan alokasi resources dan perintah untuk menjalankan program 'skripsi'.
- Ada baiknya SLURM script ditaruh pada satu direktori dengan program yang akan dijalankan.
- Penamaan SLURM script bisa bebas dimana pada contoh ini bernama 'slurm-skripsi'.
$ ls skripsi slurm-skripsi
Jalankan SLURM submission script tersebut dengan perintah sbatch. Perhatikan bahwa user akan mendapatkan nomor ID dari job tersebut.
$ sbatch slurm-skripsi Submitted batch job 231
User dapat melihat status jalannya job masing-masing dengan perintah squeue -u $USER. Keterangan dari kolom ST (STATUS) adalah R (RUNNING), menandakan program kerjaan-skripsi user sedang berjalan di Compute Node.
$ squeue -u $USER Mon Mar 22 10:43:22 2021 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 231 gpu_amper slurm-sc olala01 R 2:00 1 epyc01
Job selesai bila sudah tidak terlihat di daftar squeue. Lihat apakah job menghasilkan output yang diinginkan atau tidak.
$ ls skripsi slurm-skripsi result-231.txt revisiii.txt
Apabila user ingin membatalkan program yang tengah berjalan via SLURM, gunakan perintah scancel job ID:
$ scancel 231
SLURM Script
SLURM script adalah bash-script yang berisikan alokasi resources (CPU, RAM, GPU, walltime, output, dll) dan alur jalannya program. Terdapat 4 komponen penting pada SLURM script:
- Header #!/bin/bash untuk bash script.
- Parameter alokasi resources CPU, memori, waktu, output, dll dengan SBATCH.
- Pengaturan Module Environment untuk memuat software yang dibutuhkan.
- Alur perintah untuk menjalankan komputasi user.
|
Menentukan Resources Job dan Contoh SLURM Script
Salah satu seni dalam menggunakan superkomputer adalah user menentukan sendiri jumlah alokasi resources (CPU, GPU, RAM, walltime, dll) yang akan digunakan. Selain itu user juga menentukan sendiri opsi tambahan dalam menjalankan job seperti file output, notifikasi email, atau bahkan pengaturan kompleks seperti CPU binding, affinity, NUMA, dan masih banyak lagi. Pada manajemen SLURM, semua hal tersebut ditampung pada parameter SBATCH SLURM.
Maka dari itu untuk membuat pengaturan alokasi tersebut, user harus mengetahui resources hardware ALELEON Supercomputer, bagaimana cara mengalokasikannya dengan benar, dan mengetahui parameter SBATCH SLURM yang dapat digunakan. Alokasi resources yang tidak benar dapat membuat job berjalan lambat dan menghabiskan kredit Core Hour user. Sebagi tambahan, user dapat melihat contoh SLURM Script spesifik untuk software komputasi tertentu yang dapat ditemukan pada katalog software ALELEON Supercomputer.
|
Memonitor Jalannya Job dengan squeue
User dapat memantau status jalannya job atau melihat antrian job dengan perintah squeue.
Info yang esensial untuk user adalah bagian STATE dan NODELIST(REASON). STATE (ST) memberikan kondisi jalannya program user sementara itu NODELIST(REASON) memberikan detail verbose status jalannya program user.
STATE | Kepanjangan | Penjelasan |
---|---|---|
R | RUN | Job berjalan |
PD | PENDING | Job tertahan, lihat keterangan NODELIST |
CG | COMPLETING | Job selesai dan dalam proses clean-up SLURM |
CA | CANCELED | Job dibatalkan oleh user |
PR | PREEMPETED | Job dibatalkan oleh sys-admin Aleleon, alasan akan dikabarkan melalui email |
S | SUSPENDED | Job ditahan oleh sys-admin Aleleon |
Pada saat job berjalan (RUNNING) maka NODELIST akan menampilkan info nama node tempat job berjalan. Sementara itu NODELIST akan memberikan alasan verbose pada saat job tidak berjalan (STATE selain RUNNING). Berikut adalah daftar NODELIST yang bisa terjadi di HPC Aleleon Mk.II:
NODELIST | Penjelasan |
---|---|
Resources | Job menunggu alokasi resources (CPU, RAM, GPU) yang dipesan oleh SLURM submission script user |
AssocMaxWallDurationPerJobLimit | Job tidak dapat berjalan karena melewati batas walltime maksimum partisi |
QOSMaxCpuPerUserLimit | Job melewati batas alokasi CPU user (lihat laman QOS User untuk penjelasan lebih lanjut). |
User dapat lapor ke admin EFISON apabila menjumpai NODELIST yang tidak terdapat pada daftar diatas ketika job user tidak berjalan.