OpenMX

Dari ALELEON by EFISON

Revisi sejak 17 April 2023 10.41 oleh WilsonLisan (bicara | kontrib) (paraphrasing caption)

OpenMX Logo.png

OpenMX adalah software package untuk simulasi material skala nano berdasarkan DFT (Density Functional Theories), norm-conserving pseudopotensials, dan pseudo-atomic localized basis functinons. OpenMX merupakan software tidak berbayar dengan lisensi GNU GPLv3.

Modul OpenMX

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

Modul OpenMX
Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

3.9.9 openmx/3.9.9-GCC11.3-AOCL4.0 V V - V V

DATA.PATH pada File Input

User wajib mendefinisikan DATA.PATH berikut pada file input supaya OpenMX dapat berjalan:

DATA.PATH        /comp/openmx/3.9.9-GCC11.3-AOCL4.0/DFT_DATA19

Pilihan MPI atau Threading OpenMP

OpenMX dapat berjalan melalui metode paralelisasi MPI, threading OpenMP (OMP), atau Hybrid MPI/OMP. ALELEON Supercomputer menyerahkan keputusan kepada user untuk memilih metode paralelisasi tersebut melalui konfigurasi pada SLURM Submit Script:

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

User dapat menjalankan OpenMX dengan pilihan cara menjalankan komputasi:

EFIRO Job Composer

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

Template Job Composer OpenMX
Nama Template Penjelasan
OpenMX 3.9.9 Menjalankan OpenMX 3.9.9

SLURM sbatch via Terminal

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

Contoh SLURM Submit Script OpenMX
#!/bin/bash

# ------------------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : OpenMX
# | Versi           : tergantung input user
# | Update script  r: 15/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 

# Nama input file OpenMX dengan format file-nya
INPUT_FILE='////.dat'

# Memuat modul software OpenMX, pilih nama modul pada tabel dibawah ini
module load openmx////

# DAFTAR MODUL OpenMX: 
# -----------------------------------------------------
# | Nama modul                         | Versi OpenMX |
# -----------------------------------------------------
# | openmx/3.9.9-GCC11.3-AOCL4.0       | 3.9.9        |
# -----------------------------------------------------

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

# Definisi threading OMP 
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

# Perintah menjakankan OpenMX
mpirun -np $SLURM_NTASKS openmx $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.