LAMMPS: Perbedaan antara revisi

Dari ALELEON by EFISON
(→‎Menjalankan LAMMPS: memisahkan CPU dan GPU plus update info GPU)
(paraphrasing)
Baris 52: Baris 52:
* Jumlah GPU yang didefinisikan pada file input harus sesuai dengan jumlah GPU pada SLURM Submit Script.
* Jumlah GPU yang didefinisikan pada file input harus sesuai dengan jumlah GPU pada SLURM Submit Script.


== '''Menjalankan LAMMPS (Versi CPU)''' ==
== '''Menjalankan LAMMPS pada CPU''' ==
User dapat menjalankan LAMMPS dengan pilihan:  
User dapat menjalankan LAMMPS dengan pilihan:  


Baris 77: Baris 77:
  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 118: Baris 118:
  module load lammps////
  module load lammps////
   
   
  # Nama input file LAMMPS
  # Nama input file LAMMPS dengan format file-nya
  INPUT_FILE='////'
  INPUT_FILE='////'
   
   
Baris 129: Baris 129:
|}
|}


== '''Menjalankan LAMMPS dengan Akselerasi GPU NVIDIA''' ==
== '''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:  
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 CPU per jumlah GPU.
* '''Menggunakan 2 atau 4 core CPU per jumlah GPU.'''
* Menggunakan threading OpenMP (OMP_NUM_THREAD) dengan jumlah 4.
* '''Menggunakan threading OpenMP (OMP_NUM_THREAD) dengan jumlah 4.'''


Berikutnya user dapat menjalankan LAMMPS dengan pilihan:
Berikutnya user dapat menjalankan LAMMPS dengan pilihan:
Baris 149: Baris 149:
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 baik versi CPU. Untuk nama modul software lihat tabel pada subbab "'''Modul LAMMPS"''' diatas.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Contoh SLURM Submit Script LAMMPS yang dapat berjalan di GPU
!Contoh SLURM Submit Script LAMMPS dengan akselerasi GPU
|-
|-
|
|
Baris 159: Baris 159:
  Software        : LAMMPS versi GPU
  Software        : LAMMPS versi GPU
  Versi          : tergantung input user
  Versi          : tergantung input user
  Update script   : 15/02/2023
  Update script c: 15/02/2023
   
   
  NOTES:  
  NOTES:  
Baris 210: Baris 210:
  module load lammps////
  module load lammps////
   
   
  # Nama input file LAMMPS
  # Nama input file LAMMPS dengan format file-nya
  INPUT_FILE='////'
  INPUT_FILE='////'
   
   

Revisi per 15 Februari 2023 08.06

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 Dukungan hardware
CPU GPU OMP Threading MPI multi-node
2023.02.08 lammps/2023.02.08-GCC12.2-FFTW3-CUDA12 V V V V
LAMMPS yang dapat berjalan di GPU
Versi Nama modul Dukungan hardware
CPU GPU OMP Threading MPI multi-node
2023.02.08 lammps/2023.02.08-GCC12.2-FFTW3-CUDA12 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 di GPU NVIDIA

ALELEON Supercomputer menyediakan LAMMPS yang dapat berjalan di GPU NVIDIA (versi 2023.02.08). User harus menyiapkan file input yang tepat supaya LAMMPS dapat berjalan di GPU NVIDIA.

  • Jumlah GPU yang didefinisikan pada file input harus sesuai dengan jumlah GPU pada SLURM Submit Script.

Menjalankan LAMMPS pada CPU

User dapat menjalankan LAMMPS dengan pilihan:

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 baik versi CPU. Untuk nama modul software lihat tabel pada subbab "Modul LAMMPS" diatas.

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   

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

# Nama input file LAMMPS dengan format file-nya
INPUT_FILE='////'

# -------------------------------------------------
# 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 CPU per jumlah GPU.
  • Menggunakan threading OpenMP (OMP_NUM_THREAD) dengan jumlah 4.

Berikutnya user dapat menjalankan LAMMPS dengan pilihan:

EFIRO Job Composer

Dengan pilihan template yang tersedia:

Nama Template Penjelasan
LAMMPS 2023.02.08 (GPU) Menjalankan LAMMPS versi 2023.02.08 dengan optimasi khusus untuk GPU

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.

Contoh SLURM Submit Script LAMMPS dengan akselerasi GPU
#!/bin/bash
  
echo <<README

Template SLURM Submit Script
Software        : LAMMPS versi 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 
   > OMP_NUM_THREAD=4
 
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 4 thread CPU per ntasks
#SBATCH --cpus-per-task=4

# 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   

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

# Nama input file LAMMPS dengan format file-nya
INPUT_FILE='////'

# -------------------------------------------------
# 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