README.org 4.47 KB
Newer Older
1 2 3 4 5 6 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
#+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

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

  There is no up-to-date documentation of Chameleon.  We would like to
48 49 50
  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.
51 52 53 54

  The documentation of Chameleon's last release is available here:
  [[http://morse.gforge.inria.fr/chameleon/0.9.1/chameleon_users_guide-0.9.1.html][chameleon-0.9.1 documentation]].

55 56 57 58
** For developers

   [[file:READMEDEV.org][READMEDEV]]

59 60 61 62 63 64 65 66 67
* Installation

** Distribution of Chameleon

  To get support to install a full distribution (Chameleon +
  dependencies) we encourage users to use the morse branch of *Spack*.

  Please read these documentations:

68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
  * [[http://morse.gforge.inria.fr/spack/spack.html][Spack Morse]]
  * [[http://morse.gforge.inria.fr/spack/spack.html#sec-2-1][Section Chameleon]]

*** Usage example for a simple distribution of Chameleon

    #+begin_src sh
    git clone https://github.com/solverstack/spack.git
    . ./spack/share/spack/setup-env.sh
    spack install -v chameleon
    # chameleon is installed here:
    `spack location -i chameleon`
    #+end_src

** Build and install with CMake

  Chameleon can be built using [[https://cmake.org/][CMake]]. This installation requires to
  have some library dependencies already installed on the system.

  Please refer to [[http://morse.gforge.inria.fr/chameleon/0.9.1/chameleon_users_guide-0.9.1.html#Installing-CHAMELEON][chameleon-0.9.1]] to get configuration information.
87 88 89 90 91

* Get involved!

** Mailing list

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

** Contributions

97
  [[file:CONTRIBUTING.org][CONTRIBUTING]]
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

* 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
 * Cedric castagnede
 * Terry Cojean
 * Mathieu Faverge, PI
 * Nathalie Furmento
 * Reazul Hoque, PaRSEC support
 * Gregoire Pichon, Two-sided algorithms
 * Florent Pruvost, PI, CMake and Spack
 * Marc Sergent
 * Guillaume Sylvand
 * Samuel Thibault, StarPU support
 * Omar Zenati

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

* Citing Chameleon

  TODO

* Licence

128
  [[file:LICENCE.txt][LICENCE]]