User Tools

Site Tools


developers:buildsys:internals

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
developers:buildsys:internals [2020/08/10 12:26] – [Build-system internals] Xavier Gonzedevelopers:buildsys:internals [2021/08/31 15:45] (current) – [Linear algebra] Jean-Michel Beuken
Line 3: Line 3:
 ===== Target audience ===== ===== Target audience =====
  
-This document is for all Abinit developers who want to understand how the build system works, for Abinit maintainers who want to hack the build system, and for collaborators who want to enhance the interoperability of their projects with Abinit.+This document contains miscellaneous information about the build system
 +Might contain helpful info for Abinit maintainers who want to hack the build system, and for collaborators who want to enhance the interoperability of their projects with Abinit.
  
 ===== Linear algebra ===== ===== Linear algebra =====
Line 9: Line 10:
 The following simplified diagram summarizes how the build system detects linear algebra features. The starting point is colored in blue, the ending point in green, and the decision points in pink. Enhancements are framed with dashed lines. The following simplified diagram summarizes how the build system detects linear algebra features. The starting point is colored in blue, the ending point in green, and the decision points in pink. Enhancements are framed with dashed lines.
  
-<ditaa+{{ :developers:buildsys:ditaa.png?800 |}}
-                                                   /-----------+ +
-                                                   |cBLU Start | +
-                                                   +-----+-----/ +
-                                                         | +
-                                                         v +
-                                          no /-----------+-----------\ yes +
-                              +--------------+cPNK with_linalg_libs+--------------+ +
-                                           \-----------------------/              | +
-                              v                                                     v +
-               no /-----------+-------------\ yes                    +--------------+----------------+ +
-             +----+cPNK with_linalg_flavor? +-----+                  | Identify available components | +
-                \-------------------------/                      +--------------+----------------+ +
-                                                v                                 | +
- +-----------+------------+             +---------+---------+                       v +
- | Set up parameters from |             | Look for flavored |          /------------+------------\ no +
- | CPU and Fortran vendors|              linear algebra            |cPNK with_linalg_flavor? +---------+ +
- +-----------+------------+                components              \------------+------------/         | +
-                                      +---------+---------+                       |yes                   | +
-                                                |                                                      | +
-                                                |                                                      | +
-     /-------+------\ no                          |                 +---------------+----------------+     v +
-     |cPNK OpenMP?  +--------+                    +---------------->+ Check flavor-specific features +---->+
-     \-------+------/        |                                      +--------------------------------+     | +
-             |yes            |                                                                             | +
-                                                                                                       | +
-    +-=------+--------+      |                                                                             | +
-    | Look for PLASMA |      |                                                                             | +
-    +--------+--------+      |                                                                             | +
-                                                                                                       | +
-             *<--------------+                                                                             | +
-                                                                                                         | +
-                                                                                                         | +
-        /----+-----\ no                                                                                    | +
-+-------+cPNK MPI? |                                                                                       | +
-|       \----+-----/                                                                                       | +
-|            |yes                                                                                          | +
-|            |                                                                                             | +
-|            v                                                                                             | +
-| +----------+----------+         +-=-------------+              /----------\ yes     +-=--------------+   v +
-| | Look for ScaLAPACK  +-------->+ Look for ELPA +------------->|cPNK GPU? +-------->+ Look for MAGMA +-->* +
-| +---------------------+         +---------------+              \-----+----/         +----------------+   | +
-|                                                                      |no                                 | +
-|                                                                      v                                   | +
-+------------------------------------------------------->*<------------*-----------------------------------+ +
-                                                         | +
-                                                         | +
-                                                         v +
-                                                    /----+-----+ +
-                                                    |cGRE Done | +
-                                                    +----------/ +
-</ditaa>+
  
 The driving parameter of the detection process is the //with_linalg_libs// option. When specified, the locations of the libraries are known but their features are unknown. When not specified, the other options of configure provide hints on what should be looked for, but the possible locations and names of the libraries are only partly known. Enters the //with_linalg_flavor// option into play, orientating the search for libraries and/or features. As can be seen here, the most influencing parameters are the kinds of parallelisms selected at configure-time. They determine the number of tests performed and the priorities attributed to each linear algebra component. For sake of simplicity, we will not go any further into the details, the essential being the overall picture and the interactions between the involved options of //configure//. The driving parameter of the detection process is the //with_linalg_libs// option. When specified, the locations of the libraries are known but their features are unknown. When not specified, the other options of configure provide hints on what should be looked for, but the possible locations and names of the libraries are only partly known. Enters the //with_linalg_flavor// option into play, orientating the search for libraries and/or features. As can be seen here, the most influencing parameters are the kinds of parallelisms selected at configure-time. They determine the number of tests performed and the priorities attributed to each linear algebra component. For sake of simplicity, we will not go any further into the details, the essential being the overall picture and the interactions between the involved options of //configure//.
developers/buildsys/internals.1597055183.txt.gz · Last modified: 2020/08/10 12:26 by Xavier Gonze