Skip to content

Instantly share code, notes, and snippets.

@ChrisDowning
Last active October 20, 2018 00:47
Show Gist options
  • Save ChrisDowning/331be51016f1f31d7258b73f72d27852 to your computer and use it in GitHub Desktop.
Save ChrisDowning/331be51016f1f31d7258b73f72d27852 to your computer and use it in GitHub Desktop.
NWChem compilation (GCC, Intel MPI, internal BLAS)
#!/bin/bash
source /opt/intel/mkl/bin/mklvars.sh intel64
source /opt/intel/impi/2018.4.274/intel64/bin/mpivars.sh
export FC=gfortran
export _FC=mpif90
export CC=gcc
export _CC=mpicc
export LD=/usr/bin/ld
export NWCHEM_TOP=/home/redoak/NWChem/nwchem-6.8
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES="all"
export LARGE_FILES=TRUE
export USE_64TO32=y
export ARMCI_NETWORK=MPI-PR
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export USE_INTERNALBLAS=y
make nwchem_config |& tee config.log
make -j8 |& tee make.log
@ChrisDowning
Copy link
Author

To enable MKL:

  • Remove:
    export USE_INTERNALBLAS=y

  • Add:
    export BLASOPT="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_scalapack_ilp64 -lmkl_gf_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"

  • Between make nwchem_config... and make -j8 ..., add:
    make 64_to_32 |& tee lts.log

Gives ~11% performance boost on a simple benzene molecule CCSD(T) job using an Azure H8 instance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment