Quantum ESPRESSO

Dari ALELEON by EFISON

Quantum ogo ok.png

Quantum ESPRESSO adalah framework suite untuk kalkulasi electronic-structure dan modeling material berdasarkan density-functional theory (DFT), plane waves, dan pseudopotentials.

Modul Quantum ESPRESSO

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

Modul Quantum ESPRESSO
Versi Nama modul Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

6.7 qe/6.7-GCC10-MKL-LibM V - - V
6.8 qe/6.8-GCC10-MKL-LibM V - - V
7.1 qe/7.1-GCC11.3-AOCL4.0-ELPA2022.05-Libxc6.1.0 V - - V

Info Perubahan Menjalankan Quantum ESPRESSO

Terdapat perubahan sintaks MPI menjalankan Quantum ESPRESSO berdasarkan update Slurm ALELEON Supercomputer pada maintenance 7-12 Januari 2024 yaitu:

  • Menggunakan mpirun biasa untuk menjalankan QE satu node.
  • Menggunakan mpirun dengan sintaks UCX untuk menjalankan QE multi-node

Perubahan ini telah diupdate pada tutorial template SLURM Submit Script dan Template Job Composer untuk Quantum ESPRESSO dengan skema sintaks MPI berikut:

...

if [ $SLURM_NNODES -eq 1 ]
then
	echo "Terdeteksi running QE dengan 1 node"
	mpirun -np ${SLURM_NTASKS} pw.x -input ${INPUT_FILE}
elif [ $SLURM_NNODES -gt 1 ]
then
	echo "Terdeteksi running QE dengan ${SLURM_NNODES} node"
	mpirun -np ${SLURM_NTASKS} --mca pml ucx --mca osc ucx pw.x -input ${INPUT_FILE}
fi

Metode Menjalankan Komputasi

User dapat memilih metode menjalankan komputasi sesuai keinginan:

  • Job submission terminal
  • Job submission web EFIRO
    • Berjalan di compute node melalui manajemen Slurm via web EFIRO.

Job Submission Terminal

Langkah Job Submission Terminal

Sbatch Terminal.png

1
Login SSH ke ALELEON Supercomputer.
2
Siapkan file komputasi yang dibutuhkan.
3A
Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi.
  • Nama file bebas dengan format .sh, contoh submit.sh
Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
Template Quantum ESPRESSO
#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Quantum ESPRESSO | rev.080124
# 
# NOTES: 
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# -----------------------------------------------------

# -----------------------------------------------------
# Alokasi komputasi SBATCH, input, dan module
# -----------------------------------------------------

# 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 program
#SBATCH --output=result-%j.txt

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

# Nama input file Quantum ESPRESSO yang dijalankan
INPUT_FILE="////.in"

# Memuat modul software Quantum ESPRESSO
# Daftar modul lihat subbab "Modul Quantum ESPRESSO" di atas 
module load qe////

# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------

# Perintah menjakankan Quantum ESPERESSO
# Kondisi khusus dimana 1 node -> mpirun tanpa UCX
# 2 node -> mpirun dengan UCX

if [ $SLURM_NNODES -eq 1 ]
then
	echo "Terdeteksi running QE dengan 1 node"
	mpirun -np ${SLURM_NTASKS} pw.x -input ${INPUT_FILE}
elif [ $SLURM_NNODES -gt 1 ]
then
	echo "Terdeteksi running QE dengan 2 node"
	mpirun -np ${SLURM_NTASKS} --mca pml ucx --mca osc ucx pw.x -input ${INPUT_FILE}
fi
*Info script lebih detail lihat Submit Script ALELEON Supercomputer.
  • Untuk SBATCH notifikasi email status jalannya job lihat Slurm Jojo.
3B
SBATCH komputasi (ntasks, mem, time, dll) mempunyai limit berdasarkan:
  • Sisa Core Hour user dan Fair Usage Limit.
  • Spesifikasi sistem dan software komputasi.

Untuk melihat limit, jalankan perintah berikut:

$ slimit-mpi 
4
Jalankan job komputasi dengan perintah:
$ sbatch [nama-submit-script]

Contoh:
$ sbatch submit.sh
5
User dapat melihat status jalannya job dengan perintah:

$ squeue -ul $USER

Daftar ST (STATE) menunjukkan status jalannya job:
STATE Penjelasan
R (RUN) Job berjalan
PD (PENDING) Job tertahan, lihat NODELIST(REASON)
CG (COMPLETING) Job selesai dan dalam proses clean-up
CA (CANCELED) Job dibatalkan user
PR (PREEMPETED) Job dibatalkan admin, alasan dikabarkan via email
S (SUSPENDED) Job ditahan admin, alasan dikabarkan via email
Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
$ scancel [job-ID]

Job ID ada pada squeue diatas.
contoh membatalkan job ID 231:
$ scancel 231 

Job Submission Web EFIRO

Langkah Job Submission Terminal

Sbatch Terminal.png

1
Login SSH ke ALELEON Supercomputer.
2
Siapkan file komputasi yang dibutuhkan.
3A
Buat Submit Script yaitu 'formulir' untuk menjalankan job komputasi.
  • Nama file bebas dengan format .sh, contoh submit.sh
Contoh template Submit Script, ikuti petunjuk NOTES didalamnya.
Template Quantum ESPRESSO
#!/bin/bash

# -----------------------------------------------------
# Template SLURM Submit Script
# Quantum ESPRESSO | rev.080124
# 
# NOTES: 
# 1. Isi bagian yang ditandai 4 garing (////).
# 2. Template ini bersifat referensi.
#    User dapat mengubah bagian yang perlu diubah.
# -----------------------------------------------------

# -----------------------------------------------------
# Alokasi komputasi SBATCH, input, dan module
# -----------------------------------------------------

# 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 program
#SBATCH --output=result-%j.txt

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

# Nama input file Quantum ESPRESSO yang dijalankan
INPUT_FILE="////.in"

# Memuat modul software Quantum ESPRESSO
# Daftar modul lihat subbab "Modul Quantum ESPRESSO" di atas 
module load qe////

# ----------------------------------------------------
# Script jalannya program
# ----------------------------------------------------

# Perintah menjakankan Quantum ESPERESSO
# Kondisi khusus dimana 1 node -> mpirun tanpa UCX
# 2 node -> mpirun dengan UCX

if [ $SLURM_NNODES -eq 1 ]
then
	echo "Terdeteksi running QE dengan 1 node"
	mpirun -np ${SLURM_NTASKS} pw.x -input ${INPUT_FILE}
elif [ $SLURM_NNODES -gt 1 ]
then
	echo "Terdeteksi running QE dengan 2 node"
	mpirun -np ${SLURM_NTASKS} --mca pml ucx --mca osc ucx pw.x -input ${INPUT_FILE}
fi
*Info script lebih detail lihat Submit Script ALELEON Supercomputer.
  • Untuk SBATCH notifikasi email status jalannya job lihat Slurm Jojo.
3B
SBATCH komputasi (ntasks, mem, time, dll) mempunyai limit berdasarkan:
  • Sisa Core Hour user dan Fair Usage Limit.
  • Spesifikasi sistem dan software komputasi.

Untuk melihat limit, jalankan perintah berikut:

$ slimit-mpi 
4
Jalankan job komputasi dengan perintah:
$ sbatch [nama-submit-script]

Contoh:
$ sbatch submit.sh
5
User dapat melihat status jalannya job dengan perintah:

$ squeue -ul $USER

Daftar ST (STATE) menunjukkan status jalannya job:
STATE Penjelasan
R (RUN) Job berjalan
PD (PENDING) Job tertahan, lihat NODELIST(REASON)
CG (COMPLETING) Job selesai dan dalam proses clean-up
CA (CANCELED) Job dibatalkan user
PR (PREEMPETED) Job dibatalkan admin, alasan dikabarkan via email
S (SUSPENDED) Job ditahan admin, alasan dikabarkan via email
Apabila user ingin menghentikan job yang berjalan, jalankan perintah:
$ scancel [job-ID]

Job ID ada pada squeue diatas.
contoh membatalkan job ID 231:
$ scancel 231 

Pelaporan Kendala dan Support

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

Wiki-pelaporankendala.jpg

---

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

support@efisonlt.com