Skip to content

Compilation instructions for NERSC Cori

Xavier Andrade edited this page Aug 6, 2019 · 4 revisions

This is how to compile qball on cori. It is fairly simple as all the libraries needed are already installed in the machine.

First download Qball for github:

git clone https://github.com/LLNL/qball.git

Enter the new directory:

cd qball/

and create the configuration files (this is part of the autotools framework that Qball uses to configure and compile the program)

autoreconf -i

Now we select the compilers and other libraries we want to use

module load gcc
module load openmpi
module load cray-fftw

We set some environment variables to tell the compiler flags and the location of the linear algebra libraries

export CXXFLAGS="-O3 -ffast-math"
export CFLAGS="-O3 -ffast-math"
export FCFLAGS="-O3 -ffast-math"
export LIBS_BLAS="${MKLROOT}/lib/intel64/libmkl_scalapack_lp64.a -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_gf_lp64.a ${MKLROOT}/lib/intel64/libmkl_gnu_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -lgomp -lpthread -lm -ldl"

and finally we run the configure script, telling it that we want qball installed in our home directory

./configure --prefix=$HOME --with-fftw3-prefix=$FFTW_DIR/../

Now compile and install with

make -j4 install

Now you should have a qball binary in your home. (check with ls ~/bin).

To check that it works run

$HOME/bin/qball

and you should see something like this

<?xml version="1.0" encoding="UTF-8"?>
<!--

                   ___________________________
                   |                         |
                   | qball alsos             |
                   |                         |
                   |                         |
                   |                         |
                   |                         |
                   |                         |
                   |                         |
                   |                         |
                   |                         |
                   |      Lawrence Livermore |
                   |     National Laboratory |
                   |                         |
                   | Copyright (c) 2003-2016 |
                   |_________________________|

-->
<qbox:simulation xmlns:qbox="http://www.quantum-simulation.org/ns/fpmd/fpmd-1.0">
<release> qball alsos </release>
<npes> 1 </npes>
<nthreads> 64 </nthreads>
<!-- [qball] 

If you do, congratulations, you have compiled Qball sucessfully.

Now you can go have a beer, unless you are doing the Qball tutorial. In that case finish the tutorial and then go get a beer.

Clone this wiki locally