README.org 5.21 KB
Newer Older
Mathieu Faverge's avatar
Mathieu Faverge committed
1 2 3 4 5
#+TITLE: HQR: A library to generate hierachical trees adapted to distributed mnay-cores architectures for QR/LQ tile algorithms
#+LANGUAGE:  en
#+OPTIONS: H:3 num:t \n:nil @:t ::t |:t _:nil ^:nil -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil pri:nil tags:not-in-toc html-style:nil

Mathieu Faverge's avatar
Mathieu Faverge committed
6
[[https://gitlab.inria.fr/solverstack/hqr/pipelines][https://gitlab.inria.fr/solverstack/hqr/badges/master/pipeline.svg]] [[https://gitlab.inria.fr/solverstack/hqr/commits/master][https://gitlab.inria.fr/solverstack/hqr/badges/master/coverage.svg]]
Mathieu Faverge's avatar
Mathieu Faverge committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91

HQR is a C library providing tools to generate hierachical trees
adapted to 2D block-cyclic data distribution and algorithms based on
tiled QR/algorithms. This library is used in [[https://gitlab.inria.fr/solverstack/chameleon][Chameleon]] and [[https://bitbucket.org/mfaverge/parsec][DPLASMA]].

This libraries provides generation of trees for various configuration
and intent to provide an automatically generated tree adapted to the
matrix size, and the targetted architecture.

Tools to draw the trees in SVG and DOT formats are provided to display
the generated trees and debug applications, as well as tools to
provide critical path length.

* Get HQR

  To use last development states of the HQR library, please clone the master
  branch. Note that Chameleon already contains the HQR library as a submodule.
  To get sources please use these commands:

  #+begin_src sh
    git clone git@gitlab.inria.fr:solverstack/hqr.git
  #+end_src

  Last releases of Chameleon are hosted on the [[https://gforge.inria.fr/frs/?group_id=2884][gforge.inria.fr]] for
  now. Future releases will be available on this gitlab project.

# * Documentation
# ** User guide
#    The user guide is available directly in the sources as emacs
#    orgmode files, see :
#    1) [[file:doc/orgmode/chapters/introduction.org][Introduction]] : description of the scientific context
#    2) [[file:doc/orgmode/chapters/installing.org][Installing]] :
#       * Getting Chameleon
#       * Prerequisites for installing Chameleon
#       * Distribution of Chameleon using Spack
#       * Build and install Chameleon with CMake
#    3) [[file:doc/orgmode/chapters/using.org][Using]] :
#       * Linking an external application with Chameleon libraries
#       * Using Chameleon executables
#       * Chameleon API

#    This documentation could also be generated in html and/or pdf :
#    #+begin_src
#    # build the doc with cmake (emacs with orgmode and latex are required), e.g.
#    cmake .. -DCHAMELEON_ENABLE_DOC=ON
#    make doc
#    #+end_src

# ** Source code documentation (doxygen)
#    There is no up-to-date documentation of Chameleon.  We would like to
#    provide a doxygen documentation hosted on [[https://about.gitlab.com/2016/04/07/gitlab-pages-setup/][gitlab]] in the
#    future. Please refer to the section 2.1 of [[file:READMEDEV.org][READMEDEV]] to get
#    information about the documentation generation.

# ** For developers
#    Please refer to the [[file:READMEDEV.org][READMEDEV]] page.

# * Get involved!
# ** Mailing list

#    To contact the developers send an email to
#    [[mailto:morse-devel@lists.gforge.inria.fr][morse-devel@lists.gforge.inria.fr]]

# ** Contributions

#   [[file:CONTRIBUTING.org][CONTRIBUTING]]

* Authors

 The following people contributed to the development of the HQR library:
 * Guillaume Aupy
 * Raphael Boucherie
 * Mathieu Faverge, PI
 * Thomas Herault
 * Mathias Jacquelin
 * Julien Langou
 * Yves Robert

 If we forgot your name, please let us know that we can fix that mistake.

* Citing HQR

Feel free to use the following publications to reference the HQR library:

  * Original paper that initiated the hierarcical QR algorithms:
Mathieu Faverge's avatar
Mathieu Faverge committed
92
    - Henricus Bouwmeester, Mathias Jacquelin, Julien Langou, Yves Robert. *Tiled QR factorization algorithms*, /in SC '11 Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis/ [[https://dl.acm.org/citation.cfm?id=2063393][acm]] [[https://arxiv.org/pdf/1104.4475.pdf][arxiv]]
Mathieu Faverge's avatar
Mathieu Faverge committed
93 94

  * Hierachical trees for distributed memory:
Mathieu Faverge's avatar
Mathieu Faverge committed
95
    - Jack Dongarra, Mathieu Faverge, Thomas Hérault, Mathias Jacquelin, Julien Langou, et Yves Robert. *Hierarchical QR factorization algorithms for multi-core clusters*. /Parallel Computing, Elsevier, 2013, 39 (4-5), pp.212-232/. [[http://dx.doi.org/10.1016/j.parco.2013.01.003][parco.2013.01.003]] [[https://hal.inria.fr/hal-00809770][hal-00809770]]
Mathieu Faverge's avatar
Mathieu Faverge committed
96 97

  * Systolic trees for the QR factorization:
Mathieu Faverge's avatar
Mathieu Faverge committed
98
    - Guillaume Aupy, Mathieu Faverge, Yves Robert, Jakub Kurzak, Piotr Luszczek, et Jack Dongarra. *Implementing a systolic algorithm for QR factorization on multicore clusters with PaRSEC*. /PROPER 2013 - 6th Workshop on Productivity and Performance, Aug 2013, Aachen, Germany. 2013/. [[https://hal.inria.fr/hal-00844492][hal-00844492]]
Mathieu Faverge's avatar
Mathieu Faverge committed
99 100

  * Adapted trees to Bi-diagonalization algorithms:
Mathieu Faverge's avatar
Mathieu Faverge committed
101
    - Mathieu Faverge, Julien Langou, Yves Robert, Jack Dongarra. *Bidiagonalization and R-Bidiagonalization: Parallel Tiled Algorithms, Critical Paths and Distributed-Memory Implementation.* /IPDPS'17 - 31st IEEE International Parallel and Distributed Processing Symposium, May 2017, Orlando, United States. 2017/, [[http://ipdps.org][ipdps]] [[https://hal.inria.fr/hal-01484113][hal-01484113]]
Mathieu Faverge's avatar
Mathieu Faverge committed
102 103 104

# * Licence

Mathieu Faverge's avatar
Mathieu Faverge committed
105
  #   [[file:LICENCE.txt][LICENCE]]