WEST for XC40

What Is WEST?

WEST is a Fortran/MPI scalable parallel implementation of large-scale electronic structure calculations within many-body perturbation theory. WEST is currently interfaced with Quantum Espresso planewave DFT software. As described on the WEST website http://west-code.org/, WEST is highly scalable and is used for calculations of solids, liquids, nanostructures, molecules, and interfaces, including samples with ~2000 electrons.

Using WEST at ALCF

ALCF does not officially support WEST software, but provides assistance with compiling executables. For questions, contact us at support@alcf.anl.gov.

How to Obtain the Code

WEST is an open-source code that can be downloaded at http://west-code.org/. Similarly, the Quantum Espresso code can be downloaded at http://quantum-espresso.org/. Check the WEST website for current information on supported algorithms.

Building on Theta

WEST currently requires a working PW executable from Quantum Espresso. Current information on installation details for both WEST and PW can be found at http://west-code.org/documentation.php. After Quantum Espresso and WEST codes have been downloaded and unpacked, the PW and WEST executables can be compiled using the following script in the qe-<version> directory.

> cat build_theta.sh

export BLAS_LIBS="-L$MKLROOT/intel64/lib -Wl,--start-group -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -Wl,--end-group"
export SCALAPACK_LIBS="-L$MKLROOT/intel64/lib -Wl,--start-group -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -Wl,--end-group"
export FFT_LIBS=""
export MPIF90="ftn -g -mkl"
export CC="cc -g -mkl"
export F77="ftn -g -mkl"
export FFLAGS="-xMIC-AVX512 -align array64byte -fp-model fast=2 -no-prec-div -assume byterecl"

./install/configure --host=x86_64-build-linux-gnu --build=x86_64-target-linux-gnu --enable-parallel --with-scalapack --enable-openmp

make pw -j 16

cd West

As newer versions of Quantum Espresso and WEST are released, check the corresponding websites for current information.

Running WEST Jobs on Theta

The following is an example script “run_west.csh” to run the wstat WEST executable on two nodes of Theta with 64 MPI ranks per node. The job can be submitted with command “qsub run_west.csh.”

> cat run_west.csh
#COBALT -n 2 -t 10 -q cache-quad -A project_name -O WEST

aprun -n 128 -N 64 -d 1 --cc depth -e OMP_NUM_THREADS=1 -j 1 ./wstat wstat.i
> qsub run_west.csh