Namd
Opis programu
NAMD to pakiet oprogramowania do symulacji zachowania cząsteczek i układów cząsteczek złożonych z ogromnej liczby atomów. Powstał na amerykańskim Uniwersytecie Illinois i jest używany głównie w biologii molekularnej. Pozwala badać strukturę oraz zachowanie genów i białek; za pomocą NAMD zbudowano na przykład model kapsydu wirusa HIV – białkowej otoczki chroniącej kod genetyczny wirusa. Takie modele mogą posłużyć do opracowania leków niszczących niepożądane białka dzięki swojemu kształtowi, dopasowanemu do zastosowania.
NAMD wykorzystuje model programowania Charm++, dzięki czemu skaluje się nawet w zastosowaniach superkomputerowych.
Wersje
Na maszynach obliczeniowych dostępnych jest kilka wersji oraz podwersji oprogramowania NAMD.
2.12
- Linux-x86_64-multicore (64-bit Intel/AMD single node)
- Linux-x86_64 (64-bit Intel/AMD with ethernet)
- Linux-x86_64-TCP (TCP may be better on gigabit)
- Linux-x86_64-ibverbs (InfiniBand via OpenFabrics OFED, not for Omni-Path, no MPI needed)
- Linux-x86_64-ibverbs-smp (InfiniBand plus shared memory, no MPI needed)
- Linux-x86_64-multicore-CUDA (NVIDIA CUDA acceleration)
- Linux-x86_64-ibverbs-smp-CUDA (NVIDIA CUDA with InfiniBand)
- Linux-x86_64-netlrts (Multi-copy algorithms)
- Linux-x86_64-verbs (Multi-copy algorithms on InfiniBand)
- Linux-x86_64-verbs-smp (Multi-copy algorithms on InfiniBand)
- Linux-x86_64-verbs-smp-CUDA (Multi-copy algorithms on InfiniBand)
- Linux-KNL-multicore (Intel Xeon Phi KNL processor single node)
Moduły
W celu skorzystania z oprogramowania NAMD należy załadować odpowiedni moduł. Wyświetlenie listy dostępnych modułów jest możliwe po wydaniu w konsoli poniższego polecenia.
module avail namd
Więcej informacji na temat modułów znajduję się na stronie Ładowanie modułów.
Uruchamianie obliczeń
Linux-x86_64-ibverbs-smp
SLURM (eagle)
- Skrypt zlecający + przykładowe dane wejściowe -> slurm.namd.smtv.tar.gz
Skrypt zlecający:
#!/bin/bash #SBATCH --nodes 8 #SBATCH --tasks-per-node=28 #SBATCH --partition=fast #SBATCH --job-name=stmv-benchmark #SBATCH --mem-per-cpu=1GB #SBATCH --time=01:00:00 #SBATCH --error=job-%A-%a.err #SBATCH --output=job-%A-%a.out #SBATCH --exclusive # Load module module load namd/2.12-ibverbs-smp module load openmpi # Set personal variables #export INPUT_DIR="/home/admins/pbrona/benchmarks/namd/STMV_virus_benchmark/stmv" export INPUT_DIR="/home/admins/pbrona/benchmarks/namd/STMV_virus_benchmark" # Set ${TMPDIR} - shared storage export TMPDIR=$HOME/$SLURM_JOB_ACCOUNT/scratch/$USER/$SLURM_JOB_ID mkdir -p ${TMPDIR} NODELIST="${TMPDIR}/nodelist" ## Create nodelist echo "group main" >> ${TMPDIR}/nodelist for NODE in $(scontrol show hostname ${SLURM_JOB_NODELIST}); do echo "host ${NODE}" >> ${TMPDIR}/nodelist # ib #echo "host ${NODE}-ib" >> ${TMPDIR}/nodelist done # Copy data files #cp ${INPUT_DIR}/{stmv.*,*.inp} ${TMPDIR} #cd ${TMPDIR} cp -r ${INPUT_DIR}/stmv.tar.gz ${TMPDIR} cd ${TMPDIR} tar -zxvf stmv.tar.gz cd stmv # Run namd ${namd_root}/charmrun ++ppn ${SLURM_NTASKS_PER_NODE} ++verbose ++usehostname ++scalable-start ${namd_root}/namd2 +p ${SLURM_NTASKS} ++nodelist ${NODELIST} stmv.namd > stmv.out # Copy the results of calculations cp -r ${TMPDIR} ${SLURM_SUBMIT_DIR} rm -rf ${TMPDIR}