ChemShell is a computational Chemistry environment, based on the Tcl interpreter. While it supports standard quantum chemical or force field calculations, its main strength lies in hybrid QM/MM calculations. The concept is to leave the time-consuming energy evaluation to external specialised codes, while ChemShell takes over the communication and data handling.
ChemShell is implemented in parallel using MPI (message passing interface). One node acts as a 'master', on which a Tcl interpreter runs and executes the input script. The other nodes are `slaves' that remain idle until a parallel input command is executed. This would typically be a request for a gradient evaluation using an external program. To achieve maximum efficiency the external program is linked into the ChemShell executable so it can be called directly without spawning an additional process. The external program therefore shares the same MPI environment as ChemShell and can make use of all the nodes for its own parallel calculations. When the command has completed control returns to the master node.
Task-farming parallelism adds an extra layer of organisation to the processors, which are grouped into independent workgroups using MPI communicators.
In each workgroup one node acts as a master and the rest are slaves. They operate in the same way as in the original parallel framework, except that there are now multiple master nodes. Each master runs a copy of the Tcl interpreter and independently executes the same ChemShell input script. A number of Tcl commands have been implemented to report workgroup information, such as how many workgroups exist and which workgroup the script is running in.
ChemShell 3.5 released 2012-05-30