Schrodinger

Software name: 
Schrodinger
Policy 

Schrodinger is available at HPC2N to users with their own license.

General 

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

Description 

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.
Availability 

On HPC2N we have the Schrodinger suite available as a module on Kebnekaise.

Usage at HPC2N 

To use Schrodinger, add the module to your environment. Use the command:

module spider schrodinger

Read the page about modules to see how to load the required module.

License settings

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.

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 Broadwell node on Kebnekaise), note the -QARGS parameter which is passed to the sbatch command.

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 respective cluster support 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. On Kebnekaise it is (usually) 28.

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.
NOTE: selected number-of-simultaneous-subjobs * number-of-OpenMP-threads should not exceed number of cores in a single node on the cluster where you are running.
NOTE: 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-snic-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 2016-4
module add Schrodinger/2016-4_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.
NOTE: 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-snic-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 2016-4
module add Schrodinger/2016-4_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 abour Schrödinger can be found at the following locations:

Updated: 2024-04-17, 14:47