NAMD: Perbedaan antara revisi

Dari ALELEON by EFISON
(major paraphrasing)
(Menyesuaikan tutorial NAMD dengan EFIRO)
Baris 1: Baris 1:
== '''Software NAMD''' ==
[[Berkas:NAMDsof.png|nirbing|600x600px]]
 
[https://www.ks.uiuc.edu/Research/namd/ '''NAMD'''] adalah framework dinamika molekular yang digunakan untuk komputasi biomolekuler skala besar di HPC. NAMD mendukung komputasi paralel.
[https://www.ks.uiuc.edu/Research/namd/ '''NAMD'''] adalah framework dinamika molekular yang digunakan untuk komputasi biomolekuler skala besar di HPC. NAMD mendukung komputasi paralel.


Baris 5: Baris 6:
{| class="wikitable sortable mw-collapsible"
{| class="wikitable sortable mw-collapsible"
!Versi
!Versi
!Nama Modul
!Dukungan MPI
!Dukungan MPI
!Dukungan Hardware
!Dukungan Hardware
![[Partisi Aleleon Mk.II|Partisi]]
|-
|-
|2.14
|2.14 (CPU)
|namd/2.14-GCC10-FFTW3F-UCX
|Pure MPI
|Pure MPI
|CPU, parallel multi-node
|CPU, multi-node
|epyc
|-
|-
|2.14
|2.14 (GPU)
|namd/2.14-GCC10-FFTW3F-CUDA11
| -
| -
|CPU - GPU, single-node
|CPU - GPU, single-node
|gpu_ampere
|}
|}
=='''Menjalankan NAMD'''==
User menjalankan NAMD pada '''Job Composer''' EFIRO yang dapat dibuka melalui menu Jobs > Jobs Composer
[[Berkas:Efirojobcomposermenu.png|nirbing|400x400px|pra=https://wiki.efisonlt.com/wiki/Berkas:Efirojobcomposermenu.png]]
===1. Memilih template NAMD===
*Klik '''New Jobs > From Template.'''
*Pilih template NAMD yang dibutuhkan.
* isi '''Job Name''' sesuai keinginan user kemudian klik '''Create New Job'''.
[[Berkas:Jcnewjobmarked.png|al=|nirbing|200x200px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcnewjobmarked.png]]
---
[[Berkas:Jcselecttemplate3.png|al=|nirbing|600x600px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcselecttemplate3.png]]
{| class="wikitable"
|+Template NAMD yang tersedia
! Nama Template
!Penjelasan
|-
|NAMD 2.14 (CPU)
| Template NAMD 2.14 versi CPU
|-
|NAMD 2.14 (GPU)
|Template NAMD 2.14 versi GPU
|}---
===2. Mempersiapkan file input config NAMD===
[[Berkas:Jcjoboption3.png|nirbing|600x600px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcjoboption3.png]]
*User dapat melakukan '''upload, editing, dan rename file input config''' NAMD melalui menu '''Edit Files.'''
*Taruh input file pada direktori yang sama dengan file '''slurm-namd.sh.'''
---
=== 3A. Melengkapi Submit Script Template ===
[[Berkas:Jceditor3.png|al=|nirbing|500x500px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jceditor3.png]]
* Melalui menu '''Open Editor''', user perlu melengkapi Submit Script supaya program NAMD dapat berjalan:
**Parameter SBATCH.
**Nama file input NAMD.
* Panduan umum lengkap dalam mengisi Submit Script dan parameter SBATCH:
[[Berkas:Wiki-14.jpg|1000x1000px|link=SLURM Script ALELEON Supercomputer |alt=SLURM Script ALELEON Supercomputer ]]
[[Berkas:Jcsaveedit.png|nirbing|450x450px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcsaveedit.png|al=]]


== '''Contoh SLURM Script''' ==
---
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.
=== 3B. Menjalankan NAMD versi CPU Multi-Node (>128 core thread CPU)===
NAMD versi CPU menggunakan MPI (Message Passing Interface) sehingga dapat berjalan multi-node atau lebih dari 128 core thread CPU. User dapat mempelajari teknis menjalankan MPI multi-node pada:
{| class="wikitable"
![[MPI ALELEON Supercomputer]]
|-
|
*[https://wiki.efisonlt.com/wiki/MPI_ALELEON_Supercomputer#MPI_Satu_Node_vs_Multi_Node '''MPI Satu Node vs Multi Node''']
|}---
===4. Menjalankan Job ===
Semua file untuk menjalankan program dan Submit Script sudah siap? Jalankan job dengan menekan tombol '''Submit'''.


=== '''NAMD (CPU) - Satu Node''' ===
[[Berkas:Jcsubmit2.png|al=|nirbing|600x600px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcsubmit2.png]]
Contoh berikut untuk menjalankan NAMD CPU pada satu node CPU.
*Perhatikan status jalannya job pada kolom '''Status.'''
#!/bin/bash
{| class="wikitable"
!Status
#SBATCH --ntasks=64              # Contoh menggunakan 64 core CPU
!Arti
#SBATCH --mem=128GB              # Contoh menggunakan RAM 128GB
|-
#SBATCH --time=10:00:00          # Contoh menetapkan walltime maks 10 jam
|Not Submitted
#SBATCH --output=result-%j.out    # Output terminal program
|Job belum pernah dijalankan.
#SBATCH --error=result-%j.err    # Output verbose program
|-
|Running
# Memuat modul NAMD CPU
|Job berjalan.
'''module load namd/2.14-GCC10-FFTW3F-UCX'''
|-
|Queue
# RUN COMMAND
|Job mengantri dan belum berjalan.
# mpirun wajib menggunakan flag protokol UCX
|-
|Completed
'''mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx namd2''' <file_input>
|Job selesai berjalan.
|-
| Failed
| Job berhenti di tengah jalan,
Bisa karena di Stop atau Delete oleh user.
|}
* User dapat memantau perubahan kolom Status dengan me-refresh halaman Job.
*Apabila user ingin menghentikan job yang sedang berjalan, klik tombol '''Stop''' yang berada di sebelah tombol Submit.
---
===5. Melihat hasil job yang selesai===
Apabila job sudah selesai (status Completed), user dapat melihat hasil output job melalui bagian '''Folder Contents''' atau membuka halaman '''Edit Pages.'''


=== '''NAMD (CPU) - Multi Node''' ===
[[Berkas:Jcfoldercontentsedit.png|al=|nirbing|399x399px|pra=https://wiki.efisonlt.com/wiki/Berkas:Jcfoldercontentsedit.png]]
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.
===6. Submit ulang job===
#!/bin/bash
User dapat '''menjalankan ulang ruang job yang sama''' (misalkan ketika ada koreksi file input atau Submit Script) dengan mengklik kembali tombol Submit.
'''# 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 [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 21 Februari 2022 05.26

NAMDsof.png

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

Versi yang Tersedia

Versi Dukungan MPI Dukungan Hardware
2.14 (CPU) Pure MPI CPU, multi-node
2.14 (GPU) - CPU - GPU, single-node

Menjalankan NAMD

User menjalankan NAMD pada Job Composer EFIRO yang dapat dibuka melalui menu Jobs > Jobs Composer

Efirojobcomposermenu.png

1. Memilih template NAMD

  • Klik New Jobs > From Template.
  • Pilih template NAMD yang dibutuhkan.
  • isi Job Name sesuai keinginan user kemudian klik Create New Job.

---

Template NAMD yang tersedia
Nama Template Penjelasan
NAMD 2.14 (CPU) Template NAMD 2.14 versi CPU
NAMD 2.14 (GPU) Template NAMD 2.14 versi GPU

---

2. Mempersiapkan file input config NAMD

Jcjoboption3.png

  • User dapat melakukan upload, editing, dan rename file input config NAMD melalui menu Edit Files.
  • Taruh input file pada direktori yang sama dengan file slurm-namd.sh.

---

3A. Melengkapi Submit Script Template

  • Melalui menu Open Editor, user perlu melengkapi Submit Script supaya program NAMD dapat berjalan:
    • Parameter SBATCH.
    • Nama file input NAMD.
  • Panduan umum lengkap dalam mengisi Submit Script dan parameter SBATCH:

SLURM Script ALELEON Supercomputer

---

3B. Menjalankan NAMD versi CPU Multi-Node (>128 core thread CPU)

NAMD versi CPU menggunakan MPI (Message Passing Interface) sehingga dapat berjalan multi-node atau lebih dari 128 core thread CPU. User dapat mempelajari teknis menjalankan MPI multi-node pada:

MPI ALELEON Supercomputer

---

4. Menjalankan Job

Semua file untuk menjalankan program dan Submit Script sudah siap? Jalankan job dengan menekan tombol Submit.

  • Perhatikan status jalannya job pada kolom Status.
Status Arti
Not Submitted Job belum pernah dijalankan.
Running Job berjalan.
Queue Job mengantri dan belum berjalan.
Completed Job selesai berjalan.
Failed Job berhenti di tengah jalan,

Bisa karena di Stop atau Delete oleh user.

  • User dapat memantau perubahan kolom Status dengan me-refresh halaman Job.
  • Apabila user ingin menghentikan job yang sedang berjalan, klik tombol Stop yang berada di sebelah tombol Submit.

---

5. Melihat hasil job yang selesai

Apabila job sudah selesai (status Completed), user dapat melihat hasil output job melalui bagian Folder Contents atau membuka halaman Edit Pages.

---

6. Submit ulang job

User dapat menjalankan ulang ruang job yang sama (misalkan ketika ada koreksi file input atau Submit Script) dengan mengklik kembali tombol Submit.