diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index b2fd3dba263bc1ec30415efd75ce9bd421496f14..0000000000000000000000000000000000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,60 +0,0 @@ -# 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 -``` diff --git a/CONTRIBUTING.org b/CONTRIBUTING.org new file mode 100644 index 0000000000000000000000000000000000000000..2fcd841359e658c0e33720c5732a699c9eb3a4ca --- /dev/null +++ b/CONTRIBUTING.org @@ -0,0 +1,62 @@ +* 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 diff --git a/README-dev.md b/README-dev.md deleted file mode 100644 index c8304113622694037133234a99c6ab0c9d6d84f5..0000000000000000000000000000000000000000 --- a/README-dev.md +++ /dev/null @@ -1,76 +0,0 @@ -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 diff --git a/README-dev.org b/README-dev.org new file mode 100644 index 0000000000000000000000000000000000000000..faa445740708393c3a21973bf47b99b28fc9a189 --- /dev/null +++ b/README-dev.org @@ -0,0 +1,89 @@ +#+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?). diff --git a/README.md b/README.md deleted file mode 100644 index ea7ab869fb393ead05e437f04d5aecaef9d7c794..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,120 +0,0 @@ -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 diff --git a/README.org b/README.org new file mode 100644 index 0000000000000000000000000000000000000000..b21fd10c064d124376dcf503e2c4d762b0ae7571 --- /dev/null +++ b/README.org @@ -0,0 +1,113 @@ +#+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