CP2K

Dari ALELEON by EFISON

Revisi sejak 10 Oktober 2023 09.10 oleh WilsonLisan (bicara | kontrib) (→‎Terminal - SLURM sbatch: paraphrasing sbatch)

CP2K.png

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

Berikut adalah detail versi CP2K yang tersedia secara global di ALELEON Supercomputer:

Modul CP2K versi CPU
Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

9.1 cp2k/9.1-GCC10-MKL V V - - V
Modul CP2K dengan akselerasi GPU (Modul ini sedang dalam tahap pengujian)
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 di Compute Node

User dapat menjalankan komputasi dengan pilihan cara melalui tampilan terminal atau GUI web EFIRO.

Mengecek Kredit Core Hour bagi Akun Perseorangan

User dengan akun perseorangan disarankan untuk selalu mengecek sisa Kredit Core Hour sebelum melakukan job submission dengan menjalankan perintah pada terminal:

$ sausage

Bagi yang login ke web EFIRO, buka terminal pada menu Clusters > Aleleon Shell Access

Terminal - SLURM sbatch

Sbatch Terminal.png

Menjalankan komputasi pada terminal melalui job submission SLURM sbatch.

Langkah Menjalankan CP2K via SLURM sbatch
0 Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Login dengan SSH:
  • User OS Windows dan MacOS -> $ ssh <username>@aleleon.hpc
  • User OS Linux -> $ ssh <username>@10.192.50.10
1 Siapkan file yang dibutuhkan untuk menjalankan komputasi user.
2 Buat SLURM Submit Script yaitu 'formulir' untuk menjalankan job dengan panduan berikut:
  • Nama script dibebaskan dengan format file .sh (bash), contoh my_job_submission.sh
  • Buat script pada direktori yang sama dengan file komputasi yang akan dijalankan.
  • Ikuti panduan template berikut dan petunjuk pada NOTES di dalamnya.
Panduan nilai maks SBATCH untuk CP2K1
Parameter Fair policy usage2 Multi-node MPI3 High-mem node

epyc0014

Versi GPU5
ntasks (CPU) 128 384 128 9
mem (RAM) 128GB 240GB 500GB 64GB
time (time limit) 3-00:00:00 atau 72:00:00
gpus (GPU) 2 0 0 1
Note:
  1. Info SBATCH lebih detail lihat laman Submit Script ALELEON Supercomputer
  2. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.
  3. CP2K mendukung komputasi paralel MPI untuk berjalan multi-node lebih dari 128 core thread.
  4. User dapat menggunakan memori RAM hingga 500GB pada node epyc001 saja.
    • Tambahkan parameter #SBATCH --nodelist=epyc001
  5. Nilai maks versi GPU berdasarkan rekomendasi dokumentasi CP2K.
Template SLURM Submit Script CP2K versi CPU
#!/bin/bash

# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : CP2K (CPU)
# | Update script  r: 06/10/2023
# |
# | NOTES: 
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan CP2K di ALELEON lihat: 
# |    https://wiki.efisonlt.com/wiki/CP2K
# -------------------------------------------------------------

# --------------------------------------------------
# Alokasi komputasi, modul software, 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
#SBATCH --output=result-%j.txt

# Definisi file untuk menampung output error log    
#SBATCH --error=error-%j.txt 

# Nama input file CP2K dengan format file-nya
INPUT_FILE='////.inp'

# Memuat modul software CP2K versi CPU
# Daftar modul CP2K lihat subbab "Modul CP2K" pada
# https://wiki.efisonlt.com/wiki/CP2K 
module load cp2k////

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------

# Perintah menjalankan CP2K
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE 
Template SLURM Submit Script CP2K versi GPU
#!/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 bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan CP2K di ALELEON lihat: 
# |    https://wiki.efisonlt.com/wiki/CP2K
# -------------------------------------------------------------

# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------

#SBATCH --partition=ampere

# Alokasi jumlah core thread CPU 9 menurut dokumentasi CP2K
#SBATCH --ntasks=9 

# 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

# Definisi file untuk menampung output error log    
#SBATCH --error=error-%j.txt 

# Nama input file CP2K dengan format file-nya
INPUT_FILE='////.inp'

# Memuat modul software CP2K versi GPU
module load cp2k/9.1-GCC10-MKL-CUDA

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------

# Unset UCX supaya MPI berjalan di NVIDIA
unset UCX_TLS
unset UCX_NET_DEVICES

# Perintah menjalankan CP2K
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE
3 Jalankan job dengan perintah sbatch.
$ sbatch <nama-SLURM-Submit-script>

Contoh menjalankan nama script my_job_submission.sh.

$ sbatch my_job_submission.sh
4A User dapat melihat status jalannya job dengan perintah squeue berikut.
  • Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu.
$ squeue -ul $USER

Berikut adalah daftar STATE (ST) dari squeue yang menunjukkan status berjalannya job:

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 admin EFISON, alasan dikabarkan melalui email
S SUSPENDED Job ditahan oleh admin EFISON
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

Efirojobcomposer3.png

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.
Buka alamat web http://aleleon.ood kemudian masukkan username dan password user.
  • Bagi user Linux, buka alamat http://10.192.50.11
1 Buka menu dashboard EFIRO Jobs > Jobs Composer

2 Pilih New Jobs > From Template

3
Pilih template CP2K yang diinginkan. Isi atau ganti Job Name sesuai keinginan user, kemudian klik Create New Job.
Template CP2K 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 Jcjoboption3.png

Gunakan menu Edit Files 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 aplikasi FTP apabila user hendak mengupload file tunggal diatas 2GB.
5

Melalui Open Editor, lengkapi Submit Script dengan mengganti bagian yang di tandai 4 garis miring (////).

  • Jangan lupa klik Save setiap sekali mengubah script.
  • Template ini bersifat referensi, user dapat mengubah bagian yang sekiranya perlu diubah.
Panduan nilai maks SBATCH untuk CP2K1
Parameter Fair policy usage2 Multi-node MPI3 High-mem node

epyc0014

Versi GPU5
ntasks (CPU) 128 384 128 9
mem (RAM) 128GB 240GB 500GB 64GB
time (time limit) 3-00:00:00 atau 72:00:00
gpus (GPU) 2 0 0 1
Note:
  1. Info SBATCH lebih detail lihat laman Submit Script ALELEON Supercomputer
  2. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.
  3. CP2K mendukung komputasi paralel MPI untuk berjalan multi-node lebih dari 128 core thread.
  4. User dapat menggunakan memori RAM hingga 500GB pada node epyc001 saja.
    • Tambahkan parameter #SBATCH --nodelist=epyc001
  5. Nilai maks versi GPU berdasarkan rekomendasi dokumentasi CP2K.
6A Jalankan job dengan klik tombol Submit.

Berikut penjelasan kolom Status, pantau dengan refresh halaman 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, bisa karena di Stop atau Delete oleh user.
6B Untuk menghentikan job yang tengah berjalan, klik tombol Stop.

Stop.png

7A Hasil output job dapat dilihat pada kolom Folder Contents atau membuka halaman Edit Pages.
User dapat melihat semua file output yang keluar di kolom Folder Contents.
atau dengan membuka menu Edit Files.
7B User dapat menjalankan ulang ruang job yang sama dengan mengklik kembali tombol Submit.

Notifikasi Status Jalannya Komputasi via email

SLURM ALELEON Supercomputer dapat mengirim notifikasi email kepada user dengan nama "Jojo" untuk mengabarkan status berjalannya job komputasi user. 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

Keterangan:

  • 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.

Pelaporan Kendala dan Support

Apabila menjumpai masalah teknis dalam menjalankan komputasi COMCOT, silahkan lapor dengan klik gambar berikut ini.

Wiki-pelaporankendala.jpg

---

Bila terdapat pertanyaan lainnya, silahkan hubungi admin EFISON melalui email:

support@efisonlt.com