Skip to content
Anton Kozhevnikov edited this page Jan 24, 2020 · 8 revisions

We use EasyBuild to compile libraries and software at CSCS. See also the CSCS EasyBuild Documentation.

Build with GNU programming environment

Fist, you need to build the necessary modules if you don't have them already:

module load daint-gpu
module load EasyBuild-custom/cscs

eb GSL-2.5-CrayGNU-19.10.eb -r
eb libxc-4.3.4-CrayGNU-19.10.eb -r
eb magma-2.5.2-CrayGNU-19.10-cuda-10.1-mkl.eb -r
eb spglib-1.14.1-CrayGNU-19.10.eb -r
eb SpFFT-0.9.10-CrayGNU-19.10-cuda-10.1-mkl.eb -r

and then configure the environment like this:

module swap PrgEnv-cray PrgEnv-gnu
module load cray-hdf5
module load cudatoolkit
module load intel

module load daint-gpu
module load EasyBuild-custom/cscs

module load GSL/2.5-CrayGNU-19.10
module load libxc/4.3.4-CrayGNU-19.10
module load magma/2.5.2-CrayGNU-19.10-cuda-10.1-mkl
module load spglib/1.14.1-CrayGNU-19.10
module load SpFFT/0.9.10-CrayGNU-19.10-cuda-10.1-mkl

module load CMake/3.14.5
module load cray-python/3.6.5.7
module unload cray-libsci
module unload cray-libsci_acc
module unload perftools-base

Then you can configure and build SIRIUS with the following command: Then configure and build SIRIUS with the following command:

git clone --recursive https://github.com/electronic-structure/SIRIUS.git
mkdir SIRIUS/build
cd SIRIUS/build
cmake ../ -DUSE_CUDA=1 -DGPU_MODEL='P100' -DCMAKE_INSTALL_PREFIX=$HOME/local -DUSE_MKL=1 -DBUILD_TESTS=1 -DUSE_MAGMA=1 -DCMAKE_BUILD_TYPE=Release -DCREATE_PYTHON_MODULE=1 -DUSE_SCALAPACK=1 -DCREATE_FORTRAN_BINDINGS=1 -DSpFFT_DIR=$EBROOTSPFFT/lib/cmake/SpFFT
make -j install

Build with Intel programming environment

To build the necessary modules, run:

module load daint-gpu
module load EasyBuild-custom/cscs
eb GSL-2.5-CrayIntel-19.10.eb -r
eb libxc-4.3.4-CrayIntel-19.10.eb -r
eb magma-2.5.2-CrayIntel-19.10-cuda-10.1.eb -r
eb spglib-1.14.1-CrayIntel-19.10.eb -r
eb ELPA-2019.05.002-CrayIntel-19.10.eb -r
eb SpFFT-0.9.10-CrayIntel-19.10-cuda-10.1.eb -r

and then next time configure the environment like this:

module swap PrgEnv-cray PrgEnv-intel
module load cray-hdf5
module load cudatoolkit
module load gcc
module load intel

module load daint-gpu
module load EasyBuild-custom/cscs
module load GSL/2.5-CrayIntel-19.10
module load libxc/4.3.4-CrayIntel-19.10
module load magma/2.5.2-CrayIntel-19.10-cuda-10.1
module load spglib/1.14.1-CrayIntel-19.10
module load CMake/3.14.5
module load cray-python/3.6.5.7
module load ELPA/2019.05.002-CrayIntel-19.10
module load SpFFT/0.9.10-CrayIntel-19.10-cuda-10.1
module unload cray-libsci
module unload cray-libsci_acc
module unload perftools-base

To configure and build SIRIUS, run the following command:

git clone --recursive https://github.com/electronic-structure/SIRIUS.git
mkdir SIRIUS/build
cd SIRIUS/build
cmake ../ -DUSE_CUDA=1 -DGPU_MODEL='P100' -DCMAKE_INSTALL_PREFIX=$HOME/local -DUSE_MKL=1 -DBUILD_TESTS=1 -DUSE_MAGMA=1 -DCMAKE_BUILD_TYPE=Release -DCREATE_PYTHON_MODULE=1 -DUSE_SCALAPACK=1 -DUSE_ELPA=1 -DCREATE_FORTRAN_BINDINGS=1 -DSpFFT_DIR=$EBROOTSPFFT/lib/cmake/SpFFT
make -j install

Build using EasyBuild

You can also build SIRIUS with the following command:

module load daint-gpu
module load EasyBuild-custom/cscs
# GNU programming environment
eb SIRIUS-6.4.4-CrayGNU-19.10-cuda-10.1.eb -r
# Intel programming environment
eb SIRIUS-6.4.4-CrayIntel-19.10-cuda-10.1.eb -r