DFTB+: Perbedaan antara revisi

Dari ALELEON by EFISON
(swap urutan file input dan SK)
(→‎SLURM sbatch via Terminal: menghapus parameter UCX pada mpirun)
Baris 151: Baris 151:
   
   
  # Perintah menjakankan DFTB+
  # Perintah menjakankan DFTB+
  mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx dftb+
  mpirun -np $SLURM_NTASKS dftb+
|}
|}
=='''Notifikasi Status Jalannya Job Submission via email'''==
=='''Notifikasi Status Jalannya Job Submission via email'''==

Revisi per 11 April 2023 15.59

DFTB logo.png

DFTB+ adalah software package yang versatil untuk simulasi mechanical quantum. DFTB+ merupakan software tidak berbayar dengan lisensi GNU Lesser General Public License.

Modul DFTB+

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

Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

22.2 dftbplus/22.2-GCC11.3-AOCL4.0 V V - V V

File Input DFTB+

Perlu diperhatikan bahwa user harus membuat file input DFTB+ dengan nama dan format dftb_in.hsd dan file input ini harus ditaruh pada satu direktori dengan SLURM Submit Script.

Slater-Koster Files

File input dftb_in.hsd membutuhkan file Slater-Koster (SK) pada bagian Hamiltonian. User dapat mengunduh file SK dari web resmi DFTB+ pada tautan berikut:

Pastikan file input user pada bagian Hamiltonian menunjuk direktori file SK yang tepat sesuai direktori tempat user menyimpan file SK tersebut.

Pure MPI atau Hybrid MPI/OMP pada DFTB+ versi CPU

DFTB+ secara default berjalan dengan paralelisasi OpenMP (OMP). Sementara itu DFTB+ pada ALELEON Supercomputer dicompile dengan MPI sehingga dapat berjalan dengan paralelisasi hybrid MPI/OMP. Tim admin menyerahkan keputusan kepada user untuk memilih antara menjalankan DFTB+ dengan metode pure MPI atau hybrid MPI/OMP.

User dapat memilih metode Pure MPI atau Hybrid MPI/OMP pada SLURM Submit Script untuk menjalankan DFTB+ versi CPU:

  • SBATCH ntasks mewakili jumlah task MPI sedangkan SBATCH cpus-per-task mewakili jumlah thread OMP.
#SBATCH --ntasks -> mewakili jumlah task MPI
#SBATCH --cpus-per-task -> mewakili jumlah thread OpenMP
  • Apabila ingin Pure MPI maka isi jumlah SBATCH cpus-per-task dengan 1.
# Pure MPI 
#SBATCH --ntasks=<isi-sesuai-keinginan>
#SBATCH --cpus-per-task=1
  • Apabila ingin Hybrid MPI/OMP maka isi kedua parameter tersebut. Perlu diingat bahwa total core CPU yang digunakan adalah ntasks * cpus-per-task. Contoh berikut menggunakan 2 proses MPI dan 4 thread OMP per MPI sehingga total menggunakan 8 core CPU:
# Hybrid MPI/OMP, contoh dengan 2 proses MPI dan 4 thread OMP per MPI.
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=4
  • Apabila ingin Pure OMP maka isi jumlah ntasks dengan 1.
# Pure OMP 
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=<isi-sesuai-keinginan>

Menjalankan DFTB+

User dapat menjalankan DFTB+ dengan pilihan cara menjalankan komputasi:

EFIRO Job Composer

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

Nama Template Penjelasan
DFTB+ 22.2 (CPU) Menjalankan DFTB+ 22.2 versi CPU

Setelah membuat ruang job, user dapat mengupload atau membuat file input dftb_in.hsd melalui menu Edit Files (lihat langkah tutorial Job Composer no 4).

SLURM sbatch via Terminal

Menjalankan komputasi pada terminal melalui job submission SLURM sbatch dengan ketentuan:

  • User wajib menaruh file input DFTB+ dftb_in.hsd pada satu direktori dengan SLURM Submit Script yang akan dibuat.
  • Berikut adalah contoh referensi Submit Script untuk menjalankan DFTB+:
Contoh SLURM Submit Script DFTB+
#!/bin/bash

# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : DFTB+
# | Versi           : tergantung input user
# | Update script  r: 11/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. mewakili jumlah task MPI
#SBATCH --ntasks=////

# Alokasi jumlah thread OMP per task MPI
#SBATCH --cpus-per-task=////

# 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 

# Memuat modul software DFTB+, pilih nama modul pada tabel dibawah ini
module load dftbplus////

# DAFTAR MODUL DFTB+: 
# -----------------------------------------------------
# | Nama modul                          | Versi DFTB+ |
# -----------------------------------------------------
# | dftbplus/22.2-GCC11.3-AOCL4.0       | 22.2 (CPU)  |
# -----------------------------------------------------

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

# Definisi threading OMP 
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

# Perintah menjakankan DFTB+
mpirun -np $SLURM_NTASKS dftb+

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.