====== Amber MD ====== From Ambermd.org: > Amber is a suite of biomolecular simulation programs. It began in the late 1970's, and is maintained by an active development community; see our history page and our contributors page for more information. > > The term "Amber" refers to two things. First, it is a set of molecular mechanical force fields for the simulation of biomolecules; these force fields are in the public domain, and are used in a variety of simulation programs. Second, it is a package of molecular simulation programs which includes source code and demos. > > Amber is distributed in two parts: //AmberTools// and //Amber//. * For more information: https://ambermd.org/index.php This software page is a work in progress - it is not yet available for use. ---- ===== Running Amber MD on Comet ===== ==== Amber - Serial ==== ==== Amber - Parallel / MPI ==== ==== Amber - CUDA ==== ==== Amber - Interactive Desktop GUI ==== ==== Amber Configuration ==== If you require configuration details, Amber was built with the following options: -- 3rd Party Libraries -- ---building bundled: ----------------------------------------------------- -- netcdf - for creating trajectory data files -- netcdf-fortran - for creating trajectory data files from Fortran -- kmmd - Machine-learning molecular dynamics -- ---using installed: ------------------------------------------------------ -- blas - for fundamental linear algebra calculations -- lapack - for fundamental linear algebra calculations -- zlib - for various compression and decompression tasks -- libbz2 - for various compression and decompression tasks -- libm - for fundamental math routines if they are not contained in the C library -- ---disabled: ------------------------------------------------ -- libtorch - for fundamental math routines if they are not contained in the C library -- Features: -- MPI: ON -- MVAPICH2-GDR for GPU-GPU comm.: OFF -- OpenMP: ON -- CUDA: ON -- NCCL: OFF -- Build Shared Libraries: ON -- Build GUI Interfaces: ON -- Build Python Programs: ON -- -Python Interpreter: /usr/bin/python3 (version 3.12) -- Build Perl Programs: ON -- Build configuration: RELEASE -- Target Processor: x86_64 -- Build Documentation: ON -- Sander Variants: normal LES API LES-API MPI LES-MPI QUICK-MPI QUICK-CUDA -- Install location: /opt/pmemd24/ -- Installation of Tests: ON -- Compilers: -- C: GNU 13.3.0 (/usr/bin/gcc) -- CXX: GNU 13.3.0 (/usr/bin/g++) -- Fortran: GNU 13.3.0 (/usr/bin/gfortran) -- Building Tools: -- emil etc gpu_utils kmmd lib pmemd In addition, all ''CFLAGS'' variables are set per the ''amber.def'' container definition, below. These are, per our standards for images which have GCC 14 included: ''CFLAGS=-O3 -march=znver5 -pipe''. ---- ===== Building Amber MD on Comet ===== **Important!** This section is intended for RSE HPC staff, or users who are interested in how the software is configured. If you //only// need to //use// the software, stop reading here. Amber appears to have few dependencies at first, but as you configure the source it looks for a __lot__ of additional libraries. At least the following build tools are required: * GCC * Nvidia CUDA SDK * flex * bison * m4 * python3 * build-essential * autoconf * cmake * git It, or its dependencies, then also need these further system libraries and tools, which makes it quite a complex install: * bc, libopenmpi-dev, python3, flex, bison, m4, jq, liblapack-dev, libblas-dev, libarpack2-dev, libucpp-dev, libnlopt-dev, libz-dev, libbz2-dev, libfftw3-mpi-dev, libfftw3-dev, libprotobuf-dev, xorg-dev, libxext-dev, libxt-dev, libx11-dev, libice-dev, libsm-dev, libgomp1, libgmp10-dev, libgsl-dev, libboost-dev, libboost-iostreams-dev, libboost-regex-dev, libboost-timer-dev, libboost-chrono-dev, libboost-filesystem-dev, libboost-graph-dev, libboost-program-options-dev, libpnetcdf-dev, libnetcdf-dev, libnetcdff-dev, libreadline-dev, libchemistry-mol-perl, bash-completion, libmpfr-dev, libeigen3-dev, swig, libumfpack6 It also then uses these third party packages which are //not// available as part of any OS install, and so must be downloaded, built or installed through more manual means (untar, configure, make, make install): ^ Package ^ Link ^ Wanted By ^ Type ^ Status ^ Notes ^ | MBX | https://github.com/paesanilab/MBX | Ambertools | Optional | Installed | Takes more time to compile than every other step of the container build added together. We warn //against// parallel builds (i.e. ''make -j2'' or higher) as each build task can grow to 20GBytes in size and quickly lead to out-of-memory errors on your build/compile host. | | PLUMED | https://github.com/plumed/plumed2 | Ambertools | Optional | Installed | | | XBLAS | http://www.netlib.org/xblas | Ambertools | Optional | Installed | | | Torchani | https://github.com/aiqm/torchani | Ambertools | Optional | Installed | | | tng_io | https://gitlab.com/gromacs/tng/ | Ambertools | Optional | Installed | | | apbs | https://github.com/Electrostatics/apbs | Ambertools | Optional | Installed | | | umfpack | https://github.com/DrTimothyAldenDavis/SuiteSparse | Ambertools | Optional | Installed | | | LIO | https://github.com/MALBECC/lio | Ambertools | Optional | - | LIO will not compile against CUDA SDK 12 and was //not// included in the build of Amber | | Intel MKL | | Ambertools | Optional | - | Not used on Comet due to AMD Epyc CPU architecture. | | PUPIL | https://pupil.sourceforge.net/ | Ambertools | Optional | - | Not installed - an //optional// user interface for Ambertools. | | libtorch | https://docs.pytorch.org/cppdocs/installing.html | Ambertools | Optional | Installed | Binary only //libtorch// components of PyTorch. | | MVAPICH2-GDR | | Amber, Ambertools | Optional | - | Used for GPU-GPU communication. Not installed on Comet. | | NCCL | https://github.com/NVIDIA/nccl | Amber, Ambertools | Optional | - | Used for efficient GPU communications such as in IB connected multiple GPU cards and/or NVLink. Not installed on Comet or L40S cards. | **Build script:** Note that you must download the files ''ambertools25.tar.bz2'' and ''pmemd24.tar.bz2'' from https://ambermd.org/GetAmber.php - these are behind a download form - and they should be placed in the same directory as the build script. #!/bin/bash echo "Loading modules..." module load apptainer echo "" echo "Building container..." export APPTAINER_TMPDIR=/scratch # You must supply a copy of AMBERMD tar files # in this SOURCE_DIR SOURCE_DIR=`pwd` AM24="pmemd24.tar.bz2" AM25="ambertools25.tar.bz2" echo "" echo "Checking source files..." if [ -s "$SOURCE_DIR/$AM24" ] then echo "- Found - $SOURCE_DIR/$AM24" else echo "- WARNING - $SOURCE_DIR/$AM24 is MISSING" echo "" echo "Press return to continue or Control+C to exit and fix" read fi if [ -s "$SOURCE_DIR/$AM25" ] then echo "- Found - $SOURCE_DIR/$AM25" else echo "- WARNING - $SOURCE_DIR/$AM25 is MISSING" echo "" echo "Press return to continue or Control+C to exit and fix" read fi apptainer build --bind $SOURCE_DIR:/mnt ambermd.24.25.sif ambermd.def 2>&1 | tee ambermd.log **Container Definition:** Bootstrap: docker From: nvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04 #################################################################### # # Amber MD container # ================== # This is a runtime environment for the Ambder MD tools. # Please see: # https://hpc.researchcomputing.ncl.ac.uk/dokuwiki/dokuwiki/doku.php?id=advanced:software:ambermd # #################################################################### %post # Prevent interactive prompts export DEBIAN_FRONTEND=noninteractive #################################################################### # # Basic system packages # #################################################################### # Update & install only necessary packages apt-get update # Base stuff everything will need apt-get install -y apt-utils wget build-essential aptitude gcc g++ gfortran cmake automake autoconf vim less git # These are specifically needed by Amber MD apt-get install -y \ libopenmpi-dev \ python3 \ flex \ bison \ m4 \ liblapack-dev \ libblas-dev \ libarpack2-dev \ libucpp-dev \ libnlopt-dev \ libz-dev \ libbz2-dev \ libapbs-dev \ libfftw3-mpi-dev \ libfftw3-dev \ libprotobuf-dev \ xorg-dev \ libxext-dev \ libxt-dev \ libx11-dev \ libice-dev \ libsm-dev \ libgomp1 \ devscripts \ debhelper \ fakeroot # Python 3 modules needed by Amber MD apt-get install -y \ python3-pip \ python3-numpy \ python3-tk \ python3-scipy \ python3-matplotlib # Clean up APT cache to save space apt-get clean # Clean out Python pip cache pip3 cache purge ################################################################################# # # This is all the custom stuff needed to build the various bioinformatics tools # ################################################################################# # This flag needs to be set to indicate which CPU architecture we # are optimising for. AMD_ARCH=1 if [ "$AMD_ARCH" = "1" ] then # Compiling on AMD Epyc export BASE_CFLAGS="-O3 -march=native -pipe" export BASE_CFLAGS_ALT="-O3 -march=native -pipe" export MAKE_JOBS=8 else # Compiling on generic system export BASE_CFLAGS="-O" export BASE_CFLAGS_ALT="-O" export MAKE_JOBS=8 fi export CFLAGS="$BASE_CFLAGS" export CPPFLAGS="" export CXXFLAGS="$CFLAGS" export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH export PATH=/opt/bin:$PATH echo "" echo "Post-OS-install setup for Bio apps container" echo "============================================" # A download place for external libraries mkdir -p /src/zipped # Where installations go mkdir -p /opt/pmemd24 echo "" echo "1. Install Amber MD 24" echo "======================" cd /src if [ -s /mnt/pmemd24.tar.bz2 ] then tar -jxf /mnt/pmemd24.tar.bz2 cd /src/pmemd24_src/build cmake /src/pmemd24_src \ -DCMAKE_INSTALL_PREFIX=/opt/pmemd24 \ -DCOMPILER=GNU \ -DMPI=TRUE \ -DCUDA=TRUE \ -DINSTALL_TESTS=TRUE \ -DDOWNLOAD_MINICONDA=FALSE \ -DBUILD_PYTHON=TRUE \ -DBUILD_PERL=TRUE \ -DBUILD_GUI=TRUE \ -DPMEMD_ONLY=TRUE \ -DCHECK_UPDATES=FALSE make -j$MAKE_JOBS make install else echo "Amber MD 24 source file not found" exit 1 fi echo "" echo "2. Install Amber MD 25" echo "======================" cd /src if [ -s /mnt/ambertools25.tar.bz2 ] then tar -jxf /mnt/ambertools25.tar.bz2 cd /src/ambertools25_src cmake /src/ambertools25_src \ -DCMAKE_INSTALL_PREFIX=/opt/ambertools25 \ -DCOMPILER=GNU \ -DMPI=TRUE \ -DCUDA=TRUE \ -DINSTALL_TESTS=TRUE \ -DDOWNLOAD_MINICONDA=TRUE make -j$MAKE_JOBS make install else echo "Amber MD 25 source file not found" exit 1 fi # Remove all src packages echo "" echo "Cleaning up downloaded src tree" echo "==================================" cd rm -rf /src echo "" echo "All done" %environment export PATH=/opt/bin:$PATH export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH export CFLAGS="-O3 -march=native -pipe" export CXXFLAGS="$CFLAGS" export MANPATH=/opt/man %runscript **Run Script:** #!/bin/bash module load apptainer IMAGE_NAME=/nobackup/shared/containers/ambermd.24.25.sif container.run() { # Run a command inside the container... # automatically bind the /scratch and /nobackup dirs # pass through any additional parameters given on the command line apptainer exec --nv --bind /scratch:/scratch --bind /nobackup:/nobackup ${IMAGE_NAME} $@ } ---- [[:advanced:software|Back to Software]]