NWChem aims to provide its users with computational chemistry tools that are scalable both in their ability to treat large scientific computational chemistry problems efficiently, and in their use of available parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters. NWChem software can handle: biomolecules, nanostructures, and solid-state; from quantum to classical, and all combinations; Gaussian basis functions or plane-waves; scaling from one to thousands of processors; properties and relativity.

The NWChem home page is at

Available modules

Packages with modules

Module NeSI Cluster
NWChem/6.6-intel-2015a-Python-2.7.9 pan

Licensing requirements

NWChem is available to anyone as open source software at no cost under the terms of the Educational Community Licence, version 2.0.

Example scripts

Example script for the Pan cluster

#!/bin/bash -e

#SBATCH --job-name       NWChem_job
#SBATCH --account        nesi99999
#SBATCH --time           01:00:00
#SBATCH --constraint     avx
#SBATCH --tasks          64
#SBATCH --cpus-per-task  1
#SBATCH --tasks-per-node 16
#SBATCH --mem-per-cpu    4G
#SBATCH --output         NWChem_job.%j.out # Include the job ID in the names
#SBATCH --error          NWChem_job.%j.err # of the output and error files

module load NWChem/6.6-intel-2015a-Python-2.7.9

# Since --output is set, there is no need to redirect output to a file
# on the NWChem command line.
srun nwchem NWChem_job.nw

Further notes

Shared memory limits

NWChem relies on an environment variable, ARMCI_DEFAULT_SHMMAX, to set the amount of shared memory used per node. ARMCI_DEFAULT_SHMMAX must be set to an appropriate value given the global memory set in the NWChem input file.

For example, if the global memory (set via the global keyword in the input file) is set to 1,024 MB, ARMCI_DEFAULT_SHMMAX should be set to 1,024 multiplied by the number of cores requested per node.

It follows that a NWChem job must request the same number of cores on each node. This is accomplished by setting the number of cores per task (--cpus-per-task) and tasks per node (--tasks-per-node) in the job submission script. These values should be appropriately set. Setting --cpus-per-task to greater than 1 will force shared-memory parallelisation; if this option is supplemented by --tasks greater than 1, hybrid parallelisation will be used.

ARMCI_DEFAULT_SHMMAX should be no greater than the value of shmmax on the relevant node. The latter value can be ascertained as follows, to return the value of shmmax in MB, and should be obtained from an appropriate build node (build-wm if --constraint wm is used, and build-sb if --constraint avx).

echo $(($(cat /proc/sys/kernel/shmmax) / 1048576))


Powered by Zendesk