A high-performance toolkit for molecular simulation. Use it as an application, a library, or a flexible programming environment. It includes extensive language bindings for Python, C, C++, and even Fortran.
Allocate an interactive session and run the program.
Sample session (user input in bold):
[user@biowulf]$ sinteractive
salloc.exe: Pending job allocation 46116226
salloc.exe: job 46116226 queued and waiting for resources
salloc.exe: job 46116226 has been allocated resources
salloc.exe: Granted job allocation 46116226
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3144 are ready for job
[user@cn3144 ~]$ module load openmm
[user@cn3144 ~]$ cp $OPENMM_EXAMPLES/input.pdb .
[user@cn3144 ~]$ cat << EOF > go.py
from openmm.app import *
from openmm import *
from openmm.unit import *
from sys import stdout
pdb = PDBFile('input.pdb')
forcefield = ForceField('amber99sb.xml', 'tip3p.xml')
system = forcefield.createSystem(pdb.topology, nonbondedMethod=PME, nonbondedCutoff=1*nanometer, constraints=HBonds)
integrator = LangevinIntegrator(300*kelvin, 1/picosecond, 0.002*picoseconds)
simulation = Simulation(pdb.topology, system, integrator)
simulation.context.setPositions(pdb.positions)
simulation.minimizeEnergy()
simulation.reporters.append(PDBReporter('output.pdb', 1000))
simulation.reporters.append(StateDataReporter(stdout, 1000, step=True, potentialEnergy=True, temperature=True))
simulation.step(10000)
EOF
[user@cn3144 ~]$ python go.py
[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$
Create a batch input file (e.g. openmm.sh). For example:
#!/bin/bash set -e module load openmm cp $OPENMM_EXAMPLES/benchmark.py . cp $OPENMM_EXAMPLES/apoa1.pdb . OPENMM_CPU_THREADS=$SLURM_NTASKS python benchmark.py --platform=CPU --test=apoa1pme --pme-cutoff=0.8
Submit this job using the Slurm sbatch command.
sbatch --n 8 -N 1 openmm.sh