README.org 6.45 KB
Newer Older
1 2 3 4 5
#+TITLE: Chameleon: A dense linear algebra software for heterogeneous architectures
#+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

6 7 8 9 10 11
# gitlab-ci pipeline badge
#+HTML:<a href="https://gitlab.inria.fr/solverstack/chameleon/commits/master"><img alt="pipeline status"src="https://gitlab.inria.fr/solverstack/chameleon/badges/master/pipeline.svg"/></a>

# Coverity badge
#+HTML:<a href="https://scan.coverity.com/projects/chameleon"><img alt="Coverity Scan Build Status"src="https://scan.coverity.com/projects/10590/badge.svg"/></a>

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
Chameleon is a C library providing parallel algorithms to perform
BLAS/LAPACK operations exploiting fully modern architectures.

Chameleon dense linear algebra software relies on sequential
task-based algorithms where sub-tasks of the overall algorithms are
submitted to a Runtime system. Such a system is a layer between the
application and the hardware which handles the scheduling and the
effective execution of tasks on the processing units. A Runtime system
such as [[http://starpu.gforge.inria.fr/][StarPU]] is able to manage automatically data transfers between
not shared memory area (CPUs-GPUs, distributed nodes).

This kind of implementation paradigm allows to design high performing
linear algebra algorithms on very different type of architecture:
laptop, many-core nodes, CPUs-GPUs, multiple nodes. For example,
Chameleon is able to perform a Cholesky factorization
(double-precision) at 80 TFlop/s on a dense matrix of order 400 000
(i.e. 4 min). Chameleon is a sub-project of [[http://icl.cs.utk.edu/morse/][MORSE]] specifically
dedicated to dense linear algebra.

* Get Chameleon

  To use last development states of Chameleon, please clone the master
  branch. Note that Chameleon contains a ~git submodule~ *morse_cmake*.
  To get sources please use these commands:

  #+begin_src sh
    # if git version >= 1.9
    git clone --recursive git@gitlab.inria.fr:solverstack/chameleon.git
    cd chameleon
    # else
    git clone git@gitlab.inria.fr:solverstack/chameleon.git
    cd chameleon
    git submodule init
    git submodule update
  #+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
52
** User guide
53 54 55 56 57

   Please refer to the [[https://solverstack.gitlabpages.inria.fr/chameleon/users_guide.html][User guide]] to learn how to install and use
   Chameleon.

   The user guide is also available directly in the sources as emacs
58
   orgmode files, see :
59 60 61 62 63 64 65 66 67 68
   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
69

70 71 72 73 74 75
   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
76
   see the ~doc/orgmode~ directory.
77

78
** Source code documentation (doxygen)
79

80
   Please refer to the [[https://solverstack.gitlabpages.inria.fr/chameleon/doxygen/index.html][doxygen documentation]] to get more precise
81 82 83 84
   information about the API, the public and internal functions
   prototypes and the data structures.

   Please refer to the section 2.1 of [[file:READMEDEV.org][READMEDEV]] to get
85
   information about the documentation generation.
86

87
** For developers
88
   Please refer to the [[file:READMEDEV.org][READMEDEV]] page.
89

90
* Get involved!
91 92
** Mailing list

93
   To contact the developers send an email to
94 95 96 97
   [[mailto:morse-devel@lists.gforge.inria.fr][morse-devel@lists.gforge.inria.fr]]

** Contributions

98
  [[file:CONTRIBUTING.org][CONTRIBUTING]]
99 100 101 102 103 104 105 106 107 108

* Authors

 First, since the Chameleon library started as an extension of the
 PLASMA library to support multiple runtime systems, all developpers
 of the PLASMA library are developpers of the Chameleon library.

 The following people contributed to the development of Chameleon:
 * Emmanuel Agullo, PI
 * Olivier Aumage
109
 * Cedric Castagnede
110 111 112
 * Terry Cojean
 * Mathieu Faverge, PI
 * Nathalie Furmento
113
 * Reazul Hoque
114
 * Hatem Ltaief
115
 * Gregoire Pichon
Mathieu Faverge's avatar
Mathieu Faverge committed
116
 * Florent Pruvost, PI
117 118
 * Marc Sergent
 * Guillaume Sylvand
119
 * Samuel Thibault
120
 * Stanimire Tomov
121 122 123 124 125 126
 * Omar Zenati

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

* Citing Chameleon

127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
Feel free to use the following publications to reference Chameleon:

  * Original paper that initiated Chameleon and the principles:
    - Agullo, Emmanuel and Augonnet, Cédric and Dongarra, Jack and
      Ltaief, Hatem and Namyst, Raymond and Thibault, Samuel and Tomov,
      Stanimire, *Faster, Cheaper, Better -- a Hybridization Methodology
      to Develop Linear Algebra Software for GPUs*, /GPU Computing Gems/,
      [[https://hal.inria.fr/inria-00547847][First Online: 17 December 2010]].
  * Design of the QR algorithms:
    - Agullo, Emmanuel and Augonnet, Cédric and Dongarra, Jack and
      Faverge, Mathieu and Ltaief, Hatem and Thibault, Samuel an
      Tomov, Stanimire, *QR Factorization on a Multicore Node Enhanced
      with Multiple GPU Accelerators*, /25th IEEE International Parallel
      & Distributed Processing Symposium/, [[https://hal.inria.fr/inria-00547614][First Online: 16 December
      2010]].
  * Design of the LU algorithms:
    - Agullo, Emmanuel and Augonnet, Cédric and Dongarra, Jack and
      Faverge, Mathieu and Langou, Julien and Ltaief, Hatem and Tomov,
      Stanimire, *LU Factorization for Accelerator-based Systems*,
      /9th ACS/IEEE International Conference on Computer Systems and
      Applications (AICCSA 11)/, [[https://hal.inria.fr/hal-00654193][First Online: 21 December 2011]].
  * Regarding distributed memory:
    - Agullo, Emmanuel and Aumage, Olivier and Faverge, Mathieu and
      Furmento, Nathalie and Pruvost, Florent and Sergent, Marc and
      Thibault, Samuel, *Achieving High Performance on Supercomputers
      with a Sequential Task-based Programming Model*, /Research Report/,
      [[https://hal.inria.fr/hal-01332774][First Online: 16 June 2016]].
154 155 156

* Licence

157
  [[file:LICENCE.txt][LICENCE]]