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