Skip to content

OpenMM

OpenMM is a high performance toolkit for molecular simulation.[1]

Installed Versions

OpenMM 7.3.1 is installed on Proteus. Use the modulefile:

openmm/7.3.1

OpenMM 7.4 using Anaconda Python is installed, separately for the standard queue (all.q) and the new queue (new.q). The reason these separate setup methods have to be used is that Anaconda assumes an installation on a single-user system, as opposed to a shared system for multiple users and possibly multiple OS versions.

The installations include OpenMMTools,[2] a Python interface for OpenMM.

Standard Queue all.q

First, create the file ~/.bashrc_conda:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/mnt/HA/opt/python/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/mnt/HA/opt/python/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/mnt/HA/opt/python/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/mnt/HA/opt/python/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

For interactive use:

[juser@proteusi01]$ module load python/anaconda3
[juser@proteusi01]$ . ~/.bashrc_conda
(base) [juser@proteusi01]$ conda activate openmm
(openmm) [juser@proteusi01]$ python -m simtk.testInstallation

OpenMM Version: 7.4
Git Revision: b71e92d9ccef7c98cfd6b862eb34095d94fa1b05

There are 2 Platforms available:

1 Reference - Successfully computed forces
2 CPU - Successfully computed forces

Median difference in forces between platforms:

Reference vs. CPU: 6.29225e-06

All differences are within tolerance.

In job scripts (request Intel nodes as MKL may or may not work on AMD nodes):

#$ -q all.q
#$ -pe shm 16
#$ -l vendor=intel
#$ -l h_vmem=4G
#$ -l h_rt=12:00:00
. /etc/profile.d/modules.sh
module load shared
module load proteus
module load python/anaconda3

. ~/.bashrc_conda

conda activate openmm
python my_openmm_computation.py

New Queue new.q

On new.q (40-core Intel Sky Lake nodes), OpenMM is installed as part of Anaconda Python, in a separate conda environment named openmm.

To use, first create a file named .bashrc_conda_rh68 in your home directory:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/mnt/HA/opt_rh68/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/mnt/HA/opt_rh68/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/mnt/HA/opt_rh68/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/mnt/HA/opt_rh68/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

Next, modify your .bashrc to handle the case of logging into the new.q nodes -- add the following near the top, after the block mentioning /etc/bashrc:

if [ -n "${PROTEUSFLAVOR}" ]
then
    echo "PROTEUSFLAVOR = ${PROTEUSFLAVOR}"
    module load proteus
    if [ "${PROTEUSFLAVOR}" == "GPU_RH68" ]
    then
        module load proteus-gpu
    elif [ "${PROTEUSFLAVOR}" == "RH68" ]
    then
        module load proteus-rh68
        . ~/.bashrc_conda_rh68
    fi
fi

To use OpenMM interactively, activate the conda environment. First, request an interactive session in new.q:

[juser@proteusia01]$ qlogin -q new.q -pe shm 40 -l h_rt=4:00:00,h_vmem=3G
...
(base) [juser@ic23n02]$ module load python/anaconda3
(base) [juser@ic23n02]$ conda activate openmm
(openmm) [juser@ic23n02]$ python -m simtk.testInstallation

OpenMM Version: 7.4
Git Revision: b71e92d9ccef7c98cfd6b862eb34095d94fa1b05

There are 2 Platforms available:

1 Reference - Successfully computed forces
2 CPU - Successfully computed forces

Median difference in forces between platforms:

Reference vs. CPU: 6.29459e-06

All differences are within tolerance.

When writing job scripts:

#$ -q new.q
#$ -pe shm 40
...
. /etc/profile.d/modules.sh
module load shared
module load proteus-rh68
module load python/anaconda3

. ~/.bashrc_conda_rh68

conda activate openmm
python my_openmm_computation.py

See Also

References

[1] OpenMM web site

[2] OpenMMTools