Next: 2.5 Compilation
Up: 2 Installation
Previous: 2.3 configure
Contents
Subsections
2.4 Libraries
QUANTUM ESPRESSO makes use of the following external libraries:
- BLAS (http://www.netlib.org/blas/) and
- LAPACK (http://www.netlib.org/lapack/) for linear algebra
- FFTW (http://www.fftw.org/) for Fast Fourier Transforms
A copy of the needed routines is provided with the distribution. However,
when available, optimized vendor-specific libraries should be used: this
often yields huge performance gains.
QUANTUM ESPRESSO can use the following architecture-specific replacements for BLAS and LAPACK:
MKL for Intel Linux PCs
ACML for AMD Linux PCs
ESSL for IBM machines
SCSL for SGI Altix
SUNperf for Sun
If none of these is available, we suggest that you use the optimized ATLAS library: see
http://math-atlas.sourceforge.net/. Note that ATLAS is not
a complete replacement for LAPACK: it contains all of the BLAS, plus the
LU code, plus the full storage Cholesky code. Follow the instructions in the
ATLAS distributions to produce a full LAPACK replacement.
Sergei Lisenkov reported success and good performances with optimized
BLAS by Kazushige Goto. The library is now available under an
open-source license: see the GotoBLAS2 page at
http://www.tacc.utexas.edu/tacc-software/gotoblas2/.
QUANTUM ESPRESSO has an internal copy of an old FFTW version, and it
can use the following vendor-specific FFT libraries:
IBM ESSL
SGI SCSL
SUN sunperf
NEC ASL
configure will first search for vendor-specific FFT libraries;
if none is found, it will search for an external FFTW v.3 library;
if none is found, it will fall back to the internal copy of FFTW.
If you have recent versions (v.10 or later) of MKL installed, you
may use the FFTW3 interface provided with MKL. This can be directly
linked in MKL distributed with v.12 of the Intel compiler. In earlier
versions, only sources are distributed: you have to compile them and
to modify file make.sys accordingly
(MKL must be linked after the FFTW-MKL interface).
MPI libraries are usually needed for parallel execution
(unless you are happy with OpenMP multicore parallelization).
In well-configured machines, configure should find the appropriate
parallel compiler for you, and this should find the appropriate
libraries. Since often this doesn't
happen, especially on PC clusters, see Sec.2.7.6.
QUANTUM ESPRESSO can use the MASS vector math
library from IBM, if available (only on AIX).
The configure script attempts to find optimized libraries, but may fail
if they have been installed in non-standard places. You should examine
the final value of BLAS_LIBS, LAPACK_LIBS, FFT_LIBS, MPI_LIBS (if needed),
MASS_LIBS (IBM only), either in the output of configure or in the generated
make.sys, to check whether it found all the libraries that you intend to use.
If some library was not found, you can specify a list of directories to search
in the environment variable LIBDIRS,
and rerun configure; directories in the
list must be separated by spaces. For example:
./configure LIBDIRS="/opt/intel/mkl70/lib/32 /usr/lib/math"
If this still fails, you may set some or all of the *_LIBS variables manually
and retry. For example:
./configure BLAS_LIBS="-L/usr/lib/math -lf77blas -latlas_sse"
Beware that in this case, configure will blindly accept the specified value,
and won't do any extra search.
Next: 2.5 Compilation
Up: 2 Installation
Previous: 2.3 configure
Contents
paolo giannozzi
2015-03-08