Commit 42bb7030 authored by PRUVOST Florent's avatar PRUVOST Florent

convert md files into org-mode files

parent 1d472c5c
# To contribute to the project, you need to do it through pull/merge request
First you need to fork the repository into your own account. You can do that simply by clicking the fork button on the gitlab interface.
https://gitlab.inria.fr/solverstack/chameleon/forks/new
Then, clone the repository on your laptop:
```
#!shell
git clone git@gitlab.inria.fr:username/forkname.git
```
Once this is done, you can setup the chameleon repository as the upstream of your clone to simplify the update of your fork repository.
```
#!shell
git remote add upstream git@gitlab.inria.fr:solverstack/chameleon.git
```
To update your fork with the upstream chameleon's state:
```
#!shell
git pull upstream master
git push -u origin master
```
Now, you have your repository configured, and you want to create a new pull request. The first step is to create a branch from the HEAD of the your fork repository.
```
#!shell
git branch your_branch_name
git checkout your_branch_name
```
Apply your modifications in your branch. Then, you need to push this branch on your online repository
```
#!shell
git push -f origin your_branch_name
```
or without -f, if the branch already exists online, and you just want to update it.
Once your branch is online, on the gitlab interface, go to the branches webpage, select the branch you want to push as a merge request, and push the button !!!
***Be careful to check the 'close after merge' check box, and to push to the solverstack/chameleon repository*** By default the checkbox is not checked, and the default repository is your fork.
# To review locally a private pull request submitted by someone else
Get the patch from the pull request (Need to update that !!!! Coming from bitbucket)
```
#!shell
curl https://bitbucket.org/api/2.0/repositories/icldistcomp/parsec/pullrequests/#PR/patch > pr#PR.patch
```
Than apply the patch on your local copy
```
#!shell
git apply pr#PR.patch
```
* To contribute to the project, you need to do it through pull/merge request
First you need to fork the repository into your own account. You can
do that simply by clicking the fork button on the gitlab interface.
https://gitlab.inria.fr/solverstack/chameleon/forks/new
Then, clone the repository on your laptop:
#+begin_src sh
git clone git@gitlab.inria.fr:username/forkname.git
#+end_src
Once this is done, you can setup the chameleon repository as the
upstream of your clone to simplify the update of your fork
repository.
#+begin_src sh
git remote add upstream git@gitlab.inria.fr:solverstack/chameleon.git
#+end_src
To update your fork with the upstream chameleon's state:
#+begin_src sh
git pull upstream master
git push -u origin master
#+end_src
Now, you have your repository configured, and you want to create a
new pull request. The first step is to create a branch from the HEAD
of the your fork repository.
#+begin_src sh
git branch your_branch_name
git checkout your_branch_name
#+end_src
Apply your modifications in your branch. Then, you need to push this
branch on your online repository
#+begin_src sh
git push -f origin your_branch_name
#+end_src
or without -f, if the branch already exists online, and you just
want to update it.
Once your branch is online, on the gitlab interface, go to the
branches webpage, select the branch you want to push as a merge
request, and push the button !!!
*Be careful to check the 'close after merge' check box, and to push
to the solverstack/chameleon repository*. By default the checkbox is
not checked, and the default repository is your fork.
* To review locally a private pull request submitted by someone else
Get the patch from the pull request (Need to update that !!!!
Coming from bitbucket)
#+begin_src sh
curl https://bitbucket.org/api/2.0/repositories/icldistcomp/parsec/pullrequests/#PR/patch > pr#PR.patch
#+end_src
Then apply the patch on your local copy
#+begin_src sh
git apply pr#PR.patch
#+end_src
README for developers
====================
This page is dedicated to rules and conventions that Chameleon's
developers must follow and that should be read by contributors.
Gitlab flow: how to contribute to Chameleon
---------------------
Please read and follow guidelines given here:
https://gitlab.inria.fr/solverstack/chameleon/blob/master/CONTRIBUTING.md
### Update submodules
Chameleon git project depends on a "submodule" git, located in
cmake_modules/morse_cmake and hosted here
https://gitlab.inria.fr/solverstack/morse_cmake.
To update this submodule to the last development state, follow these
steps:
```
#!shell
git submodule update --remote cmake_modules/morse_cmake
git commit cmake_modules/morse_cmake -m "update morse_cmake submodule"
git push --recurse-submodules=check
```
Documentation
---------------------
### Generate the documentation
#### Prerequisites
To generate the documentation you need to have
[Doxygen](http://www.stack.nl/~dimitri/doxygen/) and
[Texinfo](https://www.gnu.org/software/texinfo/) installed on your
system.
For example, on Debian systems:
```
#!shell
sudo apt install doxygen texinfo
```
#### configure + make documentation
Enter into the Chameleon's source root directory and configure with
*CHAMELEON_ENABLE_DOCS=ON*, then generate the documentation with `make
docs`
```
#!shell
cd chameleon
mkdir build && cd build
cmake .. -DCHAMELEON_ENABLE_DOCS=ON
make docs
```
### Rules about source code documentation
TODO - Write here the rules to document source code inside chameleon.
Packaging
---------------------
TODO - Write here the steps to create a new release:
- what needs to be checked (ctest, docummentation, version, ...)
- how to generate the package .tar.gz
- what and where to publish externally
Naming and writting conventions
---------------------
TODO - Write here the rules and conventions used in the source code.
\ No newline at end of file
#+TITLE: README for developers
#+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
This page is dedicated to rules and conventions that Chameleon's
developers must follow and that should be read by contributors.
* Gitlab flow: how to contribute to Chameleon
Please read and follow guidelines given in the [[https://gitlab.inria.fr/solverstack/chameleon/blob/master/CONTRIBUTING.md][CONTRIBUTING file]].
** Update submodules
Chameleon git project depends on a "submodule" git, located in
cmake_modules/morse_cmake and hosted here
https://gitlab.inria.fr/solverstack/morse_cmake.
To update this submodule to the last development state, follow
these steps:
#+begin_src sh
git submodule update --remote cmake_modules/morse_cmake
git commit cmake_modules/morse_cmake -m "update morse_cmake submodule"
git push --recurse-submodules=check
#+end_src
* Documentation
** Generate the documentation
*** Prerequisites
To generate the documentation you need to have [[http://www.stack.nl/~dimitri/doxygen/][Doxygen]] and
[[https://www.gnu.org/software/texinfo/][Texinfo]] installed on your system.
For example, on Debian systems:
#+begin_src sh
sudo apt install doxygen texinfo
#+end_src
*** configure + make documentation
Enter into the Chameleon's source root directory and configure
with *CHAMELEON_ENABLE_DOCS=ON*, then generate the documentation
with ~make docs~
#+begin_src sh
cd chameleon
mkdir build && cd build
cmake .. -DCHAMELEON_ENABLE_DOCS=ON
make docs
#+end_src
** Rules about source code documentation
TODO - Write here the rules to document source code inside chameleon.
* Naming and writting conventions
TODO - Write here the rules and conventions used in the source code.
* Packaging
A Chameleon's release is a source package, of the form
chameleon-major.minor.patch.tar.gz, which:
1) has been properly tested,
2) contains a generated documentation corresponding to the released version,
3) is published on internet.
** Test Chameleon before packaging
TODO - Write the way we could systematically test Chameleon before
packaging, for example writting a script (generated from this
org-mode file) to be used on PlaFRIM plus some specific ctest
tests.
** Source tarball generation
#+begin_src sh
export CHAMELEON_ROOT=/path/to/chameleon/sources/to/be/released
cmake $CHAMELEON_ROOT -DCHAMELEON_ENABLE_DOCS=ON
make docs && cp docs/texinfo/users_guide.pdf $CHAMELEON_ROOT && make package_source
#+end_src
** Publish the release on internet
TODO - Write how to publish the source tarball, especially where
(gforge, gitlab, elsewhere?).
Chameleon: A dense linear algebra software for heterogeneous architectures
====================
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 [StarPU](http://starpu.gforge.inria.fr/) 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
[MORSE](http://icl.cs.utk.edu/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:
# 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
Last releases of Chameleon are hosted on the
[gforge.inria.fr](https://gforge.inria.fr/frs/?group_id=2884) 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
provide a doxygen documentation hosted on
[gitlab](https://about.gitlab.com/2016/04/07/gitlab-pages-setup/) in
the future.
The documentation of Chameleon's last release is available here:
[chameleon-0.9.1
documentation](http://morse.gforge.inria.fr/chameleon/0.9.1/chameleon_users_guide-0.9.1.html)
Installation
---------------------
### Build and install with CMake
Chameleon can be built using [CMake](https://cmake.org/). This
installation requires to have some library dependencies already
installed on the system.
Please refer to the
[chameleon-0.9.1](http://morse.gforge.inria.fr/chameleon/0.9.1/chameleon_users_guide-0.9.1.html#Installing-CHAMELEON)
to get configuration information.
### 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:
* [Spack Morse](http://morse.gforge.inria.fr/spack/spack.html).
* [Section Chameleon](http://morse.gforge.inria.fr/spack/spack.html#sec-2-1).
Get involved!
---------------------
### Mailing list
TODO
### Contributions
https://gitlab.inria.fr/solverstack/chameleon/blob/master/CONTRIBUTING.md
### 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
https://gitlab.inria.fr/solverstack/chameleon/blob/master/LICENCE.txt
#+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
provide a doxygen documentation hosted on [[https://about.gitlab.com/2016/04/07/gitlab-pages-setup/][gitlab]] in the future.
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]].
* Installation
** 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 the [[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.
** 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:
* [[http://morse.gforge.inria.fr/spack/spack.html][Spack Morse]].
* [[http://morse.gforge.inria.fr/spack/spack.html#sec-2-1][Section Chameleon]].
* Get involved!
** Mailing list
To contact the developers send an email at
[[mailto:morse-devel@lists.gforge.inria.fr][morse-devel@lists.gforge.inria.fr]]
** Contributions
https://gitlab.inria.fr/solverstack/chameleon/blob/master/CONTRIBUTING.md
* 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
https://gitlab.inria.fr/solverstack/chameleon/blob/master/LICENCE.txt
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment