Scalable, parallel computational chemistry tools.
Load the module. It requires OpenMPI.
Please cite the following reference when publishing results obtained with NWChem: M. Valiev, E.J. Bylaska, N. Govind, K. Kowalski, T.P. Straatsma, H.J.J. van Dam, D. Wang, J. Nieplocha, E. Apra, T.L. Windus, W.A. de Jong, "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations" Comput. Phys. Commun. 181, 1477 (2010)
We do not use the Ubuntu provided package since it depends on mpi and we block the system mpi packages from being installed.
7.0.2
Trying to adapt from the 6.8.1 steps took hours to build and left me with a program that failed our workstation tests (:0:geom_binvr: ysyev failed:Received an Error in Communication
).
But fortunately anaconda has packaged a version of this, which works fine:
# from wales01 (a [real] box running focal) module load anaconda/python3 conda create -n nwchem -c conda-forge nwchem # from styx (so I can both use my ssh keys and mount /shared/shared rw) sudo ~/work/hold_shared_w_lock.py & time sudo rsync -rvl -e "sudo -u ajh221 ssh" wales01:/home/ajh221/.conda/envs/nwchem/ /shared/shared/ubuntu-20.04/x86_64/nwchem/7.0.2 sudo mkdir /shared/shared/ubuntu-20.04/x86_64/nwchem/7.0.2/data/ # then provide the /shared/shared/ubuntu-20.04/x86_64/nwchem/7.0.2/data/default.nwchemrc file # now, from an actual download of the nwchem source code, put in place the contrib directory (used for the python script nwgeom.py at least) sudo cp -r nwchem-7.0.2-release/contrib /usr/local/shared/ubuntu-20.04/x86_64/nwchem/7.0.2/ # now, back on wales01 cd ~/work/linux-workstation-tests mpirun -n 2 /usr/local/shared/ubuntu-20.04/x86_64/nwchem/7.0.2/bin/nwchem tests/data/nwchem.nw | less # or module load nwchem && mpirun -n 2 nwchem tests/data/nwchem.nw | less nosetests3 -v tests/test_nwchem.py |& less
6.8.1
See /usr/local/shared/ubuntu-18.04/x86_64/nwchem/6.8.1/build-nwchem-atlas.sh and /usr/local/shared/ubuntu-18.04/x86_64/nwchem/6.8.1/test-nwchem.sh . The QA suite that ships with nwchem contains many, many failing tests but the test script used here contains only the ones the nwchem developers use themselves.
Focal: Global Arrays (GA) needs a patch to work with MPI 4. I used that suggested at https://nwchemgit.github.io/Special_AWCforum/sp/id10351.html However, I still had problems (it was complaining about unresolved Python symbols at the linking stage - perhaps I should have followed the following for 6.6 in full?).
6.6
export NWCHEM_TOP=`pwd` export NWCHEM_TARGET=LINUX64 export NWCHEM_MODULES='all python' export USE_MPI=y
module purge #module add mpi/openmpi/64/gnu/1.6.5 module add mpi/openmpi/64/gnu/1.8
$NWCHEM_TOP/contrib/distro-tools/getmpidefs_nwchem # and then execute the result # You may need to add -Wl,-rpath -Wl,/path/to/your/openmpi/lib too MPI_LIB too #export LIBMPI="-lmpi_f90 -lmpi_f77 -lmpi -ldl -Wl,--export-dynamic -lnsl -lutil" #export LIBMPI='-lmpi' #echo $MPI_LIB #echo $MPI_INCLUDE export FC=mpif90 export CC=mpicc export PYTHONHOME=/usr export PYTHONVERSION=2.7 export USE_PYTHON64=y export PYTHONLIBTYPE=so export PYTHON_SYSLIB=/usr/lib export PYTHONCONFIGDIR=config-x86_64-linux-gnu vim src/config/makefile.h
find the PYTHON64 bit and change $(PYTHONHOME)/lib64/python$(PYTHONVERSION)/config-x86_64-linux-gnu/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE) to $(PYTHONHOME)/lib/python$(PYTHONVERSION)/config-x86_64-linux-gnu/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)
cd $NWCHEM_TOP/src make nwchem_config make export NWCINS=/whereever mkdir $NWCINS mkdir $NWCINS/bin mkdir $NWCINS/data mkdir $NWCINS/contrib
cd $NWCHEM_TOP cp -r contrib/python $NWCINS/contrib cp bin/$NWCHEM_TARGET/nwchem $NWCINS/bin chmod 755 $NWCINS/bin cd $NWCHEM_TOP/src/basis cp -r libraries $NWCINS/data cd $NWCHEM_TOP/src/ cp -r data $NWCINS cd $NWCHEM_TOP/src/nwpw cp -r libraryps $NWCINS/data chmod -R go+rX $NWCINS
Make a $NWCINS/data/default.nwchemrc file containing this (expand the vars)
nwchem_basis_library $NWCINS/data/libraries/ nwchem_nwpw_library $NWCINS/data/libraryps/ ffield amber amber_1 $NWCINS/data/amber_s/ amber_2 $NWCINS/data/amber_q/ amber_3 $NWCINS/data/amber_x/ amber_4 $NWCINS/data/amber_u/ spce $NWCINS/data/solvents/spce.rst charmm_s $NWCINS/data/charmm_s/ charmm_x $NWCINS/data/charmm_x/
You need the module for nwchem to link the default.nwchemrc to ~/.nwchemrc