ChemShell

Overview

ChemShell is a computational chemistry environment for standard quantum chemical or force field calculations, including hybrid QM/MM calculations. ChemShell includes interfaces to various QM and MM codes, and is designed to deal with the communication and data handling, whilst energy evaluations are undertaken by external codes.

Version 21.0.3 (python) has been compiled on the CSF using Intel compilers v19.1.2 and OpenMPI v4.1.1.

Version 3.7.1 (tcl) has been compiled on the CSF using Intel compilers v17.0.7 and OpenMPI v3.1.1.

Restrictions on use

Version 21.0.3 is available for all CSF users to use without restriction.

Version 3.7.1 is available for all CSF users to use. Users need to be in the ‘chemshell’ group. Note that there is no access to the source code.

Whilst the software is free for academic usage there are limitations within the licence agreement which must be strictly adhered to by users. The licence covers use on the CSF only.

A full copy of the licence can be found in:

  • /opt/apps/apps/intel-17.0/chemshell/3.7.1/chemshell_licence.pdf.

Important points to note are:

  • All parts of Clause 2.1, in particular:
    • The software is only available to Staff and Students of the University of Manchester. Visiting scientists/students who are collaborating with a member of Staff and who have been given an official University of Manchester IT username may use the software.

      Users are reminded that they must not share their password with anyone, or allow anyone else to utilise their account.

    • The software may only be used for academic purposes as defined in clause 1.1. No commercial work or commercially funded work permitted.
    • Derived Work – Users must not modify, enhance or improve the software without consultation with the University Intellectual Property Team. Any derived works must be shared with appropriately cite CCLRC.
    • The software is for use on the CSF only.
  • Clause 4.2: the acknowledgements for the use of the software are set out in this clause and must be used for all employee and student publications.

All users who wish to use the software must request access by emailing its-ri-team@manchester.ac.uk.

Set up procedure

To use ChemShell first set up the environment by loading the module.

module load apps/intel-19.1/chemshell/21.0.3

or

module load apps/intel-17.0/chemshell/3.7.1

Options may be shown after loading the module via:

chemsh --help

Running the application

ChemShell is normally invoked using the chemsh script. By convention input files are suffixed .chm, although as is typical for Unix/Linux applications, the suffix has no significance. Running chemsh without an input file will launch an interactive session. Parallel execution can be started using

chemsh -p $NSLOTS input.chm

or alternatively by launching the executable with mpirun:

mpirun -np $NSLOTS chemsh.x input.chm

Serial batch job submission

The following SGE script can be used to submit a single core Chemshell job with input data file test.chm:

#!/bin/bash --login
#$ -cwd

module load apps/intel-17.0/chemshell/3.7.1

chemsh test.chm

Parallel batch job submission

Single node (2-32 cores)

Jobs that fit on a single compute node (32 or fewer cores) can use the smp.pe parallel environment. For example the following script defines a 2 core job (with input file prepare.chm) running on a single node:

#!/bin/bash --login
#$ -cwd
#$ -pe smp.pe 2

module load apps/intel-17.0/chemshell/3.7.1

chemsh -p $NSLOTS prepare.chm

Multi node jobs (multiples of 24 cores, minimum 48 cores)

#!/bin/bash --login
#$ -cwd
#$ -pe mpi-24-ib.pe 48

module load apps/intel-17.0/chemshell/3.7.1

chemsh -p $NSLOTS prepare.chm

For more information on submitting jobs to SGE, and on parallel environments, see here.

Serial ChemShell calling Parallel QM/MM Applications

A ChemShell script will often use other tools to complete its calculation. For example TurboMole and/or Charmm can be started from within your ChemShell script. These tools can often run in parallel.

On the CSF we have found that starting ChemShell in parallel and then trying to run other parallel tools from ChemShell can cause the ChemShell job to crash. The solution is to run ChemShell serially and let it run the other tools in parallel. There are two ways to do this as explained below.

Writing your own jobscript

To prevent Chemshell from crashing it should be run serially and then let the other tools (e.g., TurboMole or CHARMM) run in parallel. Hence we still require a PE in the jobscript to specify the number of cores that will be used by the parallel tools. ChemShell can, however, still be run without any MPI commands.

Note that you must also load the modulefile for the additional tools ChemShell will use. For example, if calling TurboMole from your ChemShell script you must ensure that you load the required TurboMole modulefile, otherwise ChemShell will not be able to find the additional tools.

The following jobscript sets up a ChemShell job which uses TurboMole to do some processing. TurboMole will run in parallel, but only a single ChemShell process will run. The jobscript is:

#!/bin/bash --login
#$ -cwd
### ChemShell is run serially but it starts TurboMole in parallel
### so we must reserve 4 (in this example) cores for TurboMole
#$ -pe smp.pe 4

module load apps/intel-17.0/chemshell/3.7.1

# PARNODES is used by Turbomole - set it to the number above using $NSLOTS
export PARNODES=$NSLOTS

# Run ChemShell serially (without any mpirun)
chemsh myinput.chm >& myoutput.log

If running larger multi-node jobs via ChemShell, use the mpi-24-ib.pe in your jobscript as described in the previous section. For example:

#!/bin/bash --login
#$ -cwd
### ChemShell is run serially but it starts TurboMole in parallel
### so we must reserve cores for TurboMole. To run multi-node
### parallel jobs we must use at least 48 cores (i.e., two 24-core nodes)
### and the number of cores must be a multiple of 24 (i.e., entire nodes only).
#$ -pe mpi-24-ib.pe 48

module load apps/intel-17.0/chemshell/3.7.1

# PARNODES is used by Turbomole - set it to the number above using $NSLOTS
export PARNODES=$NSLOTS

# Run ChemShell serially (without any mpirun)
chemsh myinput.chm >& myoutput.log

Using a helper script

To help with submitting QM/MM jobs that call other tools such as TurboMole and/or CHARMM, we have created a script that can be run on the CSF login nodes. It will submit jobs for you. After loading the chemshell modulefile, run on the login node:

qchemshell_csf

This allows you to specify the number of cores to use and the name of a .chm input file. If you are using TURBOMOLE and/or CHARMM you must load the modulefiles for those applications first. For example:


# Submit a Chemshell job that runs CHARMM and TURBOMOLE on a single compute node using 8 cores

module load apps/intel-17.0/chemshell/3.7.1
module load apps/intel-17.0/charmm/c36b2
module load apps/binapps/turbomole/7.3/mpi
qchemshell_csf -p 8 myinput.chm
   #
   # All of these commands are run on the login node. A batch job will be submitted for you.

Additional flags can be given on the qchemshell_csf command-line:

-ne    # Turn off job email. By default the job will mail you when it has finished.

Further info

Further information can be found on the ChemShell web page including the Chemshell Manual, tutorials and details of the chemsh-users email list which can be used to post queries to seek help.

Updates

None at present.

Last modified on May 24, 2023 at 1:22 pm by Ben Pietras