CP2K: Perbedaan antara revisi
WilsonLisan (bicara | kontrib) (→Modul CP2K: paraphrasing caption) |
WilsonLisan (bicara | kontrib) (reformat CP2K) |
||
Baris 29: | Baris 29: | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Modul CP2K dengan akselerasi GPU | |+Modul CP2K dengan akselerasi GPU (''Modul ini sedang dalam tahap pengujian)'' | ||
''Modul ini sedang dalam tahap pengujian'' | |||
! rowspan="2" |Versi | ! rowspan="2" |Versi | ||
! rowspan="2" |Nama modul | ! rowspan="2" |Nama modul | ||
Baris 53: | Baris 52: | ||
|} | |} | ||
== '''Menjalankan CP2K | == '''Menjalankan CP2K''' == | ||
User dapat menjalankan CP2K | User dapat menjalankan CP2K dengan pilihan cara menjalankan komputasi via terminal atau EFIRO: | ||
===[[ | ===Terminal - SLURM sbatch=== | ||
[[Berkas:Sbatch Terminal.png|nirbing|500x500px]] | |||
Menjalankan komputasi pada terminal melalui job submission SLURM sbatch. Tutorial ini mengasumsikan user dapat menggunakan terminal Linux. | |||
{| class="wikitable mw-collapsible mw-collapsed" | |||
! colspan="2" |Langkah Menjalankan CP2K via SLURM sbatch | |||
|- | |||
|'''0''' | |||
|Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke jaringan VPN ALELEON Supercomputer''']]. Apabila sudah terhubung, login dengan SSH: | |||
*User OS Windows dan MacOS -> <code>'''$ ssh <''username''>@aleleon.hpc'''</code> | |||
*User OS Linux -> <code>'''$ ssh <''username''>@10.192.50.10'''</code> | |||
|- | |||
|'''1''' | |||
|Siapkan file yang dibutuhkan untuk menjalankan komputasi user. | |||
*[[Upload File dengan Aplikasi FTP|'''User dapat melakukan upload / download file dengan bantuan aplikasi FTP''']] seperti FileZilla, WinSCP, dan lainnya. | |||
*Untuk kerapian data, disarankan untuk menaruh satu job pada satu folder tersendiri. | |||
|- | |||
|'''2''' | |||
|Buat '''SLURM Submit Script''' yaitu semacam formulir untuk menjalankan job dengan panduan berikut:*Nama script dibebaskan, contoh <code>slurmcp2k.sh</code> | |||
*Ikuti panduan template berikut dan petunjuk pada NOTES didalamnya. | |||
{| class="wikitable" | {| class="wikitable" | ||
| | ! colspan="3" |Panduan singkat mengisi SBATCH''<sup>1</sup>'' | ||
! | |- | ||
! | !Parameter | ||
!Nilai maks Fair policy usage''<sup>2</sup>'' | |||
!Nilai maks untuk CP2K | |||
|- | |||
| ntasks | |||
|128 | |||
|384<sup>3</sup> | |||
|- | |||
|mem | |||
|128GB | |||
|500GB''<sup>4</sup>'' | |||
|- | |||
|time | |||
| colspan="2" |3-00:00:00 atau 72:00:00 | |||
|- | |- | ||
| | |gpus | ||
| | |2 | ||
| | |1 (eksperimental) | ||
|}'''Note:''' | |||
#Info semua SBATCH lebih detail lihat laman [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']] | |||
{| class="wikitable mw-collapsible" | # Info limitasi fair policy usage lihat laman [[Limitasi Fair Usage ALELEON Supercomputer|'''Limitasi Fair Usage ALELEON Supercomputer''']] | ||
! | # CP2K mendukung komputasi paralel multi-node MPI. Untuk menjalankan CP2K lebih dari 128 core thread (1 node), lihat laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']]. | ||
#User dapat menggunakan memori RAM hingga 500GB pada node epyc001. Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code> | |||
{| class="wikitable mw-collapsible mw-collapsed" | |||
!Template SLURM Submit Script CP2K versi CPU | |||
|- | |- | ||
| | | | ||
#!/bin/bash | #!/bin/bash | ||
# | # ------------------------------------------------------------- | ||
# | Template SLURM Submit Script | # | Template SLURM Submit Script | ||
# | Software | # | Software : CP2K (CPU) | ||
# | Update script r: 06/10/2023 | |||
# | Update script | |||
# | | # | | ||
# | NOTES: | # | NOTES: | ||
# | 1. Isi bagian yang ditandai 4 garing (////). | # | 1. Isi bagian yang ditandai 4 garing (////). | ||
# | 2. Template ini adalah referensi | # | 2. Template ini adalah referensi. | ||
# | sekiranya perlu diubah. | # | User dapat mengubah bagian yang sekiranya perlu diubah. | ||
# | 3. Panduan | # | 3. Panduan menjalankan CP2K di ALELEON lihat: | ||
# | [[COMCOT|https://wiki.efisonlt.com/wiki/CP2K]] | |||
# | | # ------------------------------------------------------------- | ||
# | |||
# -------------------------------------------------- | # -------------------------------------------------- | ||
# Alokasi komputasi, modul software, dan file input | # Alokasi komputasi, modul software, dan file input | ||
# -------------------------------------------------- | # -------------------------------------------------- | ||
# Alokasi jumlah core thread CPU | # Alokasi jumlah core thread CPU | ||
Baris 102: | Baris 130: | ||
#SBATCH --mem=////GB | #SBATCH --mem=////GB | ||
# Alokasi limit waktu menjalankan job | # Alokasi limit waktu menjalankan job. | ||
# Format HH:MM:SS atau D-HH:MM:SS | |||
#SBATCH --time=//// | #SBATCH --time=//// | ||
Baris 109: | Baris 138: | ||
# Definisi file untuk menampung output error log | # Definisi file untuk menampung output error log | ||
#SBATCH --error=error-%j.txt | #SBATCH --error=error-%j.txt | ||
# Nama input file CP2K dengan format file-nya | # Nama input file CP2K dengan format file-nya | ||
Baris 115: | Baris 144: | ||
# Memuat modul software CP2K versi CPU | # Memuat modul software CP2K versi CPU | ||
# Daftar modul CP2K lihat subbab "Modul CP2K" pada wiki ini | |||
module load cp2k//// | module load cp2k//// | ||
# ------------------------------------------------- | # ------------------------------------------------- | ||
# RUN SCRIPT | # RUN SCRIPT | ||
# ------------------------------------------------- | # ------------------------------------------------- | ||
# Perintah menjalankan CP2K | # Perintah menjalankan CP2K | ||
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE | mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE | ||
|} | |} | ||
{| class="wikitable mw-collapsible mw-collapsed" | |||
|+ | |||
!Template SLURM Submit Script CP2K versi GPU | |||
{| class="wikitable mw-collapsible" | |||
!SLURM Submit Script | |||
|- | |- | ||
| | | | ||
#!/bin/bash | #!/bin/bash | ||
# ------------------------------------------------------------- | |||
# | Template SLURM Submit Script | |||
# | Software : CP2K (GPU) - EKSPERIMENTAL | |||
# | Update script r: 06/10/2023 | |||
# | | |||
# | NOTES: | |||
# | 1. Isi bagian yang ditandai 4 garing (////). | |||
# | 2. Template ini adalah referensi. | |||
# | User dapat mengubah bagian yang sekiranya perlu diubah. | |||
# | 3. Panduan menjalankan CP2K di ALELEON lihat: | |||
# | [[COMCOT|https://wiki.efisonlt.com/wiki/CP2K]] | |||
# ------------------------------------------------------------- | |||
# -------------------------------------------------- | |||
# Alokasi komputasi, modul software, dan file input | |||
# -------------------------------------------------- | |||
#SBATCH --partition=ampere | #SBATCH --partition=ampere | ||
#SBATCH -- | |||
#SBATCH -- | # Alokasi jumlah core thread CPU 9 menurut dokumentasi CP2K | ||
#SBATCH --mem= | #SBATCH --ntasks=9 | ||
#SBATCH --time= | |||
# Alokasi jumlah GPU 1 menurut dokumentasi CP2K | |||
#SBATCH --gpus=1 | |||
# 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 | |||
#SBATCH --output=result-%j.txt | #SBATCH --output=result-%j.txt | ||
# Definisi file untuk menampung output error log | |||
#SBATCH --error=error-%j.txt | #SBATCH --error=error-%j.txt | ||
Baris 163: | Baris 214: | ||
# Perintah menjalankan CP2K | # Perintah menjalankan CP2K | ||
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $ | mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FIL | ||
|} | |||
|- | |||
| '''3''' | |||
|Jalankan job dengan perintah sbatch. | |||
$ '''sbatch''' '''''<nama-SLURM-Submit-script>''''' | |||
Contoh menjalankan nama script <code>slurmcp2k.sh</code>. | |||
$ sbatch slurmcp2k.sh | |||
|- | |||
|'''4A''' | |||
|User dapat melihat status jalannya job dengan perintah squeue dengan flag -ul $USER. | |||
* Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu. | |||
$ '''squeue -ul $USER''' | |||
Berikut adalah daftar STATE atau ST dari squeue yang menunjukkan status berjalannya job: | |||
{| class="wikitable" | |||
|+Daftar STATE squeue SLURM | |||
!STATE | |||
! Kepanjangan | |||
!Penjelasan | |||
|- | |||
| R | |||
|RUN | |||
|Job berjalan | |||
|- | |||
| PD | |||
| PENDING | |||
|Job tertahan, lihat keterangan NODELIST(REASON) | |||
|- | |||
|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 dikabarkan melalui email | |||
|- | |||
|S | |||
|SUSPENDED | |||
|Job ditahan oleh sys-admin Aleleon | |||
|} | |||
|- | |||
|'''4B''' | |||
|Apabila user ingin membatalkan job, gunakan perintah scancel berdasarkan job ID. | |||
*Job ID dapat dilihat melalui perintah squeue pada kolom JOBID. | |||
* User hanya bisa membatalkan job submission milik user sendiri. | |||
$ '''scancel <''job-ID-submission-user''>''' | |||
Contoh user membatalkan job submission milik user dengan ID 231. | |||
$ scancel 231 | |||
|} | |||
===GUI Web - EFIRO Job Composer=== | |||
[[Berkas:Efirojobcomposer3.png|nirbing|500x500px]] | |||
Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer. | |||
{| class="wikitable mw-collapsible mw-collapsed" | |||
! colspan="2" | Langkah Menjalankan CP2K via EFIRO Job Composer | |||
|- | |||
|'''0''' | |||
|Sebelum login, [[Koneksi VPN ALELEON Supercomputer|'''user harus terhubung ke jaringan VPN ALELEON Supercomputer''']]. Apabila sudah terhubung: | |||
*Buka alamat web '''<code><nowiki>http://aleleon.ood</nowiki></code>''' kemudian masukkan username dan password user. | |||
**Bagi user Linux, buka alamat <code>'''<nowiki>http://10.192.50.11</nowiki>'''</code> | |||
|- | |||
|'''1''' | |||
|Buka menu dashboard EFIRO '''<code>Jobs</code> > <code>Jobs Composer</code>''' | |||
[[Berkas:Efirojobcomposermenu.png|nirbing|300x300px|al=]] | |||
|- | |||
|'''2''' | |||
|Pilih '''<code>New Jobs</code> > <code>From Template</code>''' | |||
[[Berkas:Jcnewjobmarked.png|al=|nirbing|180x180px]] | |||
|- | |||
|'''3''' | |||
|[[Berkas:Jcselecttemplate3.png|al=|nir|jmpl|Pilih template COMCOT yang dibutuhkan. Isi atau ganti <code>'''Job Name'''</code> sesuai keinginan user, kemudian klik <code>'''Create New Job'''</code>.|400x400px]] | |||
{| class="wikitable" | |||
! colspan="2" |Template COMCOT yang tersedia | |||
|- | |||
!Nama Template | |||
!Penjelasan | |||
|- | |||
|CP2K 9.1 (CPU) | |||
|Menjalankan CP2K versi 9.1 di CPU | |||
|- | |||
|CP2K 9.1 (GPU) Eksperimental | |||
|Menjalankan CP2K versi 9.1 di GPU. Dalam fase pengujian | |||
|} | |||
|- | |||
|'''4''' | |||
|[[Berkas:Jcjoboption3.png|nirbing|600x600px]] | |||
*Gunakan menu '''<code>Edit Files</code>''' untuk upload file yang dibutuhkan'''.''' | |||
**Laman Edit Files juga dapat melakukan view / download / edit / rename / delete file. | |||
**''Fitur upload pada laman Edit Files '''mempunyai batasan ukuran upload 2GB per file'''. Gunakan [[Upload File dengan Aplikasi FTP|'''aplikasi FTP''']] apabila user hendak mengupload file tunggal diatas 2GB.'' | |||
|- | |||
|'''5''' | |||
|[[Berkas:Jceditor3.png|al=|nirbing|300x300px]] | |||
Melalui '''<code>Open Editor</code>''', lengkapi Submit Script dengan mengganti bagian yang di tandai 4 garis miring (////). | |||
*''Jangan lupa klik <code>'''Save'''</code> setiap sekali mengubah script.'' | |||
{| class="wikitable" | |||
! colspan="3" |Panduan singkat mengisi SBATCH''<sup>1</sup>'' | |||
|- | |||
!Parameter | |||
!Nilai maks Fair policy usage''<sup>2</sup>'' | |||
!Nilai maks untuk CP2K | |||
|- | |||
| ntasks | |||
|128 | |||
|384<sup>3</sup> | |||
|- | |||
|mem | |||
|128GB | |||
|500GB''<sup>4</sup>'' | |||
|- | |||
|time | |||
| colspan="2" |3-00:00:00 atau 72:00:00 | |||
|- | |||
|gpus | |||
|2 | |||
|1 (eksperimental) | |||
|} | |||
'''Note:''' | |||
#Info semua SBATCH lebih detail lihat laman [[Submit Script ALELEON Supercomputer|'''Submit Script ALELEON Supercomputer''']] | |||
# Info limitasi fair policy usage lihat laman [[Limitasi Fair Usage ALELEON Supercomputer|'''Limitasi Fair Usage ALELEON Supercomputer''']] | |||
# CP2K mendukung komputasi paralel multi-node MPI. Untuk menjalankan CP2K lebih dari 128 core thread (1 node), lihat laman [[MPI ALELEON Supercomputer|'''MPI ALELEON Supercomputer''']]. | |||
#User dapat menggunakan memori RAM hingga 500GB pada node epyc001. Tambahkan parameter <code>'''#SBATCH --nodelist=epyc001'''</code> | |||
|- | |||
|'''6A''' | |||
|Jalankan job dengan klik tombol '''<code>Submit</code>'''. | |||
[[Berkas:Jcsubmit2.png|al=|nirbing|600x600px]] | |||
Berikut penjelasan kolom '''<code>Status</code>,''' pantau dengan refresh halaman job''':''' | |||
{| class="wikitable" | |||
!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, | |||
Bisa karena di Stop atau Delete oleh user. | |||
|} | |||
|- | |||
|'''6B''' | |||
|Untuk menghentikan job yang tengah berjalan, klik tombol '''Stop'''. | |||
[[Berkas:Stop.png|nirbing|600x600px]] | |||
|- | |||
|'''7A''' | |||
|Hasil output job dapat dilihat pada kolom '''<code>Folder Contents</code>''' atau membuka halaman '''<code>Edit Pages</code>.'''[[Berkas:Jcfoldercontentsedit.png|al=|nir|jmpl|User dapat melihat semua file output yang keluar di kolom '''<code>Folder Contents</code>'''.]][[Berkas:Jcjoboption3.png|nir|jmpl|atau dengan membuka menu '''<code>Edit Files</code>'''.]] | |||
|- | |||
|'''7B''' | |||
|User dapat '''menjalankan ulang ruang job yang sama''' (misalkan ketika ada koreksi file input atau Submit Script) dengan '''mengklik kembali tombol <code>Submit</code>'''. | |||
|} | |} | ||
=='''Notifikasi Status Jalannya Job Submission via email'''== | =='''Notifikasi Status Jalannya Job Submission via email'''== |
Revisi per 6 Oktober 2023 10.11
CP2K adalah package untuk quantum chemistry dan solid state physics yang dapat melakukan simulasi liquid, molekolar, periodik, material, kristal, dan sistem biologis. CP2K menggunakan pemodelan DFT dengan pendekatan Gaussian and plane waves GPW dan GAPW.
Modul CP2K
ALELEON Supercomputer menyediakan CP2K yang dapat berjalan di CPU dan dengan akselerasi GPU. Berikut adalah detail versi CP2K yang tersedia secara global di ALELEON Supercomputer:
Versi | Nama modul | Modul
DEFAULT |
Dukungan hardware | |||
---|---|---|---|---|---|---|
CPU | GPU | OMP
Threading |
MPI
multi-node | |||
9.1 | cp2k/9.1-GCC10-MKL | V | V | - | - | V |
Versi | Nama modul | Modul
DEFAULT |
Dukungan hardware | |||
---|---|---|---|---|---|---|
CPU | GPU | OMP
Threading |
MPI
multi-node | |||
9.1 | cp2k/9.1-GCC10-MKL-CUDA | V | V | V | - | V |
Menjalankan CP2K
User dapat menjalankan CP2K dengan pilihan cara menjalankan komputasi via terminal atau EFIRO:
Terminal - SLURM sbatch
Menjalankan komputasi pada terminal melalui job submission SLURM sbatch. Tutorial ini mengasumsikan user dapat menggunakan terminal Linux.
Langkah Menjalankan CP2K via SLURM sbatch | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer. Apabila sudah terhubung, login dengan SSH:
| ||||||||||||||||||||||
1 | Siapkan file yang dibutuhkan untuk menjalankan komputasi user.
| ||||||||||||||||||||||
2 | Buat SLURM Submit Script yaitu semacam formulir untuk menjalankan job dengan panduan berikut:*Nama script dibebaskan, contoh slurmcp2k.sh
| ||||||||||||||||||||||
3 | Jalankan job dengan perintah sbatch.
$ sbatch <nama-SLURM-Submit-script> Contoh menjalankan nama script $ sbatch slurmcp2k.sh | ||||||||||||||||||||||
4A | User dapat melihat status jalannya job dengan perintah squeue dengan flag -ul $USER.
$ squeue -ul $USER Berikut adalah daftar STATE atau ST dari squeue yang menunjukkan status berjalannya job:
| ||||||||||||||||||||||
4B | Apabila user ingin membatalkan job, gunakan perintah scancel berdasarkan job ID.
$ scancel <job-ID-submission-user> Contoh user membatalkan job submission milik user dengan ID 231. $ scancel 231 |
GUI Web - EFIRO Job Composer
Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer.
Langkah Menjalankan CP2K via EFIRO Job Composer | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer. Apabila sudah terhubung:
| ||||||||||||||||||
1 | Buka menu dashboard EFIRO Jobs > Jobs Composer
| ||||||||||||||||||
2 | Pilih New Jobs > From Template
| ||||||||||||||||||
3 |
| ||||||||||||||||||
4 | ![]()
| ||||||||||||||||||
5 | ![]() Melalui
Note:
| ||||||||||||||||||
6A | Jalankan job dengan klik tombol Submit .
Berikut penjelasan kolom
| ||||||||||||||||||
6B | Untuk menghentikan job yang tengah berjalan, klik tombol Stop. | ||||||||||||||||||
7A | Hasil output job dapat dilihat pada kolom Folder Contents atau membuka halaman Edit Pages .
| ||||||||||||||||||
7B | User dapat menjalankan ulang ruang job yang sama (misalkan ketika ada koreksi file input atau Submit Script) dengan mengklik kembali tombol Submit .
|
Notifikasi Status Jalannya Job Submission via email
SLURM ALELEON Supercomputer dapat mengirim notifikasi email kepada user untuk mengabarkan apabila job user sudah berjalan atau selesai. SLURM ALELEON Supercomputer menggunakan nama email Jojo untuk mengirim notifikasi email.
Silahkan tambahan SBATCH berikut pada SLURM Submit Script (dapat ditambahkan setelah SBATCH error) apabila user ingin menerima notifikasi email dari SLURM:
#SBATCH --mail-user=<alamat-email-user> #SBATCH --mail-type=begin #SBATCH --mail-type=end
- mail-user
- Alamat email user untuk menerima notifikasi SLURM
- mail-type=begin
- Notifikasi email yang menginfokan job sudah berjalan.
- mail-type=end
- Notifikasi email yang menginfokan job sudah selesai.
- Sekaligus memberikan cuplikan 20 baris terakhir dari file output SBATCH output dan error job user.