NWChem

From ACENET
Jump to: navigation, search
Description
NWChem is a computational chemistry package for parallel computing designed by the Molecular Sciences Software group of the Environmental Molecular Sciences Laboratory at the Pacific Northwest National Laboratory.
Modulefile
nwchem
Examples
$NWCHEM/examples/
Documentation
NWChem homepage
Access to an older version 5.1
Recent versions of NWChem are distributed as open source software, and thus there is no need for users to accept special license terms mentioned below. However, if you wish to use an older version of NWchem 5.1 then you need to read and agree to the NWChem license. Please contact support via email (and also send a copy of your request to admin@ace-net.ca) making sure you include your username, name of project leader and a statement indicating that you agree to the terms and conditions of the NWChem license.

Usage

Each user needs a .nwchemrc file in their home directory, which contains necessary settings to run NWChem. This file gets generated automatically when you load the nwchem modulefile:

 $ module load nwchem

If you already have ~/.nwchemrc in your home directory, it will not be overwritten. If you want to ensure to that you got the right file, you may need to remove the existing one and then reload the appropriate modulefile. This is especially important if you are switching to a different version of NWChem.

NWChem 6.6 is compiled with the Intel compilers and linked against MKL. All the previous versions have been built with PGI.

TCP and IB

Due to the fact that NWChem does not completely rely on the MPI layer for communication between processes, and can efficiently use the underlying communication fabric in addition to the MPI layer, we provide different binaries (and modulefiles) for the same version of software: the TCP for Ethernet and the IB for InfiniBand.

Users should load an appropriate modulefile with either -ib or -tcp suffix. Placentia and Fundy are equipped with the InfiniBand interconnect, thus it's recommended to use the IB there. The TCP build is default and can be used at any site. Here are examples of a submission script:

#$ -cwd
#$ -l h_rt=01:00:00
#$ -pe ompi* 4

module load nwchem/6.1.1-tcp
mpirun nwchem input.nw
#$ -cwd
#$ -l h_rt=01:00:00
#$ -pe ompi 4

module load nwchem/6.1.1-ib
mpirun nwchem input.nw

For version 6.6, load different modulefiles:

#$ -cwd
#$ -l h_rt=01:00:00
#$ -pe ompi 4

module purge
module load intel openmpi/intel nwchem/6.6-ib
mpirun nwchem input.nw
Notes
  • Because NWChem is not a regular MPI application, if you are running the IB build, do not use the wildcard (asterisk) in the name of the ompi parallel environment in order to avoid compute nodes that are not equipped with InfiniBand.
  • Please note that the TCP build tends to require more memory than the IB.

Known issues and solutions

Issue 1
Please note that according to our tests the TCP build of NWChem may show variability in the amount of memory it requires from run to run. That is for a number of identical jobs run on the same hosts the same way, a few will fail (core dump) with the following error message in the "NWChem Input Module" section of the output file:
 Last System Error Message from Task 0:: No such file or directory 
If you experience occasional failures like this, try increasing h_vmem in your submission script by a gigabyte or two.
Issue 2
Those users who do not follow the above instructions on how to run NWChem might occasionally see their jobs fail (core dump) with the following error message in the very beginning of the output file:
 -10004:Segmentation Violation error, status=: 11
This problem is due to the mismatched usage of communication fabrics. The solution to this issue is to utilize the modulefiles appropriately, which set necessary settings preventing the mismatch (see submission scripts above).