LAMMPS: Perbedaan antara revisi

Dari ALELEON by EFISON
(→‎Modul LAMMPS: formatting tabel baru)
(paraphrasing dan melengkapi template script)
Baris 57: Baris 57:
[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]
[[Berkas:Wiki-pelaporankendala.jpg|1000x1000px|link=https://efisonlt.com/aleleonbugreport]]
== '''Menjalankan LAMMPS pada CPU''' ==
== '''Menjalankan LAMMPS pada CPU''' ==
User dapat menjalankan LAMMPS dengan pilihan:  
User dapat menjalankan LAMMPS dengan pilihan ''(klik judul di bawah ini)'':  


===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#3_-_Menjalankan_Komputasi_ke_Compute_Node_via_Job_Composer EFIRO Job Composer]===
===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#3_-_Menjalankan_Komputasi_ke_Compute_Node_via_Job_Composer EFIRO Job Composer]===
Baris 69: Baris 69:
|}
|}
===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#4_-_Menjalankan_Komputasi_ke_Compute_Node_via_SLURM_sbatch SLURM sbatch via Terminal]===
===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#4_-_Menjalankan_Komputasi_ke_Compute_Node_via_SLURM_sbatch SLURM sbatch via Terminal]===
Berikut adalah contoh referensi Submit Script untuk menjalankan LAMMPS baik versi CPU. Untuk nama modul software lihat tabel pada subbab "'''Modul LAMMPS"''' diatas.
Berikut adalah contoh referensi Submit Script untuk menjalankan LAMMPS versi CPU. Perhatikan nama modul mengacu versi LAMMPS yang akan digunakan.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Contoh SLURM Submit Script LAMMPS versi CPU
!Contoh SLURM Submit Script LAMMPS versi CPU
Baris 75: Baris 75:
|
|
  #!/bin/bash
  #!/bin/bash
 
-----
  echo <<README
  echo <<README
   
   
Baris 81: Baris 81:
  Software        : LAMMPS versi CPU
  Software        : LAMMPS versi CPU
  Versi          : tergantung input user
  Versi          : tergantung input user
  Update script   : 14/02/2023
  Update script c: 14/02/2023
   
   
  NOTES:  
  NOTES:  
Baris 94: Baris 94:
  4. Daftar modul software LAMMPS lihat:
  4. Daftar modul software LAMMPS lihat:
     <nowiki>https://wiki.efisonlt.com/wiki/LAMMPS#Modul_LAMMPS</nowiki>  
     <nowiki>https://wiki.efisonlt.com/wiki/LAMMPS#Modul_LAMMPS</nowiki>  
 
-----
  README
  README
   
   
Baris 118: Baris 118:
  # Definisi file untuk menampung output error log     
  # Definisi file untuk menampung output error log     
  #SBATCH --error=error-%j.txt   
  #SBATCH --error=error-%j.txt   
# Nama input file LAMMPS dengan format file-nya
INPUT_FILE='////'
   
   
  # Memuat modul software LAMMPS versi CPU
  # Memuat modul software LAMMPS versi CPU
  module load lammps////
  module load lammps////
   
   
  # Nama input file LAMMPS dengan format file-nya
  echo <<DAFTARMODUL
  INPUT_FILE='////'
-----
Daftar nama modul LAMMPS CPU saat ini,
pilih modul LAMMPS yang akan digunakan:
 
  LAMMPS 2023.02.08 -> '''lammps/2023.02.08-GCC12.2-FFTW3-CUDA12'''
-----
DAFTARMODUL
   
   
  # -------------------------------------------------
  # -------------------------------------------------
Baris 140: Baris 149:
** Atau gunakan jumlah 4 untuk beban komputasi yang besar.
** Atau gunakan jumlah 4 untuk beban komputasi yang besar.


Berikutnya user dapat menjalankan LAMMPS dengan pilihan:
Berikutnya user dapat menjalankan LAMMPS dengan pilihan ''(klik judul di bawah ini)'':


===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#3_-_Menjalankan_Komputasi_ke_Compute_Node_via_Job_Composer EFIRO Job Composer]===
===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_EFIRO#3_-_Menjalankan_Komputasi_ke_Compute_Node_via_Job_Composer EFIRO Job Composer]===
Baris 152: Baris 161:
|}
|}
===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#4_-_Menjalankan_Komputasi_ke_Compute_Node_via_SLURM_sbatch SLURM sbatch via Terminal]===
===[https://wiki.efisonlt.com/wiki/Menggunakan_ALELEON_Supercomputer_via_Terminal#4_-_Menjalankan_Komputasi_ke_Compute_Node_via_SLURM_sbatch SLURM sbatch via Terminal]===
Berikut adalah contoh referensi Submit Script untuk menjalankan LAMMPS baik versi CPU. Untuk nama modul software lihat tabel pada subbab "'''Modul LAMMPS"''' diatas.
Berikut adalah contoh referensi Submit Script untuk menjalankan LAMMPS dengan akselerasi GPU. Perhatikan nama modul mengacu versi LAMMPS yang akan digunakan.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Contoh SLURM Submit Script LAMMPS dengan akselerasi GPU
!Contoh SLURM Submit Script LAMMPS dengan akselerasi GPU
Baris 160: Baris 169:
    
    
  echo <<README
  echo <<README
   
  -----
  Template SLURM Submit Script
  Template SLURM Submit Script
  Software        : LAMMPS dengan akselerasi GPU
  Software        : LAMMPS dengan akselerasi GPU
  Versi          : tergantung input user
  Versi          : tergantung input user
  Update script   : 15/02/2023
  Update script c: 15/02/2023
   
   
  NOTES:  
  NOTES:  
Baris 182: Baris 191:
     > cpus-per-task direkomendasikan 2, atau 4 untuk beban komputasi
     > cpus-per-task direkomendasikan 2, atau 4 untuk beban komputasi
       yang besar.
       yang besar.
 
-----
  README
  README
   
   
Baris 211: Baris 220:
   
   
  # Definisi file untuk menampung output error log     
  # Definisi file untuk menampung output error log     
  #SBATCH --error=error-%j.txt  
  #SBATCH --error=error-%j.txt
# Nama input file LAMMPS dengan format file-nya
INPUT_FILE='////'
   
   
  # Memuat modul software LAMMPS versi CPU
  # Memuat modul software LAMMPS versi CPU
  module load lammps////
  module load lammps////
   
   
  # Nama input file LAMMPS dengan format file-nya
  echo <<DAFTARMODUL
  INPUT_FILE='////'
-----
Daftar nama modul LAMMPS GPU saat ini,
pilih modul LAMMPS yang akan digunakan:
 
  LAMMPS 2023.02.08 -> '''lammps/2023.02.08-GCC12.2-FFTW3-CUDA12'''
-----
DAFTARMODUL
   
   
  # -------------------------------------------------
  # -------------------------------------------------

Revisi per 16 Februari 2023 09.40

Lammps-logo.png

LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) adalah framework molekular dinamik untuk pemodelan material (material modelling). LAMMPS adalah software open-source di bawah lisensi GPL v2.

Modul LAMMPS

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

LAMMPS versi CPU
Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

2023.02.08 lammps/2023.02.08-GCC12.2-FFTW3-CUDA12 V V V V V
LAMMPS yang dapat berjalan di GPU
Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

2023.02.08 lammps/2023.02.08-GCC12.2-FFTW3-CUDA12 V V V V V

Permintaan Instalasi Package LAMMPS

Apabila user menjumpai error package LAMMPS yang hilang (missing package), silahkan lapor ke admin lengkap dengan nama package yang dibutuhkan supaya dapat dilakukan proses instalasinya melalui:

Wiki-pelaporankendala.jpg

Menjalankan LAMMPS pada CPU

User dapat menjalankan LAMMPS dengan pilihan (klik judul di bawah ini):

EFIRO Job Composer

Dengan pilihan template yang tersedia:

Nama Template Penjelasan
LAMMPS 2023.02.08 (CPU) Menjalankan LAMMPS versi 2023.02.08 pada CPU saja

SLURM sbatch via Terminal

Berikut adalah contoh referensi Submit Script untuk menjalankan LAMMPS versi CPU. Perhatikan nama modul mengacu versi LAMMPS yang akan digunakan.

Contoh SLURM Submit Script LAMMPS versi CPU
#!/bin/bash
----- 
echo <<README

Template SLURM Submit Script
Software        : LAMMPS versi CPU
Versi           : tergantung input user
Update script  c: 14/02/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

4. Daftar modul software LAMMPS lihat:
   https://wiki.efisonlt.com/wiki/LAMMPS#Modul_LAMMPS 
-----
README

# --------------------------------------------------
# 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 LAMMPS dengan format file-nya
INPUT_FILE='////'

# Memuat modul software LAMMPS versi CPU
module load lammps////

echo <<DAFTARMODUL
-----
Daftar nama modul LAMMPS CPU saat ini,
pilih modul LAMMPS yang akan digunakan: 
 
LAMMPS 2023.02.08 -> lammps/2023.02.08-GCC12.2-FFTW3-CUDA12
-----
DAFTARMODUL

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------
 
# Perintah menjalankan LAMMPS
mpirun --mca pml ucx --mca osc ucx --np $SLURM_NTASKS lmp -in $INPUT_FILE

Menjalankan LAMMPS dengan Akselerasi GPU

Terdapat beberapa hal khusus dan rekomendasi yang harus diperhatikan ketika menjalankan LAMMPS dengan akselerasi GPU untuk menghasilkan performa optimal yaitu:

  • Menggunakan 2 atau 4 core thread CPU per jumlah GPU.
  • Menggunakan threading OpenMP (OMP; OMP_NUM_THREAD) dengan jumlah 2 untuk kebanyakan komputasi.
    • Atau gunakan jumlah 4 untuk beban komputasi yang besar.

Berikutnya user dapat menjalankan LAMMPS dengan pilihan (klik judul di bawah ini):

EFIRO Job Composer

Dengan pilihan template yang tersedia:

Nama Template Penjelasan
LAMMPS 2023.02.08 (GPU) Menjalankan LAMMPS versi 2023.02.08 dengan akselerasi GPU

SLURM sbatch via Terminal

Berikut adalah contoh referensi Submit Script untuk menjalankan LAMMPS dengan akselerasi GPU. Perhatikan nama modul mengacu versi LAMMPS yang akan digunakan.

Contoh SLURM Submit Script LAMMPS dengan akselerasi GPU
#!/bin/bash
  
echo <<README
-----
Template SLURM Submit Script
Software        : LAMMPS dengan akselerasi GPU
Versi           : tergantung input user
Update script  c: 15/02/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

4. Daftar modul software LAMMPS lihat:
   https://wiki.efisonlt.com/wiki/LAMMPS#Modul_LAMMPS 

5. Rekomendasi alokasi SBATCH optimal: 
   > ntasks antara 2 atau 4 per jumlah GPU.
   > cpus-per-task direkomendasikan 2, atau 4 untuk beban komputasi
     yang besar.
-----
README

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

# Partisi compute node GPU
#SBATCH --partition=ampere

# Alokasi jumlah GPU 
#SBATCH --gpus=////

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

# Rekomendasi 2 thread OMP secara umum
#SBATCH --cpus-per-task=2

# 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 LAMMPS dengan format file-nya
INPUT_FILE='////' 

# Memuat modul software LAMMPS versi CPU
module load lammps////

echo <<DAFTARMODUL
-----
Daftar nama modul LAMMPS GPU saat ini,
pilih modul LAMMPS yang akan digunakan: 
 
LAMMPS 2023.02.08 -> lammps/2023.02.08-GCC12.2-FFTW3-CUDA12
-----
DAFTARMODUL

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

# Export threading OMP 
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK 

# Perintah menjalankan LAMMPS
mpirun --mca pml ucx --mca osc ucx --np $SLURM_NTASKS lmp -sf gpu -pk gpu $SLURM_GPUS -in $INPUT_FILE