Skip to content
Snippets Groups Projects
Commit c1533b10 authored by erwan's avatar erwan
Browse files

Docs: add the poster into the user guides

parent ab7c3b91
No related branches found
No related tags found
No related merge requests found
The user guide can be browsed at
https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/
- [TL;DR](#org1b29c61) - [TL;DR](#org7460992)
- [Topology](#org7ac1440) - [Topology](#org6b74c58)
- [Algorithms](#org15e10c7) - [Algorithms](#orge7cc59f)
- [Examples](#org6a40149) - [Examples](#org9fd0d11)
- [Batch mode](#orga9bce8f) - [Batch mode](#org72ad817)
- [Running batch simulations with Built-in demons](#org4866456) - [Running batch simulations with Built-in demons](#orgc56b42d)
- [Running batch simulations with manual demons](#orgf3df31d) - [Running batch simulations with manual demons](#org92cd9f2)
- [Running batch simulations with `lurette`](#org9d9ef24) - [Running batch simulations with `lurette`](#org0705ed8)
- [Viewing Results](#org477c3d3) - [Viewing Results](#orgd2e4baa)
- [The `sasa` CLI](#org262a057) - [The `sasa` CLI](#org8d9f6c5)
- [Interactive mode](#orgc6d5408) - [Interactive mode](#org6af6ee2)
- [Example: use `rdbg` from the `test/alea-coloring/` directory](#org9b78bb5) - [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgf6b37f1)
- [The exemples of test directory](#org2006456) - [The exemples of test directory](#org2913976)
- [Running interactive sessions with `rdbg`](#org964d57c) - [Running interactive sessions with `rdbg`](#org8931da2)
- [Getting `rdbg` on-line help](#orgf6c6506) - [Getting `rdbg` on-line help](#orgc066a85)
- [Useful Modules](#org911eaed) - [Useful Modules](#org07221ab)
- [Install](#orgf00383a) - [Install](#org02db332)
- [Via opam 2 (prefered method)](#orgd5a02ba) - [Via opam 2 (prefered method)](#org0c28ed7)
- [Via docker](#org4a9d80f) - [Via docker](#orgd84fbc0)
- [From source](#org0ce02ed) - [From source](#org193dfd6)
- [More](#orgc3319a2) - [More](#orgdadfb09)
- [FAQ](#org76c8af0) - [FAQ](#org96481a2)
- [Is there a FAQ?](#org3a27f5b) - [Is there a FAQ?](#orgefc66e1)
# Table of Contents # Table of Contents
1. [TL;DR](#org1b29c61) 1. [TL;DR](#org7460992)
2. [Topology](#org7ac1440) 2. [Topology](#org6b74c58)
3. [Algorithms](#org15e10c7) 3. [Algorithms](#orge7cc59f)
4. [Examples](#org6a40149) 4. [Examples](#org9fd0d11)
5. [Batch mode](#orga9bce8f) 5. [Batch mode](#org72ad817)
1. [Running batch simulations with Built-in demons](#org4866456) 1. [Running batch simulations with Built-in demons](#orgc56b42d)
2. [Running batch simulations with manual demons](#orgf3df31d) 2. [Running batch simulations with manual demons](#org92cd9f2)
3. [Running batch simulations with `lurette`](#org9d9ef24) 3. [Running batch simulations with `lurette`](#org0705ed8)
4. [Viewing Results](#org477c3d3) 4. [Viewing Results](#orgd2e4baa)
5. [The `sasa` CLI](#org262a057) 5. [The `sasa` CLI](#org8d9f6c5)
6. [Interactive mode](#orgc6d5408) 6. [Interactive mode](#org6af6ee2)
1. [Example: use `rdbg` from the `test/alea-coloring/` directory](#org9b78bb5) 1. [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgf6b37f1)
2. [The exemples of test directory](#org2006456) 2. [The exemples of test directory](#org2913976)
3. [Running interactive sessions with `rdbg`](#org964d57c) 3. [Running interactive sessions with `rdbg`](#org8931da2)
4. [Getting `rdbg` on-line help](#orgf6c6506) 4. [Getting `rdbg` on-line help](#orgc066a85)
5. [Useful Modules](#org911eaed) 5. [Useful Modules](#org07221ab)
7. [Install](#orgf00383a) 7. [Install](#org02db332)
1. [Via opam 2 (prefered method)](#orgd5a02ba) 1. [Via opam 2 (prefered method)](#org0c28ed7)
2. [Via docker](#org4a9d80f) 2. [Via docker](#orgd84fbc0)
3. [From source](#org0ce02ed) 3. [From source](#org193dfd6)
8. [More](#orgc3319a2) 8. [More](#orgdadfb09)
9. [FAQ](#org76c8af0) 9. [FAQ](#org96481a2)
1. [Is there a FAQ?](#org3a27f5b) 1. [Is there a FAQ?](#orgefc66e1)
<a id="org1b29c61"></a> <a id="org7460992"></a>
# TL;DR # TL;DR
SASA is a **Self-stabilizing Algorithms SimulAtor**, based on the so-called **atomic state model** introduced by <span class="underline">Dijkstra</span> in its seminal article on [Self-stabilizing distributed algorithms](http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF) SASA is a **Self-stabilizing Algorithms SimulAtor**, based on the so-called **Atomic State model** (ASM) introduced by <span class="underline">Dijkstra</span> in its seminal article on [Self-stabilizing distributed algorithms](http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF).
Basically, one needs to provide: Basically, one needs to provide:
1. a topology, made of nodes and transitions (via a dot file) 1. a topology, made of nodes and transitions (via a [dot](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) file)
2. the algorithms attached to nodes (via `ocaml` programs) 2. the algorithms attached to nodes (via [`ocaml`](https://ocaml.org/) programs)
The fastest way to get started is to copy the files provides in the `test/skeleton` directory, and to modify them: The fastest way to get started is to copy the files provided in the `test/skeleton` directory, and to modify them:
```sh ```sh
cd test cd test
...@@ -71,12 +71,12 @@ make ring.cmxs ...@@ -71,12 +71,12 @@ make ring.cmxs
sasa ring.dot sasa ring.dot
``` ```
![img](./sasabatch.svg)
The source code is available at <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa> The source code is available at <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa>
[![img](poster.png)](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf)
<a id="org7ac1440"></a> <a id="org6b74c58"></a>
# Topology # Topology
...@@ -139,7 +139,7 @@ Such parameters can be retreived in Algorithms using the `Algo.get_graph_attribu ...@@ -139,7 +139,7 @@ Such parameters can be retreived in Algorithms using the `Algo.get_graph_attribu
nb: a `Algo.diameter: unit -> int` function is provided, but it can be expensive to use. nb: a `Algo.diameter: unit -> int` function is provided, but it can be expensive to use.
<a id="org15e10c7"></a> <a id="orge7cc59f"></a>
# Algorithms # Algorithms
...@@ -151,7 +151,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren ...@@ -151,7 +151,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren
</div> </div>
<a id="org6a40149"></a> <a id="org9fd0d11"></a>
# Examples # Examples
...@@ -179,12 +179,14 @@ The `test` directory also contains sub-directories which gathers programs shared ...@@ -179,12 +179,14 @@ The `test` directory also contains sub-directories which gathers programs shared
- `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists). - `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists).
<a id="orga9bce8f"></a> <a id="org72ad817"></a>
# Batch mode # Batch mode
![img](./sasabatch.svg)
<a id="org4866456"></a> <a id="orgc56b42d"></a>
## Running batch simulations with Built-in demons ## Running batch simulations with Built-in demons
...@@ -209,7 +211,7 @@ sasa -h | grep "\-demon" ...@@ -209,7 +211,7 @@ sasa -h | grep "\-demon"
--custom-demon, -custd --custom-demon, -custd
<a id="orgf3df31d"></a> <a id="org92cd9f2"></a>
## Running batch simulations with manual demons ## Running batch simulations with manual demons
...@@ -236,7 +238,7 @@ It can also by simulated by [`lutin`](http://www-verimag.imag.fr/DIST-TOOLS/SYNC ...@@ -236,7 +238,7 @@ It can also by simulated by [`lutin`](http://www-verimag.imag.fr/DIST-TOOLS/SYNC
Built-in demons can of course be programmed in Lutin. One can generate such demons using the `--gen-lutin-demon` option: `sasa --gen-lutin-demon a_graph.dot`. It can be handy at least to get the demons variables names in the good order if one to write its own demon. Built-in demons can of course be programmed in Lutin. One can generate such demons using the `--gen-lutin-demon` option: `sasa --gen-lutin-demon a_graph.dot`. It can be handy at least to get the demons variables names in the good order if one to write its own demon.
<a id="org9d9ef24"></a> <a id="org0705ed8"></a>
## Running batch simulations with `lurette` ## Running batch simulations with `lurette`
...@@ -259,14 +261,14 @@ lurette \ ...@@ -259,14 +261,14 @@ lurette \
``` ```
<a id="org477c3d3"></a> <a id="orgd2e4baa"></a>
## Viewing Results ## Viewing Results
`sasa -rif` and `lurette` generates `.rif` files that can be viewed with `gnuplot-rif` or `sim2chro`; cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/> `sasa -rif` and `lurette` generates `.rif` files that can be viewed with `gnuplot-rif` or `sim2chro`; cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/>
<a id="org262a057"></a> <a id="org8d9f6c5"></a>
## The `sasa` CLI ## The `sasa` CLI
...@@ -329,14 +331,14 @@ sasa --more ...@@ -329,14 +331,14 @@ sasa --more
Display the version ocaml version sasa was compiled with and exit. Display the version ocaml version sasa was compiled with and exit.
<a id="orgc6d5408"></a> <a id="org6af6ee2"></a>
# Interactive mode # Interactive mode
If you want to perform interactive session, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/). Before reading this section, please read at least the [Basic usage Section if the rdbg documentation](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/README.html#Level0). <a id="orge1b419c"></a> If you want to perform interactive session, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/). Before reading this section, please read at least the [Basic usage Section if the rdbg documentation](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/README.html#Level0).
<a id="org9b78bb5"></a> <a id="orgf6b37f1"></a>
## Example: use `rdbg` from the `test/alea-coloring/` directory ## Example: use `rdbg` from the `test/alea-coloring/` directory
...@@ -389,7 +391,7 @@ $ rdbg ...@@ -389,7 +391,7 @@ $ rdbg
Typing `[Enter]` will therefore also load the `rdbg_session.ml` file we have just been using. Typing `[Enter]` will therefore also load the `rdbg_session.ml` file we have just been using.
<a id="org2006456"></a> <a id="org2913976"></a>
## The exemples of test directory ## The exemples of test directory
...@@ -400,7 +402,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t ...@@ -400,7 +402,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
- `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists). - `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists).
<a id="org964d57c"></a> <a id="org8931da2"></a>
## Running interactive sessions with `rdbg` ## Running interactive sessions with `rdbg`
...@@ -417,7 +419,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t ...@@ -417,7 +419,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
All those commands are defined in (the common) [test/my-rdbg-tuning.ml](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/my-rdbg-tuning.ml) that is included in (locals) `test/*/my-rdbg-tuning.ml` that are included in (generated) `test/*/rdbg-session.ml` files. `my-rdbg-tuning.ml` contains straigthforward `ocaml` code that defines various `rdbg` shortcuts to ease the simulation of `sasa` systems. Feel free to tailor those command to yours needs by modyfying the local `my-rdbg-tuning.ml`! All those commands are defined in (the common) [test/my-rdbg-tuning.ml](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/my-rdbg-tuning.ml) that is included in (locals) `test/*/my-rdbg-tuning.ml` that are included in (generated) `test/*/rdbg-session.ml` files. `my-rdbg-tuning.ml` contains straigthforward `ocaml` code that defines various `rdbg` shortcuts to ease the simulation of `sasa` systems. Feel free to tailor those command to yours needs by modyfying the local `my-rdbg-tuning.ml`!
<a id="orgf6c6506"></a> <a id="orgc066a85"></a>
## Getting `rdbg` on-line help ## Getting `rdbg` on-line help
...@@ -430,10 +432,10 @@ Here are 2 useful entry-points to rdbg on-line help: ...@@ -430,10 +432,10 @@ Here are 2 useful entry-points to rdbg on-line help:
(rdbg) l (rdbg) l
``` ```
ef6c2b943fb4eda627a5c5ff18890bdd 899ba97918e5b30522844acaf1223a45
<a id="org911eaed"></a> <a id="org07221ab"></a>
## Useful Modules ## Useful Modules
...@@ -460,12 +462,12 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`. ...@@ -460,12 +462,12 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`.
</div> </div>
<a id="orgf00383a"></a> <a id="org02db332"></a>
# Install # Install
<a id="orgd5a02ba"></a> <a id="org0c28ed7"></a>
## Via opam 2 (prefered method) ## Via opam 2 (prefered method)
...@@ -490,14 +492,14 @@ opam install -y rdbg lutin ...@@ -490,14 +492,14 @@ opam install -y rdbg lutin
``` ```
<a id="org4a9d80f"></a> <a id="orgd84fbc0"></a>
## Via docker ## Via docker
cf the Install section of [Synchrone Reactive Tool Box](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6). cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#docker).
<a id="org0ce02ed"></a> <a id="org193dfd6"></a>
## From source ## From source
...@@ -517,7 +519,7 @@ opam install dune ocamlgraph rdbg lutin ...@@ -517,7 +519,7 @@ opam install dune ocamlgraph rdbg lutin
One can mimick the content of the `test` job in the project [.gitlab-ci.yml Gitlab CI script](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/.gitlab-ci.yml). One can mimick the content of the `test` job in the project [.gitlab-ci.yml Gitlab CI script](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/.gitlab-ci.yml).
<a id="orgc3319a2"></a> <a id="orgdadfb09"></a>
# More # More
...@@ -525,12 +527,12 @@ One can mimick the content of the `test` job in the project [.gitlab-ci.yml Gitl ...@@ -525,12 +527,12 @@ One can mimick the content of the `test` job in the project [.gitlab-ci.yml Gitl
- Sources: <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa> - Sources: <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa>
<a id="org76c8af0"></a> <a id="org96481a2"></a>
# FAQ # FAQ
<a id="org3a27f5b"></a> <a id="orgefc66e1"></a>
## Is there a FAQ? ## Is there a FAQ?
......
...@@ -18,14 +18,14 @@ ...@@ -18,14 +18,14 @@
* TL;DR * TL;DR
SASA is a *Self-stabilizing Algorithms SimulAtor*, based on the SASA is a *Self-stabilizing Algorithms SimulAtor*, based on the
so-called *atomic state model* introduced by _Dijkstra_ in its seminal article so-called *Atomic State model* (ASM) introduced by _Dijkstra_ in its seminal article
on [[http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF][Self-stabilizing distributed algorithms]] on [[http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF][Self-stabilizing distributed algorithms]].
Basically, one needs to provide: Basically, one needs to provide:
1. a topology, made of nodes and transitions (via a dot file) 1. a topology, made of nodes and transitions (via a [[https://en.wikipedia.org/wiki/DOT_(graph_description_language)][dot]] file)
2. the algorithms attached to nodes (via =ocaml= programs) 2. the algorithms attached to nodes (via [[https://ocaml.org/][=ocaml=]] programs)
The fastest way to get started is to copy the files provides in the The fastest way to get started is to copy the files provided in the
=test/skeleton= directory, and to modify them: =test/skeleton= directory, and to modify them:
#+BEGIN_SRC sh #+BEGIN_SRC sh
...@@ -36,12 +36,12 @@ make ring.cmxs ...@@ -36,12 +36,12 @@ make ring.cmxs
sasa ring.dot sasa ring.dot
#+END_SRC #+END_SRC
#+attr_html: :width 700px
[[./sasabatch.svg]]
The source code is available at The source code is available at
https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa
#+attr_html: :width 300px
[[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf][file:poster.png]]
* Topology * Topology
The topology is given via =.dot= files, that should The topology is given via =.dot= files, that should
...@@ -98,8 +98,7 @@ graph ring { ...@@ -98,8 +98,7 @@ graph ring {
p1 -- p2 -- p3 -- p4 -- p5 -- p6 -- p7 -- p1 p1 -- p2 -- p3 -- p4 -- p5 -- p6 -- p7 -- p1
} }
#+END_SRC #+END_SRC
Such parameters can be retreived in Algorithms using the Such parameters can be retreived in Algorithms using the
=Algo.get_graph_attribute : string -> string= function. =Algo.get_graph_attribute : string -> string= function.
...@@ -125,6 +124,8 @@ The following has been generated from [[https://gricad-gitlab.univ-grenoble-alpe ...@@ -125,6 +124,8 @@ The following has been generated from [[https://gricad-gitlab.univ-grenoble-alpe
* Batch mode * Batch mode
#+attr_html: :width 700px
[[./sasabatch.svg]]
** Running batch simulations with Built-in demons ** Running batch simulations with Built-in demons
...@@ -289,7 +290,7 @@ More =sasa= options: ...@@ -289,7 +290,7 @@ More =sasa= options:
#+end_example #+end_example
* Interactive mode * Interactive mode
<<rdbg>>
If you want to perform interactive session, you can launch =sasa= If you want to perform interactive session, you can launch =sasa=
under the control of [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/][rdbg]]. Before reading this section, please read under the control of [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/][rdbg]]. Before reading this section, please read
at least the [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/README.html#Level0][Basic usage Section if the rdbg documentation]]. at least the [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/README.html#Level0][Basic usage Section if the rdbg documentation]].
...@@ -487,7 +488,7 @@ opam install -y rdbg lutin ...@@ -487,7 +488,7 @@ opam install -y rdbg lutin
** Via docker ** Via docker
cf the Install section of [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6][Synchrone Reactive Tool Box]]. cf the Docker Install section of the [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#docker][Synchrone Reactive Tool Box]].
** From source ** From source
......
guides/users/poster.png

972 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment