Schrödinger

Schrödinger aims to provide integrated software solutions and services that truly meet its customers needs. We want to empower researchers around the world to achieve their goals of improving human health and quality of life through advanced computational techniques that transform the way chemists design compounds and materials.

Policy

Schrodinger is available to users at HPC2N who have their own license.

License server setup

To use any parts of Schrodinger you need your own license running on a license server.

To make the programs aware of your license server do the following after adding the module.

SCHROD_LICENSE_FILE=port@your.license.server

Replace “port” and “your.license.server” with the relevant values, ask you Schrodinger administrator for the correct values.

You will also have to check with your system administrator that the license server is reachable from HPC2Ns networks, most easily accomplished by allowing 130.239.0.0/16 access.

Citations

See Schrödinger’s citation page for how to include acknowledgement of the use of this program into scientific papers.

Overview

The Schrodinger suite is collection of programs for computational chemistry and molecular modelling.

The suite contains programs such as Maestro, Desmond and Jaguar.

  • Maestro is a molecular modelling environment.
  • Desmond is a molecular dynamics simulation tool.
  • Jaguar is a ab initio electronic structure package.

Usage at HPC2N

On HPC2N we have Schrodinger available as a module.

Loading

To use the Schrodinger module, add it to your environment. You can find versions with

module spider Schrodinger

and you can then find how to load a specific version (including prerequisites), with

module spider Schrodinger/<VERSION> 

Using the maestro GUI

To be able to submit batch jobs directly from inside the maestro GUI there are two extra environment variables that must be set before starting maestro.

export SBATCH_ACCOUNT=your-account
export SBATCH_TIMELIMIT=required-timelimit-for-all-batchjobs

Example for Jaguar

Most of the tools creates a submit file and submits it when given the correct parameters.

Here is a typical invocation of jaguar using 28 cores (suitable for a regular Intel Skylake node on Kebnekaise - change for the other node types), note the -QARGS parameter which is passed to the sbatch command.

Create a submit file

The below command should be run directly on the login node. It will create a submit file on the fly.

$SCHRODINGER/jaguar run -HOST batch -PARALLEL 28 -QARGS "-t <hh:mm:ss> -A <YOUR-ACCOUNT-ID>" somefile.in

The important arguments are:

  • -HOST should be followed by “batch”.
  • -PARALLEL specifies how many OpenMP threads you want to use.
  • -QARGS is a string passed on to the batch system. Here you should specify things like requested runtime and your project-id.
    • Both systems use -A for passing project-id
    • You should use -t hh:mm:ss for runtime
    • See the batch system pages for examples of other flags to use.
  • NOTE: the argument to -PARALLEL must not be larger than the number of cores available on the targeted node. A skylake node on Kebnekaise has 28. See Different parts of the batch system for other node types.

Submit example for Prime

When using Prime one should take advantage of the OpenMP capability it has.

The following submit file is an example of how to run Prime.

Note

  • prime_mmgbsa requires 8 SUITE_* and 8 PSP Plop tokens per sub job.
  • selected number-of-simultaneous-subjobs * number-of-OpenMP-threads should not exceed number of cores in a single node of the type you are using
  • nor is there any real reason to set number-of-simultaneous-subjobs higher than what is available from the license server.
#!/bin/bash
#SBATCH -A <your-hpc2n-account>
#SBATCH -J <your-job-name>
#SBATCH -t hh:mm:ss
# Can only run on a single node at the moment so make sure to specify -N 1
#SBATCH -N 1
#SBATCH -n <your-selected-number-of-simultaneous-subjobs-to-use>
#SBATCH -c <your-selected-number-of-OpenMP-threads-to-use>

export LM_LICENSE_FILE="port@your.license.server"

# This example loads Schrodinger 2019-1
module add Schrodinger/2019-1_Advanced_Linux-x86_64  

export SCHRODINGER_NODEFILE=`mktemp`
echo localhost:$SLURM_NTASKS > $SCHRODINGER_NODEFILE

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

$SCHRODINGER/prime_mmgbsa -WAIT -LOCAL -NJOBS <number-of-subjobs-to-split-the-workload-into> <your-parameters>

You can set the number-of-subjobs-to-split-workload-into as high as you like, but there is no reason to choose it larger then the total number of subjobs in the workload. The more sub jobs you split the workload into, the less work is needed during a restart.

To restart a failed or otherwise stopped prime_mmgbsa job, just add -RESTART to the arguments of prime_mmgbsa in the above submit file. Any complaints about any -out.maegz file being incorrect format should be resolved by simply deleting the offending file and the job restarted again.

Submit example for Glide

When using Glide we have to create a more complicated submit file. It can only run on a single node at the moment.

Note

  • Subjobs can only be used for simplified docking jobs.
  • Glide consumes 4+1 token of SUITE_*, one token of GLIDE_MAIN and 4 tokens of GLIDE_SP_DOCKING per job
#!/bin/bash
#SBATCH -A <your-hpc2n-account>
#SBATCH -J <your-job-name>
#SBATCH -t hh:mm:ss
#SBATCH -N 1
#SBATCH -n <number-of-processors>

export LM_LICENSE_FILE="port@your.license.server"

# This example loads Schrodinger 2019-1 
module add Schrodinger/2019-1_Advanced_Linux-x86_64 

export SCHRODINGER_NODEFILE=`mktemp`
echo localhost:$SLURM_NTASKS > $SCHRODINGER_NODEFILE

# Run with 16 subjobs
$SCHRODINGER/glide -NJOBS 16 -NOJOBID <your-input-file-and-parameters>

Submit example for Multisim

#!/bin/bash
#SBATCH -A <your-project-id>
#SBATCH -J <your-job-name>
#SBATCH -t hh:mm:ss
#SBATCH --gpus-per-node=v100:1
#SBATCH -n 1

export LM_LICENSE_FILE="port@your.license.server"

module purge > /dev/null 2>&1  # Clean the environment from any loaded modules
module load Schrodinger/2019-1_Advanced_Linux-x86_64 

$SCHRODINGER/utilities/multisim -WAIT -HOST localhost -maxjob 1 -cpu 1 -m MD-GBP3C5-AL560.msj -c MD-GBP3C5-AL560.cfg MD-GBP3C5-AL560.cms -mode umbrella -set stage[1].set_family.md.jlaunch_opt=["-gpu"] -o MD-GBP3C5-AL560-out.cms -lic DESMOND_GPGPU:1

The important options here are -WAIT -HOST localhost -mode umbrella -set stage... -lic DESMOND_GPGPU:1

Additional info

More information can be found