diff --git a/README.org b/README.org new file mode 100644 index 0000000000000000000000000000000000000000..0a2f5dfef305281a3b545426fdafb64c08e96940 --- /dev/null +++ b/README.org @@ -0,0 +1,2 @@ +The user guide can be browsed at + https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/ diff --git a/guides/users/README.md b/guides/users/README.md index f3e68ca3e12897dbbaa9b0b9c806edd5662673b7..5c51b49af185be4afafbfbd6fa2d6efdb31318b2 100644 --- a/guides/users/README.md +++ b/guides/users/README.md @@ -1,67 +1,67 @@ -- [TL;DR](#org1b29c61) -- [Topology](#org7ac1440) -- [Algorithms](#org15e10c7) -- [Examples](#org6a40149) -- [Batch mode](#orga9bce8f) - - [Running batch simulations with Built-in demons](#org4866456) - - [Running batch simulations with manual demons](#orgf3df31d) - - [Running batch simulations with `lurette`](#org9d9ef24) - - [Viewing Results](#org477c3d3) - - [The `sasa` CLI](#org262a057) -- [Interactive mode](#orgc6d5408) - - [Example: use `rdbg` from the `test/alea-coloring/` directory](#org9b78bb5) - - [The exemples of test directory](#org2006456) - - [Running interactive sessions with `rdbg`](#org964d57c) - - [Getting `rdbg` on-line help](#orgf6c6506) - - [Useful Modules](#org911eaed) -- [Install](#orgf00383a) - - [Via opam 2 (prefered method)](#orgd5a02ba) - - [Via docker](#org4a9d80f) - - [From source](#org0ce02ed) -- [More](#orgc3319a2) -- [FAQ](#org76c8af0) - - [Is there a FAQ?](#org3a27f5b) +- [TL;DR](#org7460992) +- [Topology](#org6b74c58) +- [Algorithms](#orge7cc59f) +- [Examples](#org9fd0d11) +- [Batch mode](#org72ad817) + - [Running batch simulations with Built-in demons](#orgc56b42d) + - [Running batch simulations with manual demons](#org92cd9f2) + - [Running batch simulations with `lurette`](#org0705ed8) + - [Viewing Results](#orgd2e4baa) + - [The `sasa` CLI](#org8d9f6c5) +- [Interactive mode](#org6af6ee2) + - [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgf6b37f1) + - [The exemples of test directory](#org2913976) + - [Running interactive sessions with `rdbg`](#org8931da2) + - [Getting `rdbg` on-line help](#orgc066a85) + - [Useful Modules](#org07221ab) +- [Install](#org02db332) + - [Via opam 2 (prefered method)](#org0c28ed7) + - [Via docker](#orgd84fbc0) + - [From source](#org193dfd6) +- [More](#orgdadfb09) +- [FAQ](#org96481a2) + - [Is there a FAQ?](#orgefc66e1) # Table of Contents -1. [TL;DR](#org1b29c61) -2. [Topology](#org7ac1440) -3. [Algorithms](#org15e10c7) -4. [Examples](#org6a40149) -5. [Batch mode](#orga9bce8f) - 1. [Running batch simulations with Built-in demons](#org4866456) - 2. [Running batch simulations with manual demons](#orgf3df31d) - 3. [Running batch simulations with `lurette`](#org9d9ef24) - 4. [Viewing Results](#org477c3d3) - 5. [The `sasa` CLI](#org262a057) -6. [Interactive mode](#orgc6d5408) - 1. [Example: use `rdbg` from the `test/alea-coloring/` directory](#org9b78bb5) - 2. [The exemples of test directory](#org2006456) - 3. [Running interactive sessions with `rdbg`](#org964d57c) - 4. [Getting `rdbg` on-line help](#orgf6c6506) - 5. [Useful Modules](#org911eaed) -7. [Install](#orgf00383a) - 1. [Via opam 2 (prefered method)](#orgd5a02ba) - 2. [Via docker](#org4a9d80f) - 3. [From source](#org0ce02ed) -8. [More](#orgc3319a2) -9. [FAQ](#org76c8af0) - 1. [Is there a FAQ?](#org3a27f5b) - - -<a id="org1b29c61"></a> +1. [TL;DR](#org7460992) +2. [Topology](#org6b74c58) +3. [Algorithms](#orge7cc59f) +4. [Examples](#org9fd0d11) +5. [Batch mode](#org72ad817) + 1. [Running batch simulations with Built-in demons](#orgc56b42d) + 2. [Running batch simulations with manual demons](#org92cd9f2) + 3. [Running batch simulations with `lurette`](#org0705ed8) + 4. [Viewing Results](#orgd2e4baa) + 5. [The `sasa` CLI](#org8d9f6c5) +6. [Interactive mode](#org6af6ee2) + 1. [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgf6b37f1) + 2. [The exemples of test directory](#org2913976) + 3. [Running interactive sessions with `rdbg`](#org8931da2) + 4. [Getting `rdbg` on-line help](#orgc066a85) + 5. [Useful Modules](#org07221ab) +7. [Install](#org02db332) + 1. [Via opam 2 (prefered method)](#org0c28ed7) + 2. [Via docker](#orgd84fbc0) + 3. [From source](#org193dfd6) +8. [More](#orgdadfb09) +9. [FAQ](#org96481a2) + 1. [Is there a FAQ?](#orgefc66e1) + + +<a id="org7460992"></a> # 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: -1. a topology, made of nodes and transitions (via a dot file) -2. the algorithms attached to nodes (via `ocaml` programs) +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`](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 cd test @@ -71,12 +71,12 @@ make ring.cmxs sasa ring.dot ``` - - The source code is available at <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa> +[](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf) + -<a id="org7ac1440"></a> +<a id="org6b74c58"></a> # Topology @@ -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. -<a id="org15e10c7"></a> +<a id="orge7cc59f"></a> # Algorithms @@ -151,7 +151,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren </div> -<a id="org6a40149"></a> +<a id="org9fd0d11"></a> # Examples @@ -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). -<a id="orga9bce8f"></a> +<a id="org72ad817"></a> # Batch mode + + -<a id="org4866456"></a> +<a id="orgc56b42d"></a> ## Running batch simulations with Built-in demons @@ -209,7 +211,7 @@ sasa -h | grep "\-demon" --custom-demon, -custd -<a id="orgf3df31d"></a> +<a id="org92cd9f2"></a> ## 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 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` @@ -259,14 +261,14 @@ lurette \ ``` -<a id="org477c3d3"></a> +<a id="orgd2e4baa"></a> ## 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/> -<a id="org262a057"></a> +<a id="org8d9f6c5"></a> ## The `sasa` CLI @@ -329,14 +331,14 @@ sasa --more Display the version ocaml version sasa was compiled with and exit. -<a id="orgc6d5408"></a> +<a id="org6af6ee2"></a> # 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 @@ -389,7 +391,7 @@ $ rdbg 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 @@ -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). -<a id="org964d57c"></a> +<a id="org8931da2"></a> ## Running interactive sessions with `rdbg` @@ -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`! -<a id="orgf6c6506"></a> +<a id="orgc066a85"></a> ## Getting `rdbg` on-line help @@ -430,10 +432,10 @@ Here are 2 useful entry-points to rdbg on-line help: (rdbg) l ``` - ef6c2b943fb4eda627a5c5ff18890bdd + 899ba97918e5b30522844acaf1223a45 -<a id="org911eaed"></a> +<a id="org07221ab"></a> ## Useful Modules @@ -460,12 +462,12 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`. </div> -<a id="orgf00383a"></a> +<a id="org02db332"></a> # Install -<a id="orgd5a02ba"></a> +<a id="org0c28ed7"></a> ## Via opam 2 (prefered method) @@ -490,14 +492,14 @@ opam install -y rdbg lutin ``` -<a id="org4a9d80f"></a> +<a id="orgd84fbc0"></a> ## 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 @@ -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). -<a id="orgc3319a2"></a> +<a id="orgdadfb09"></a> # More @@ -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> -<a id="org76c8af0"></a> +<a id="org96481a2"></a> # FAQ -<a id="org3a27f5b"></a> +<a id="orgefc66e1"></a> ## Is there a FAQ? diff --git a/guides/users/README.org b/guides/users/README.org index 3b914eb7413e5a9b24fed203c0c805be35f47df2..a9db1ebf3a8a5b7a0e8687f62654f8c9a4f1e843 100644 --- a/guides/users/README.org +++ b/guides/users/README.org @@ -18,14 +18,14 @@ * TL;DR SASA is a *Self-stabilizing Algorithms SimulAtor*, based on the -so-called *atomic state model* introduced by _Dijkstra_ in its seminal article -on [[http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF][Self-stabilizing distributed algorithms]] +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]]. Basically, one needs to provide: -1. a topology, made of nodes and transitions (via a dot file) -2. the algorithms attached to nodes (via =ocaml= programs) +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 [[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: #+BEGIN_SRC sh @@ -36,12 +36,12 @@ make ring.cmxs sasa ring.dot #+END_SRC -#+attr_html: :width 700px -[[./sasabatch.svg]] - The source code is available at 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 The topology is given via =.dot= files, that should @@ -98,8 +98,7 @@ graph ring { p1 -- p2 -- p3 -- p4 -- p5 -- p6 -- p7 -- p1 } #+END_SRC - - + Such parameters can be retreived in Algorithms using the =Algo.get_graph_attribute : string -> string= function. @@ -125,6 +124,8 @@ The following has been generated from [[https://gricad-gitlab.univ-grenoble-alpe * Batch mode +#+attr_html: :width 700px +[[./sasabatch.svg]] ** Running batch simulations with Built-in demons @@ -289,7 +290,7 @@ More =sasa= options: #+end_example * Interactive mode - +<<rdbg>> 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 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 ** 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 diff --git a/guides/users/poster.png b/guides/users/poster.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4a6b0cc3031ec6b85e3c2b93455b3d7b60915a Binary files /dev/null and b/guides/users/poster.png differ