CP2K: Perbedaan antara revisi

Dari ALELEON by EFISON
(menyelesaikan template CP2K)
 
(overhaul halaman CP2K)
Baris 3: Baris 3:
[https://www.cp2k.org/ '''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.
[https://www.cp2k.org/ '''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.


=='''Versi yang Tersedia'''==
== '''Modul CP2K''' ==
Terdapat dua versi CP2K di ALELEON Supercomputer yaitu yang berjalan pada CPU (default) dan dengan '''akselerasi GPU''' '''''(saat ini dalam status pengujian)'''''. Berikut adalah detail versi CP2K yang tersedia secara global di ALELEON Supercomputer:
{| class="wikitable"
{| class="wikitable"
!Versi
|+CP2K versi CPU
!Dukungan MPI
! rowspan="2" |Versi
!Dukungan Hardware
! rowspan="2" |Nama modul
! rowspan="2" |Modul
DEFAULT
! colspan="4" |Dukungan hardware
|-
|-
|9.1 (CPU)
!CPU
|Pure MPI
!GPU
|CPU, multi-node
!OMP
Threading
!MPI
multi-node
|-
|9.1
|cp2k/9.1-GCC10-MKL
|V
|V
| -
| -
|V
|}
|}
=='''Menjalankan CP2K di Job Composer'''==
{| class="wikitable"
{| class="wikitable"
|'''1'''
|+CP2K dengan akselerasi GPU ''(status pengujian)''
|Buka menu dashboard EFIRO '''<code>Jobs</code> > <code>Jobs Composer</code>'''
! rowspan="2" |Versi
[[Berkas:Efirojobcomposermenu.png|nirbing|300x300px|al=|pra=https://wiki.efisonlt.com/wiki/Berkas:Efirojobcomposermenu.png]]
! rowspan="2" |Nama modul
! rowspan="2" |Modul
DEFAULT
! colspan="4" |Dukungan hardware
|-
|-
|'''2'''
!CPU
|Pilih '''<code>New Jobs</code> > <code>From Template</code>'''
!GPU
[[Berkas:Jcnewjobmarked.png|al=|nirbing|180x180px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcnewjobmarked.png]]
!OMP
Threading
!MPI
multi-node
|-
|-
|'''3'''
|9.1
|
|cp2k/9.1-GCC10-MKL-CUDA
==='''Memilih Template CP2K'''===
|V
[[Berkas:Jcselecttemplate3.png|al=|nir|jmpl|Pilih template NWChem yang dibutuhkan. Isi atau ganti <code>'''Job Name'''</code> sesuai keinginan user, kemudian klik <code>'''Create New Job'''</code>.|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcselecttemplate3.png]]
|V
| -
| -
|V
|}
 
== '''Menjalankan CP2K pada CPU''' ==
User dapat menjalankan CP2K dengan pilihan cara menjalankan komputasi:
 
===[[Menggunakan ALELEON Supercomputer via EFIRO#3A - Menjalankan Komputasi ke Compute Node via Job Composer|EFIRO Job Composer]]===
Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer. Berikut adalah pilihan template CP2K versi CPU yang tersedia:
{| class="wikitable"
{| class="wikitable"
|+Template NWChem
|+Template Job Composer CP2K versi CPU
!Nama Template
!Nama Template
!Penjelasan
! Penjelasan  
|-
|-
|CP2K 9.1 (CPU)
|CP2K 9.1 (CPU)
|Menjalankan NWChem 9.1 versi CPU
|Menjalankan CP2K versi 9.1
|}
|}
===[[Menggunakan ALELEON Supercomputer via Terminal#3 - Menjalankan Komputasi ke Compute Node via SLURM|SLURM sbatch via Terminal]]===
Menjalankan komputasi pada terminal melalui job submission SLURM sbatch. Berikut adalah contoh referensi Submit Script untuk menjalankan CP2K pada CPU. Perhatikan nama modul mengacu versi CP2K yang akan digunakan.
{| class="wikitable mw-collapsible"
!Contoh SLURM Submit Script CP2K versi CPU
|-
|-
| rowspan="2" |'''4'''
|
|
==='''Mempersiapkan File untuk Menjalankan Job'''===
#!/bin/bash
[[Berkas:Jcjoboption3.png|nirbing|600x600px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcjoboption3.png]]
*Gunakan menu '''<code>Edit Files</code>''' untuk upload file yang dibutuhkan'''.'''
# ------------------------------------------------------------------------
**Laman Edit Files juga dapat melakukan view / download / edit / rename / delete file.
# | Template SLURM Submit Script
|-
# | Software       : CP2K
|''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.''
# | Versi           : tergantung input user
|-
# | Update script   : 17/04/2023
|'''5A'''
# |
|
# | NOTES:  
==='''Melengkapi Submit Script Template'''===
# | 1. Isi bagian yang ditandai 4 garing (////).
[[Berkas:Jceditor3.png|al=|nirbing|300x300px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jceditor3.png]]
# | 2. Template ini adalah referensi - user dapat mengubah bagian yang
# |   sekiranya perlu diubah.
# | 3. Panduan mengisi alokasi komputasi (SBATCH) menurut spesifikasi
# |   ALELEON Supercomputer lihat:
# |    <nowiki>https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer</nowiki>
# ------------------------------------------------------------------------
# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------
# Alokasi jumlah compute node
#SBATCH --nodes=////
# Alokasi jumlah core thread CPU
#SBATCH --ntasks=////
# Alokasi jumlah memori RAM (satuan GB)
#SBATCH --mem=////GB
# Alokasi limit waktu menjalankan job
#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
module load cp2k////
# DAFTAR MODUL CP2K:  
# ---------------------------------------
# | Nama modul            | Versi CP2K |  
# ---------------------------------------
# | cp2k/9.1-GCC10-MKL    | 9.1        |
# ---------------------------------------
# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
 
# Perintah menjalankan CP2K
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE
|}


Melalui '''<code>Open Editor</code>''', lengkapi Submit Script dengan mengganti bagian yang di tandai 4 garis miring (////).
== '''Menjalankan CP2K dengan Akselerasi GPU''' ==
*'''''Jangan lupa klik <code>Save</code> setiap sekali mengubah script.'''''
''Saat ini CP2K versi akselerasi GPU sedang dalam tahap pengujian dengan referensi SLURM Submit Script yang digunakan oleh tim admin:''  
|-
{| class="wikitable mw-collapsible"
| rowspan="2" |'''5B'''
!SLURM Submit Script tim admin untuk menguji CP2K versi GPU
|
==='''Panduan lengkap mengisi Submit Script:'''===
[[Berkas:Wiki-14edit.jpg|al=SLURM Script ALELEON Supercomputer|1000x1000px |link=Submit Script ALELEON Supercomputer ]]
|-
|-
|
|
==='''Fitur MPI pada CP2K'''===
#!/bin/bash
CP2K menggunakan MPI (Message Passing Interface) sehingga memberi kebebasan user untuk:
*[https://wiki.efisonlt.com/wiki/MPI_ALELEON_Supercomputer#MPI_Satu_Node_vs_Multi_Node '''MPI Satu Node vs Multi Node''']
#SBATCH --partition=ampere
**User dapat menjalankan NWChem hanya dengan 1 node (maksimal 128 core thread CPU)
#SBATCH --gres=gpu:1
**Atau menggunakan '''multi-node''' alias '''lebih dari 128 core thread CPU'''.
#SBATCH --ntasks=9 #jumlah ideal menurut dokumentasi CP2K
|-
#SBATCH --mem=64GB
| rowspan="3" |'''6'''
#SBATCH --time=24:00:00
|
#SBATCH --output=result-%j.txt
==='''Menjalankan Job'''===
#SBATCH --error=error-%j.txt
Jalankan job dengan klik tombol '''<code>Submit</code>'''.
 
# Nama input file CP2K dengan format file-nya
[[Berkas:Jcsubmit2.png|al=|nirbing|600x600px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcsubmit2.png]]
INPUT_FILE='////.inp'
|-
|Berikut penjelasan kolom '''<code>Status</code>,''' pantau dengan refresh halaman job''':'''
# Memuat modul software CP2K versi GPU
{| class="wikitable"
module load cp2k/9.1-GCC10-MKL-CUDA
!Status
!Arti
# -------------------------------------------------
|-
# RUN SCRIPT
|Not Submitted
# -------------------------------------------------
|Job belum pernah dijalankan.
|-
# Unset UCX supaya MPI berjalan di NVIDIA
|Running
unset UCX_TLS
|Job berjalan.
unset UCX_NET_DEVICES
|-
|Queue
# Perintah menjalankan CP2K
|Job mengantri dan belum berjalan.
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE
|-
|Completed
|Job selesai berjalan.
|-
|Failed
|Job berhenti di tengah jalan,
Bisa karena di Stop atau Delete oleh user.
|}
|}
|-
=='''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.
===Stop atau Cancel Job===
Untuk menghentikan job yang tengah berjalan, klik tombol '''Stop'''.


[[Berkas:Stop.png|nirbing|600x600px|pra=https://wiki.efisonlt.com/wiki/Berkas:Stop.png]]
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''>
|'''7A'''
#SBATCH --mail-type=begin
|
#SBATCH --mail-type=end
==='''Melihat hasil job yang selesai'''===
*'''mail-user'''
Hasil output job dapat dilihat pada kolom '''<code>Folder Contents</code>''' atau membuka halaman '''<code>Edit Pages</code>.'''[[Berkas:Jcfoldercontentsedit.png|pra=https://wiki.efisonlt.com/wiki/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>'''.|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcjoboption3.png]]
**Alamat email user untuk menerima notifikasi SLURM
|-
*'''mail-type=begin'''
|'''7B'''
**Notifikasi email yang menginfokan job sudah berjalan.
|
*'''mail-type=end'''
==='''Submit Ulang Job'''===
**Notifikasi email yang menginfokan job sudah selesai.
User dapat '''menjalankan ulang ruang job yang sama''' (misalkan ketika ada koreksi file input atau Submit Script) dengan '''mengklik kembali tombol <code>Submit</code>'''.|}
**Sekaligus memberikan cuplikan 20 baris terakhir dari file output SBATCH output dan error job user.
|}

Revisi per 17 April 2023 10.08

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

Terdapat dua versi CP2K di ALELEON Supercomputer yaitu yang berjalan pada CPU (default) dan dengan akselerasi GPU (saat ini dalam status pengujian). Berikut adalah detail versi CP2K yang tersedia secara global di ALELEON Supercomputer:

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
CP2K dengan akselerasi GPU (status 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

Menjalankan CP2K pada CPU

User dapat menjalankan CP2K dengan pilihan cara menjalankan komputasi:

EFIRO Job Composer

Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer. Berikut adalah pilihan template CP2K versi CPU yang tersedia:

Template Job Composer CP2K versi CPU
Nama Template Penjelasan
CP2K 9.1 (CPU) Menjalankan CP2K versi 9.1

SLURM sbatch via Terminal

Menjalankan komputasi pada terminal melalui job submission SLURM sbatch. Berikut adalah contoh referensi Submit Script untuk menjalankan CP2K pada CPU. Perhatikan nama modul mengacu versi CP2K yang akan digunakan.

Contoh SLURM Submit Script CP2K versi CPU
#!/bin/bash

# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : CP2K
# | Versi           : tergantung input user
# | Update script   : 17/04/2023
# |
# | NOTES: 
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini adalah referensi - user dapat mengubah bagian yang 
# |    sekiranya perlu diubah.
# | 3. Panduan mengisi alokasi komputasi (SBATCH) menurut spesifikasi 
# |    ALELEON Supercomputer lihat: 
# |    https://wiki.efisonlt.com/wiki/Submit_Script_ALELEON_Supercomputer
# ------------------------------------------------------------------------

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

# Alokasi jumlah compute node
#SBATCH --nodes=////

# Alokasi jumlah core thread CPU
#SBATCH --ntasks=////

# Alokasi jumlah memori RAM (satuan GB)
#SBATCH --mem=////GB

# Alokasi limit waktu menjalankan job 
#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
module load cp2k////

# DAFTAR MODUL CP2K: 
# ---------------------------------------
# | Nama modul             | Versi CP2K | 
# ---------------------------------------
# | cp2k/9.1-GCC10-MKL     | 9.1        |
# ---------------------------------------

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
 
# Perintah menjalankan CP2K
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx cp2k.zen2 $INPUT_FILE

Menjalankan CP2K dengan Akselerasi GPU

Saat ini CP2K versi akselerasi GPU sedang dalam tahap pengujian dengan referensi SLURM Submit Script yang digunakan oleh tim admin:

SLURM Submit Script tim admin untuk menguji CP2K versi GPU
#!/bin/bash

#SBATCH --partition=ampere
#SBATCH --gres=gpu:1
#SBATCH --ntasks=9 #jumlah ideal menurut dokumentasi CP2K
#SBATCH --mem=64GB
#SBATCH --time=24:00:00
#SBATCH --output=result-%j.txt
#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

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.