Here is a write-up of my computing platform and applications:
- NWChem 6.8 (14 December 2017)
- Intel Compilers, IMPI and MKL (2018 U3)
- Infiniband Interconnect (OFED-4.3-1.0.1)
- CentOS 7.4 (x86_64)
Step 1: First thing first, source the intel components setting from
# source /usr/local/intel/2018u3/bin/compilervars.sh intel64
# source /usr/local/intel/2018u3/impi/2018.3.222/bin64/mpivars.sh intel64
# source /usr/local/intel/2018u3/mkl/bin/mklvars.sh intel64
# source /usr/local/intel/2018u3/parallel_studio_xe_2018/bin/psxevars.sh intel64
export NWCHEM_TOP=/usr/local/software/nwchem-6.8/nwchem-6.8
export NWCHEM_MODULES=pnnl
export NWCHEM_TARGET=LINUX64
export NWCHEM_LONG_PATHS=y
export PYTHONHOME=/usr
export PYTHONVERSION=2.7
export PYTHONLIBTYPE=so
export USE_PYTHON64=y
export USE_NOFSCHECK=y
export TCGRSH=/usr/bin/ssh
export LARGE_FILES=y
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC="/usr/local/intel/2018u3/impi/2018.3.222/intel64"
export MPI_INCLUDE="/usr/local/intel/2018u3/impi/2018.3.222/intel64/include/gfortran/5.1.0 -I/usr/local/intel/2018u3/impi/2018.3.222/intel64/include"
export MPI_LIB="/usr/local/intel/2018u3/impi/2018.3.222/intel64/lib/release_mt -L/usr/local/intel/2018u3/impi/2018.3.222/intel64/lib"
export LIBMPI="-lmpifort -lmpi -lmpigi -ldl -lrt -lpthread"
export USE_OPENMP=y
export MKLROOT=/usr/local/intel/2018u3/mkl
export MKLLIB="${MKLROOT}/lib/intel64"
export MKLINC="${MKLROOT}/include"
export HAS_BLAS=y
export BLAS_SIZE=8
export BLASOPT="-L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl"
export LAPACK_SIZE=8
export LAPACK_LIB="$BLASOPT"
export LAPACK_LIBS="$BLASOPT"
export LAPACKOPT="$BLASOPT"
export USE_SCALAPACK=y
export SCALAPACK_SIZE=8
export SCALAPACK="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_ilp64 -liomp5 -lpthread -lm -ldl"
export SCALAPACK_LIB="$SCALAPACK"
export SCALAPACK_LIBS="$SCALAPACK"
export CC=icc
export FC=ifort
export USE_64TO32=y
cd $NWCHEM_TOP/src
#make realclean
make nwchem_config
make 64_to_32
make CC=icc FC=ifort FOPTIMIZE=-O3
cd $NWCHEM_TOP/src/tools
make CC=icc FC=ifort FOPTIMIZE=-O3 version
make CC=icc FC=ifort FOPTIMIZE=-O3
cd $NWCHEM_TOP/src
make CC=icc FC=ifort FOPTIMIZE=-O3 link
General Site Installation
Determine the local storage path for the install files. (e.g., /usr/local/NWChem).
Make directories
Determine the local storage path for the install files. (e.g., /usr/local/NWChem).
Make directories
# mkdir /usr/local/nwchem-6.8
# mkdir /usr/local/nwchem-6.8/bin
# mkdir /usr/local/nwchem-6.8/data
Copy binary
# cp $NWCHEM_TOP/bin/ /usr/local/nwchem-6.8/bin
# cd /usr/local/nwchem-6.8/bin
# chmod 755 nwchem
Copy libraries
# cd $NWCHEM_TOP/src/basis
# cp -r libraries /usr/local/nwchem-6.8/data
# cd $NWCHEM_TOP/src/
# cp -r data /usr/local/nwchem-6.8
# cd $NWCHEM_TOP/src/nwpw
# cp -r libraryps /usr/local/nwchem-6.8/data
The Final Lap (From Compiling NWChem)
Each user will need a .nwchemrc file to point to these default data files. A global one could be put in /usr/local/nwchem-6.8/data and a symbolic link made in each users $HOME directory is probably the best plan for new installs. Users would have to issue the following command prior to using NWChem: ln -s /usr/local/nwchem-6.8/data/default.nwchemrc $HOME/.nwchemrc
Contents of the default.nwchemrc file based on the above information should be:
nwchem_basis_library /usr/local/nwchem-6.8/data/libraries/
nwchem_nwpw_library /usr/local/nwchem-6.8/data/libraryps/
ffield amber
amber_1 /usr/local/nwchem-6.8/data/amber_s/
amber_2 /usr/local/nwchem-6.8/data/amber_q/
amber_3 /usr/local/nwchem-6.8/data/amber_x/
amber_4 /usr/local/nwchem-6.8/data/amber_u/
spce /usr/local/nwchem-6.8/data/solvents/spce.rst
charmm_s /usr/local/nwchem-6.8/data/charmm_s/
charmm_x /usr/local/nwchem-6.8/data/charmm_x/
References: