build:linear_algebra
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
build:linear_algebra [2017/04/11 08:40] – Yann Pouillon | build:linear_algebra [2019/08/26 12:29] (current) – Jean-Michel Beuken | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | <WRAP important> | + | <WRAP important> |
====== Configuring linear algebra ====== | ====== Configuring linear algebra ====== | ||
Line 18: | Line 18: | ||
===== Linear algebra flavors ===== | ===== Linear algebra flavors ===== | ||
- | For sake of clarity, we provide here 3 different perspectives on the linear algebra flavors supported by Abinit and their relationships with the other concepts. The build system lets you configure linear algebra from each of these 3 perspectives, | + | For sake of clarity, we provide here 3 different perspectives on the linear algebra flavors supported by Abinit and their relationships with the other concepts. The build system lets you configure linear algebra from each of these 3 perspectives, |
+ | * a vendor-first approach, where the criterion is to use as many components as possible from the same vendor; | ||
+ | * an architecture-first approach, where the components are selected depending on which elements of the computer architecture are enabled (e.g. OpenMP, MPI, GPU, ...); | ||
+ | * a component-first approach, where you specify explicitly each linear algebra component (e.g. BLAS, LAPACK, ScaLAPACK, ...) you want to use. | ||
The following table lists the available flavors supported by Abinit and their relationships with the other relevant concepts: | The following table lists the available flavors supported by Abinit and their relationships with the other relevant concepts: | ||
Line 27: | Line 30: | ||
| elpa2014 | [[http:// | | elpa2014 | [[http:// | ||
| elpa2015 | [[http:// | | elpa2015 | [[http:// | ||
+ | | elpa2016 | [[http:// | ||
+ | | elpa2017 | [[http:// | ||
| essl | [[http:// | | essl | [[http:// | ||
| magma10 | | magma10 | ||
| magma15 | | magma15 | ||
- | | mkl | [[http:// | + | | magma25 |
+ | | mkl | [[http:// | ||
| netlib | | netlib | ||
| openblas | [[https:// | | openblas | [[https:// | ||
| plasma1 | | plasma1 | ||
- | By default, | + | Please refer to the instructions of each vendor listed above by clicking |
===== Automatic detection ===== | ===== Automatic detection ===== | ||
- | If you do not specify any linear algebra option, the build system will use an internal heuristic to look for linear algebra libraries and enable/ | + | By default, the build system assumes that you want the fastest possible |
+ | |||
+ | In the absence of any option, the build system will use an internal heuristic to look for linear algebra libraries and enable/ | ||
- If a compiler vendor has a preferred linear algebra implementation, | - If a compiler vendor has a preferred linear algebra implementation, | ||
- If a build framework such as [[https:// | - If a build framework such as [[https:// | ||
Line 45: | Line 53: | ||
- If everything else fails, the build system will look for a standard Netlib implementation available system-wide. | - If everything else fails, the build system will look for a standard Netlib implementation available system-wide. | ||
- | This selection and detection process is optimized | + | In all cases, the build system will try to mitigate side-effects on other components, e.g. FFT, but there is no guarantee that it will succeed by itself. |
===== Linear algebra options ===== | ===== Linear algebra options ===== | ||
Line 54: | Line 62: | ||
You can tune the detection mechanism through the // | You can tune the detection mechanism through the // | ||
- | * by just specifying a plus-separated list of flavors, in which case the build system will figure out how to assign which flavor to which component; | + | * by just specifying a plus-separated list of flavors, in which case the build system will figure out how to assign which flavor to which component |
* architecture-wise, | * architecture-wise, | ||
* component-wise, | * component-wise, |
build/linear_algebra.1491900048.txt.gz · Last modified: 2017/04/11 08:40 by Yann Pouillon