NAMD: Perbedaan antara revisi

Dari ALELEON by EFISON
k (Pembetulan)
(major paraphrasing)
Baris 6: Baris 6:
!Versi
!Versi
!Nama Modul
!Nama Modul
!Dukungan MPI
!Dukungan Hardware
!Dukungan Hardware
![[Partisi Aleleon Mk.II|Partisi]]
![[Partisi Aleleon Mk.II|Partisi]]
Baris 11: Baris 12:
|2.14
|2.14
|namd/2.14-GCC10-FFTW3F-UCX
|namd/2.14-GCC10-FFTW3F-UCX
|Pure MPI
|CPU, parallel multi-node
|CPU, parallel multi-node
|epyc
|epyc
Baris 16: Baris 18:
|2.14
|2.14
|namd/2.14-GCC10-FFTW3F-CUDA11
|namd/2.14-GCC10-FFTW3F-CUDA11
| -
|CPU - GPU, single-node
|CPU - GPU, single-node
|gpu_ampere
|gpu_ampere
|}
|}


== '''SLURM Submission Script''' ==
== '''Contoh SLURM Script''' ==
User harus menggunakan Scheduler SLURM untuk menjalankan komputasi NAMD di Compute Node.
User harus menggunakan [[Manajemen SLURM Aleleon|'''manajemen SLURM''']] untuk menjalankan komputasi NAMD di Compute Node. User dapat menjalankan NAMD versi CPU dengan satu node atau multi node (lebih dari satu node) untuk performa lebih kencang. User juga dapat menjalankan NAMD versi GPU pada partisi Compute Node GPU. Pastikan memuat modul NAMD yang tepat.


==== NAMD (CPU) ====
=== '''NAMD (CPU) - Satu Node'''  ===
User dapat menjalankan NAMD (CPU) dengan satu node atau paralel (lebih dari satu node) untuk performa lebih kencang.
Contoh berikut untuk menjalankan NAMD CPU pada satu node CPU.
 
===== Satu Node =====
Contoh menggunakan 64 core CPU dan RAM 128GB.
  #!/bin/bash
  #!/bin/bash
   
   
  #SBATCH --ntasks=64
  #SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
  #SBATCH --mem=128GB
  #SBATCH --mem=128GB              # Contoh menggunakan RAM 128GB
  #SBATCH --time=10:00:00
  #SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam
  #SBATCH --output=result-%j.out
  #SBATCH --output=result-%j.out   # Output terminal program
  #SBATCH --error=result-%j.err
  #SBATCH --error=result-%j.err     # Output verbose program
   
   
  # MODULE
  # Memuat modul NAMD CPU
  module load namd/2.14-GCC10-FFTW3F-UCX
  '''module load namd/2.14-GCC10-FFTW3F-UCX'''
   
   
  # RUN COMMAND
  # RUN COMMAND
  # mpirun wajib menggunakan flag protokol UCX
  # mpirun wajib menggunakan flag protokol UCX
  mpirun -np 64 --mca pml ucx --mca osc ucx namd2 <file_input>
   
'''mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx namd2''' <file_input>


===== Banyak Node =====
=== '''NAMD (CPU) - Multi Node''' ===
Contoh menggunakan 2 node, masing-masing 64 core CPU dan RAM 128GB.
Contoh menggunakan 2 node, masing-masing 64 core CPU dan RAM 128GB.
  #!/bin/bash
  #!/bin/bash
   
   
  #SBATCH --nodes=2
  #SBATCH --nodes=2                 # Contoh menggunakan 2 node ...
  #SBATCH --ntasks-per-node=64
  #SBATCH --ntasks-per-node=128    # dengan 128 core per node.
  #SBATCH --mem=128GB
                                  # Maka dari itu total menggunakan 256 core CPU
  #SBATCH --time=10:00:00
  #SBATCH --mem=128GB               # Contoh menggunakan RAM 128GB per node
  #SBATCH --output=result-%j.out
  #SBATCH --time=10:00:00           # Contoh menggunakan walltime maks 10 jam
  #SBATCH --error=result-%j.err
  #SBATCH --output=result-%j.out   # Output terminal program
  #SBATCH --error=result-%j.err     # Output verbose program
   
   
  # MODULE
  # Memuat modul NAMD CPU
  module load namd/2.14-GCC10-FFTW3F-UCX
  '''module load namd/2.14-GCC10-FFTW3F-UCX'''
   
   
  # RUN COMMAND
  # RUN COMMAND
  # mpirun wajib menggunakan flag protokol UCX
  # mpirun wajib menggunakan flag protokol UCX
  # Total proses MPI = ntasks per node X nodes
  # $SLURM_NTASKS menangkap total proses MPI (nodes * ntasks-per-node)
  mpirun -np 128 --mca pml ucx --mca osc ucx namd2 <file_input>
  '''mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx namd2''' <file_input>


==== NAMD (GPU) ====
=== '''NAMD (GPU)''' ===
User hanya dapat menjalankan NAMD (GPU) dengan satu node namun dengan banyak GPU untuk performa lebih kencang.
User hanya dapat menjalankan NAMD (GPU) dengan satu node namun dengan banyak GPU untuk performa lebih kencang.
  #!/bin/bash
  #!/bin/bash
   
   
  # Total GPU yang digunakan ada di argumen --gres=gpu:<jumlah_GPU>
  '''# Total GPU yang digunakan ada di argumen --gres=gpu:<jumlah_GPU>'''
  #SBATCH --partition=gpu_ampere
  #SBATCH --partition=gpu_ampere   # Menggunakan Compute Node GPU.
  #SBATCH --ntasks=64
  #SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
  #SBATCH --mem=64GB
  #SBATCH --mem=64GB                # Contoh menggunakan RAM 64GB
  #SBATCH --gres=gpu:2
  #SBATCH --gres=gpu:2             # Menggunakan 2 GPU
  #SBATCH --time=10:00:00
  #SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam.
  #SBATCH --output=result-%j.out
  #SBATCH --output=result-%j.out   # Output terminal program.
  #SBATCH --error=result-%j.err
  #SBATCH --error=result-%j.err     # Output verbose program.
   
   
  # MODULE
  # Memuat modul NAMD GPU
  module load namd/2.14-GCC10-FFTW3F-CUDA11
  '''module load namd/2.14-GCC10-FFTW3F-CUDA11'''
   
   
  # RUN COMMAND
  # RUN COMMAND menggunakan perintah charmrun
  # Total proses +p<proses> = ntasks per node X nodes
  # Total proses +p<proses> = ntasks  
  charmrun ++local +p64 namd2 <file_input>
   
'''charmrun ++local +p${SLURM_NTASKS} namd2''' <file_input>
==='''Pelajari Lebih Lanjut'''===
User dapat melihat laman [https://wiki.efisonlt.com/wiki/Contoh_SLURM_Script#SLURM_Script_untuk_Komputasi_Paralel_MPI '''SLURM Script untuk Komputasi Paralel MPI'''] dan [https://wiki.efisonlt.com/wiki/Contoh_SLURM_Script#SLURM_Script_untuk_Komputasi_GPU '''SLURM Script untuk Komputasi GPU'''] untuk memahami lebih lanjut tentang berbagai contoh SLURM script diatas,

Revisi per 15 September 2021 11.08

Software NAMD

NAMD adalah framework dinamika molekular yang digunakan untuk komputasi biomolekuler skala besar di HPC. NAMD mendukung komputasi paralel.

Versi yang Tersedia

Versi Nama Modul Dukungan MPI Dukungan Hardware Partisi
2.14 namd/2.14-GCC10-FFTW3F-UCX Pure MPI CPU, parallel multi-node epyc
2.14 namd/2.14-GCC10-FFTW3F-CUDA11 - CPU - GPU, single-node gpu_ampere

Contoh SLURM Script

User harus menggunakan manajemen SLURM untuk menjalankan komputasi NAMD di Compute Node. User dapat menjalankan NAMD versi CPU dengan satu node atau multi node (lebih dari satu node) untuk performa lebih kencang. User juga dapat menjalankan NAMD versi GPU pada partisi Compute Node GPU. Pastikan memuat modul NAMD yang tepat.

NAMD (CPU) - Satu Node

Contoh berikut untuk menjalankan NAMD CPU pada satu node CPU.

#!/bin/bash

#SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
#SBATCH --mem=128GB               # Contoh menggunakan RAM 128GB
#SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err     # Output verbose program

# Memuat modul NAMD CPU
module load namd/2.14-GCC10-FFTW3F-UCX

# RUN COMMAND
# mpirun wajib menggunakan flag protokol UCX

mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx namd2 <file_input>

NAMD (CPU) - Multi Node

Contoh menggunakan 2 node, masing-masing 64 core CPU dan RAM 128GB.

#!/bin/bash

#SBATCH --nodes=2                 # Contoh menggunakan 2 node ...
#SBATCH --ntasks-per-node=128     # dengan 128 core per node.
                                  # Maka dari itu total menggunakan 256 core CPU
#SBATCH --mem=128GB               # Contoh menggunakan RAM 128GB per node
#SBATCH --time=10:00:00           # Contoh menggunakan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err     # Output verbose program

# Memuat modul NAMD CPU
module load namd/2.14-GCC10-FFTW3F-UCX

# RUN COMMAND
# mpirun wajib menggunakan flag protokol UCX
# $SLURM_NTASKS menangkap total proses MPI (nodes * ntasks-per-node)

mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx namd2 <file_input>

NAMD (GPU)

User hanya dapat menjalankan NAMD (GPU) dengan satu node namun dengan banyak GPU untuk performa lebih kencang.

#!/bin/bash

# Total GPU yang digunakan ada di argumen --gres=gpu:<jumlah_GPU>
#SBATCH --partition=gpu_ampere    # Menggunakan Compute Node GPU.
#SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
#SBATCH --mem=64GB                # Contoh menggunakan RAM 64GB
#SBATCH --gres=gpu:2              # Menggunakan 2 GPU
#SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam.
#SBATCH --output=result-%j.out    # Output terminal program.
#SBATCH --error=result-%j.err     # Output verbose program.

# Memuat modul NAMD GPU
module load namd/2.14-GCC10-FFTW3F-CUDA11

# RUN COMMAND menggunakan perintah charmrun
# Total proses +p<proses> = ntasks 

charmrun ++local +p${SLURM_NTASKS} namd2 <file_input>

Pelajari Lebih Lanjut

User dapat melihat laman SLURM Script untuk Komputasi Paralel MPI dan SLURM Script untuk Komputasi GPU untuk memahami lebih lanjut tentang berbagai contoh SLURM script diatas,