Update management of linear algebra libraries
commit99fd3d66909d8cfae17329a70296ea14e3a9b5b6
authorMark Abraham <mark.j.abraham@gmail.com>
Mon, 11 Mar 2013 12:30:59 +0000 (11 13:30 +0100)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Thu, 25 Jul 2013 11:40:53 +0000 (25 13:40 +0200)
treee12caa5070b93676bc4089af466c04d1709943bc
parent24f960d3a6baa32cd458f81c592d05dcd462c4da
Update management of linear algebra libraries

Management of detection and/or linking to BLAS and LAPACK libraries is
re-organized. The code has migrated to its own module. This will
help future extension and maintenance. This version communicates
things that are newsworthy and stays out of the way when nothing
is changing.

We no longer over-write the values specified by the user for
GMX_EXTERNAL_(BLAS|LAPACK). Previously, this was used to signal
whether detection succeeded, but that does not really get the job
done. Instead, the user is notified that detection failed (repeatedly,
if they deliberately set such an option on).

Correct usage and expected behaviour in all cases is documented both
in the code and the install guide.

The user interface is pretty much unchanged. We still don't offer full
configurability (e.g. MKL for FFTs must use MKL for linear algebra
unless GMX_*_USER is used, and the only way to get MKL for linear
algebra is to use it for FFTs). The size of any performance difference
is probably very small, and if the user really needs mdrun with
certain FFT and tools with certain linear algebra library, they can do
two configurations. Note that mdrun never calls any linear algebra
routines (tested empirically)!

Expanded the solution of #771 by testing that the user supplied
libraries that actually work. If not, we emit a warning and try to use
them anyway.

We also now check that MKL really does provide linear algebra
routines, and fall back to the default treatment if it does not.

Refs #771,#1186

Change-Id: Ife5c59694e29a3ce73fc55975e26f6c083317d9b
CMakeLists.txt
admin/installguide/installguide.tex
cmake/gmxManageLinearAlgebraLibraries.cmake [new file with mode: 0644]
src/gmxlib/CMakeLists.txt