Desmond is a software package that perform high-speed molecular dynamics simulations of biological systems on conventional commodity clusters, general-purpose supercomputers, and GPUs. The code uses novel parallel algorithms and numerical techniques to achieve high performance and accuracy on platforms containing a large number of processors, but may also be executed on a single computer. Desmond includes code optimized for machines with an NVIDIA GPU.

Availability and Restrictions


The Desmond package is available on Owens. The versions currently available at OSC are:

Version Owens Note
2018.2 X  
2019.1 X*  
2020.1 X GPU support only
2022.4 X GPU support only
* Current default version

You can use  module spider desmond to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.

Access for Academic Users 

Desmond is available to academic OSC users. Please review the license agreement carefully before use. If you have any questions, please contact OSC Help.

Publisher/Vendor/Repository and License Type

D. E. Shaw Research, Non-Commercial


Usage on Owens


To set up your environment for desmond load one of its module files:

​​module load desmond/2018.2

If you already have input and configuration files ready, here is an example batch script that uses Desmond non-interactively via the batch system:

#SBATCH --job-name multisim-batch
#SBATCH --time=0:20:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=24
#SBATCH --account=<account>

# Example Desmond single-node batch script. 

sstat -j $SLURM_JOB_ID
module load desmond/2018.2
module list

sbcast -p desmondbutane.msj $TMPDIR/desmondbutane.msj
sbcast -p desmondbutane.cfg $TMPDIR/desmondbutane.cfg
sbcast -p desmondbutane.cms $TMPDIR/desmondbutane.cms

$SCHRODINGER/utilities/multisim -HOST localhost -maxjob 1 -cpu 24 -m desmondbutane.msj -c desmondbutane.cfg desmondbutane.cms -mode umbrella -ATTACHED -WAIT
ls -l

The WAIT option forces the multisim command to wait until all tasks of the command are completed. This is necessary for batch jobs to run effectively. The HOST option specifies how tasks are distributed over processors.

Set-up via Maestro

Desmond comes with Schrodinger interactive builder, Maestro. To run maestro, connect to OSC OnDemand and luanch a virtual desktop, either a Virtual Desktop Interface (VDI) or an Interactive HPC Desktop. Click "Setup process" below for instructions.

Setup process

Log in to OSC OnDemand and request a Desktop/VDI session 


In a Desktop/VDI environment, open a terminal and run

module load desmond

In the main window of Maestro, you can open File and import structures or create new project

Screenshot 2022-06-29 120854.png

Screenshot 2022-06-29 121005.png

Once the structure is ready, navigate to the top right Tasks icon and find Desmond application

    Tasks >> Browse... > Applications tab >> Desmond

Screenshot 2022-06-29 121057 (2).png

In this example a Minimazation job will be done.

Screenshot 2022-06-29 121120.png

Make sure Mode system is ready

  Model system >> Load from workspace >> Load

You can change Job name and write out the script and configuration files by clicking Write as shown below

Screenshot 2022-06-29 121205.png

The green text will indicate job location with the prefix "Job written to...". The location is a new folder located on the working directory indicated earlier.

Screenshot 2022-06-29 121315.png

Navigate using the terminal to that location. You can modify the script to either run simulation with GPU or CPU.

Run simulation with GPU

Navigate using the terminal to that location and add required SLURM and module commands at the top of the script

#SBATCH --time=0:20:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
#SBATCH --gpus-per-node=1
#SBATCH --account=<account>

module reset
module load desmond/2019.1

# Desmond job script starts here

The setup is complete.

Run simulation with CPU only
Navigate using the terminal to that location and edit the script

"${SCHRODINGER}/utilities/multisim" -JOBNAME desmond_min_job_1 -HOST localhost -maxjob 1 -cpu 1 -m desmond_min_job_1.msj -c desmond_min_job_1.cfg -description Minimization desmond_min_job_1.cms -mode umbrella -set stage[1]["-gpu"] -o desmond_min_job_1-out.cms -ATTACHED

Delete the -set stage[1]["-gpu"] arguement and change the -cpu arguement from 1 to the number of CPUs you need, e.g. 8. Resulting in

"${SCHRODINGER}/utilities/multisim" -JOBNAME desmond_min_job_1 -HOST localhost -maxjob 1 -cpu 8 -m desmond_min_job_1.msj -c desmond_min_job_1.cfg -description Minimization desmond_min_job_1.cms -mode umbrella  -o desmond_min_job_1-out.cms -ATTACHED

Add required SLURM and module commands at the top of the script

#SBATCH --time=0:20:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=24
#SBATCH --account=<account>

module reset
module load desmond/2019.1

# Desmond job script starts here

The setup is complete.


Further Reading