From 6ea21d38fabc7f348202690165d53e1f31316505 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr> Date: Mon, 5 Dec 2022 22:35:11 +0100 Subject: [PATCH] doc: replace a private by a public link to the sasa slides cloud dir --- guides/users/README.md | 157 ++++++++++++++++++++-------------------- guides/users/README.org | 2 +- 2 files changed, 81 insertions(+), 78 deletions(-) diff --git a/guides/users/README.md b/guides/users/README.md index 687aadfa..3281b8dd 100644 --- a/guides/users/README.md +++ b/guides/users/README.md @@ -1,42 +1,42 @@ -- [TL;DR](#org5ad0e66) -- [Topology](#org9d392fb) -- [Algorithms](#orge32cab3) -- [Examples](#orgcfde991) -- [Batch mode](#org80aeb83) - - [Running batch simulations](#org9f35d61) - - [Running batch simulations with Built-in daemons](#org954c5e6) - - [Running batch simulations with manual (a.k.a. custom) daemons](#org38d5de5) - - [Running batch simulations with `lurette`](#org640b2e9) - - [Viewing Results](#org3d147ea) - - [The `sasa` CLI](#orgdf60ab4) -- [Interactive mode](#org5baaeee) - - [Example: use `rdbg` from the `test/alea-coloring/` directory](#org5b2cfb9) - - [The examples of test directory](#org2652e6e) - - [Running interactive sessions with `rdbg`](#org1dab3bd) - - [Getting `rdbg` on-line help](#org262e448) - - [A `rdbg` `sasa` GUI](#org4285bff) - - [Useful Modules](#org8d90a8b) -- [Install](#orgee0d8a4) - - [TL;DR](#org106f46f) - - [Not strictly mandatory, but useful, third-party software](#orgc700b1f) - - [Install `sasa` via opam (version >= 2.\*)](#org32e5593) - - [Install `sasa` via `git`](#orgaaeaaee) - - [Use `sasa` via docker](#org0cca00b) - - [Use `sasa` via a Virtual Machine](#org30a0cfb) -- [Screencasts](#orgcaa736c) -- [More](#org0558eb8) -- [FAQ](#org6abdd10) - - [Is there a FAQ?](#orgc6dc2c8) - - [I have a compilation error that I don't understand](#org169d469) - - [I have the error `Invalid_argument("compare: functional value")`](#orga5fc6a4) - - - -<a id="org5ad0e66"></a> +- [TL;DR](#org4613395) +- [Topology](#org90ca725) +- [Algorithms](#org046b3be) +- [Examples](#org28013a7) +- [Batch mode](#org5e9fb35) + - [Running batch simulations](#org88f9350) + - [Running batch simulations with Built-in daemons](#org40c965c) + - [Running batch simulations with manual (a.k.a. custom) daemons](#orgdd8c074) + - [Running batch simulations with `lurette`](#orgf12417b) + - [Viewing Results](#org787fcde) + - [The `sasa` CLI](#orge7a4389) +- [Interactive mode](#orga4286ee) + - [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgfd167f3) + - [The examples of test directory](#org54614c9) + - [Running interactive sessions with `rdbg`](#org8389710) + - [Getting `rdbg` on-line help](#org06a1ac5) + - [A `rdbg` `sasa` GUI](#orgdce894e) + - [Useful Modules](#orge82a14e) +- [Install](#org0021508) + - [TL;DR](#org377dcfe) + - [Not strictly mandatory, but useful, third-party software](#orgb7c9381) + - [Install `sasa` via opam (version >= 2.\*)](#orgb86401e) + - [Install `sasa` via `git`](#orgcbf1681) + - [Use `sasa` via docker](#orgc610ed3) + - [Use `sasa` via a Virtual Machine](#orgee4ae29) +- [Screencasts](#orgef0e2a0) +- [More](#org12cda47) +- [FAQ](#org3719ee5) + - [Is there a FAQ?](#org5f6beac) + - [I have a compilation error that I don't understand](#org9d35258) + - [I have the error `Invalid_argument("compare: functional value")`](#org63b0ec3) + + + +<a id="org4613395"></a> # TL;DR -<a id="org9bed122"></a> 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). This model is also sometimes named "locally shared memory model with composite atomicity" +<a id="org061f39e"></a> 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). This model is also sometimes named "locally shared memory model with composite atomicity" Basically, one needs to provide: @@ -57,16 +57,16 @@ sasa ring.dot -l 4 # run a batch simulation for 4 steps - [Some Online Tutorials](https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/) - [The computer journal article pre-print](https://hal.archives-ouvertes.fr/hal-02521149) - [Video of a SASA tutorial given at SSS'2020](https://cloud.univ-grenoble-alpes.fr/index.php/s/yboMr4xbcpWr6d9) -- [Slides](https://cloud.univ-grenoble-alpes.fr/apps/files/?dir=/sasa&fileid=222270070) +- [Slides](https://cloud.univ-grenoble-alpes.fr/s/dRriW4c2bWinagw) [](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf) -<a id="org9d392fb"></a> +<a id="org90ca725"></a> # Topology -<a id="orge3bca28"></a> <a id="orgdeb8329"></a> The topology is given via `.dot` files, that should +<a id="org3fa8e55"></a> <a id="orga56589a"></a> The topology is given via `.dot` files, that should 1. follow the [graphviz/dot format](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) 2. have nodes **labeled** by the `algo` field @@ -124,14 +124,14 @@ graph ring { Such parameters can be retrieved in algorithms using the `Algo.get_graph_attribute : string -> string` function. For example, if you know the graph diameter, you can define it as a graph attribute (a `Algo.diameter: unit -> int` function is provided, but it can be expensive to use for large graphs). -Some tools are provided in the `sasa` [distributions](#org90b15f9) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/> +Some tools are provided in the `sasa` [distributions](#org49e7a9a) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/> -<a id="orge32cab3"></a> +<a id="org046b3be"></a> # Algorithms -<a id="org2f3c3e8"></a> +<a id="org9930119"></a> The following has been generated from [algo.mli](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/blob/master/lib/algo/algo.mli) @@ -143,7 +143,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren </iframe> -<a id="orgcfde991"></a> +<a id="org28013a7"></a> # Examples @@ -183,14 +183,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` (if it exists). -<a id="org80aeb83"></a> +<a id="org5e9fb35"></a> # Batch mode  -<a id="org9f35d61"></a> +<a id="org88f9350"></a> ## Running batch simulations @@ -233,28 +233,31 @@ All the CLI commands above can be run automatically using a `make` rule containe make: 'ring.cmxs' is up to date. # Automatically generated by /home/jahier/.opam/4.14.0/bin/sasa version "v4.8.0" ("65d9837") - # on crevetete the 5/12/2022 at 9:59:43 + # on crevetete the 5/12/2022 at 22:34:53 #sasa ring.dot - #seed 545693330 + #seed 27916546 #inputs #outputs "p1_c":int "p2_c":int "p3_c":int "p4_c":int "p5_c":int "p6_c":int "p7_c":int "Enab_p1_conflict":bool "Enab_p2_conflict":bool "Enab_p3_conflict":bool "Enab_p4_conflict":bool "Enab_p5_conflict":bool "Enab_p6_conflict":bool "Enab_p7_conflict":bool "p1_conflict":bool "p2_conflict":bool "p3_conflict":bool "p4_conflict":bool "p5_conflict":bool "p6_conflict":bool "p7_conflict":bool "legitimate":bool potential:real round:bool round_nb:int #step 0 - #outs 0 1 0 0 1 0 0 t f t t f t t f f t f f t t f 6. f 0 + #outs 0 1 0 0 1 1 0 t f t t t t t t f f t t f t f 6. f 0 #step 1 - #outs 0 1 2 0 1 2 1 f f f f f f f f f f f f f f t 0. t 1 + #outs 2 1 0 2 2 1 2 t f f t t f t f f f t f f t f 4. t 2 - This algo is silent after 3 moves, 1 step, 1 round. + #step 2 + #outs 2 1 0 1 2 1 0 f f f f f f f f f f f f f f t 0. t 2 + + This algo is silent after 6 moves, 2 steps, 2 rounds. #quit nb: the simulation output (in the green frame) follows the [RIF](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-orga43b00b) conventions. -<a id="org954c5e6"></a> +<a id="org40c965c"></a> ## Running batch simulations with Built-in daemons @@ -273,7 +276,7 @@ sasa -h | grep "\-daemon" --greedy-daemon, -gd -<a id="org38d5de5"></a> +<a id="orgdd8c074"></a> ## Running batch simulations with manual (a.k.a. custom) daemons @@ -311,7 +314,7 @@ In order to enter such input more easily, one can use (requires [the lustre V4 t Daemons can also by simulated by [`lutin`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-4) programs via the use of [`lurette`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-9) (for batch executions) or [`rdbg`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-10) (for interactive sessions). -<a id="org640b2e9"></a> +<a id="orgf12417b"></a> ## Running batch simulations with `lurette` @@ -336,14 +339,14 @@ Note that for `lurette`, the role of the SUT (System Under Test) and the one of For more information on this topic: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-daemons/> -<a id="org3d147ea"></a> +<a id="org787fcde"></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/reactive-toolbox/> -<a id="orgdf60ab4"></a> +<a id="orge7a4389"></a> ## The `sasa` CLI @@ -430,11 +433,11 @@ More `sasa` options: Display the version ocaml version sasa was compiled with and exit. -<a id="org5baaeee"></a> +<a id="orga4286ee"></a> # Interactive mode -<a id="org3d0da66"></a> If you want to perform step-by-step simulations, you can use the `-custd` option. But if you want to perform step-by-step simulations without the burden of playing the role of the daemon, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/). +<a id="org9e8abf6"></a> If you want to perform step-by-step simulations, you can use the `-custd` option. But if you want to perform step-by-step simulations without the burden of playing the role of the daemon, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/). Another advantage of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/) is its ability to display a graphical view of the current configuration during the simulation, to move step by step, or round by round, forward or backwards. @@ -443,7 +446,7 @@ cf <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbg-sasa/> 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#outline-container-sec-3). -<a id="org5b2cfb9"></a> +<a id="orgfd167f3"></a> ## Example: use `rdbg` from the `test/alea-coloring/` directory @@ -486,7 +489,7 @@ rdbg [q] quit -<a id="org2652e6e"></a> +<a id="org54614c9"></a> ## The examples of test directory @@ -497,7 +500,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="org1dab3bd"></a> +<a id="org8389710"></a> ## Running interactive sessions with `rdbg` @@ -514,7 +517,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="org262e448"></a> +<a id="org06a1ac5"></a> ## Getting `rdbg` on-line help @@ -610,7 +613,7 @@ Here are 2 useful entry-points to rdbg on-line help: (rdbg) -<a id="org4285bff"></a> +<a id="orgdce894e"></a> ## A `rdbg` `sasa` GUI @@ -624,7 +627,7 @@ opam install -y rdbgui4ocaml To use it: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbgui4sasa/> -<a id="org8d90a8b"></a> +<a id="orge82a14e"></a> ## Useful Modules @@ -659,14 +662,14 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`. </iframe> -<a id="orgee0d8a4"></a> +<a id="org0021508"></a> # Install -<a id="org90b15f9"></a> <a id="orgc0ea3b9"></a> +<a id="org49e7a9a"></a> <a id="orge58cf86"></a> -<a id="org106f46f"></a> +<a id="org377dcfe"></a> ## TL;DR @@ -720,7 +723,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi ``` -<a id="orgc700b1f"></a> +<a id="orgb7c9381"></a> ## Not strictly mandatory, but useful, third-party software @@ -763,7 +766,7 @@ sudo apt install -y wish Otherwise: <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/index.html> -<a id="org32e5593"></a> +<a id="orgb86401e"></a> ## Install `sasa` via opam (version >= 2.\*) @@ -797,7 +800,7 @@ opam upgrade ``` -<a id="orgaaeaaee"></a> +<a id="orgcbf1681"></a> ## Install `sasa` via `git` @@ -841,14 +844,14 @@ make test One can also mimic 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="org0cca00b"></a> +<a id="orgc610ed3"></a> ## Use `sasa` via docker cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#docker). This docker image contains all the tools mentioned in this section (`sasa`, `lustre`, `opam`, `ocaml`, emacs, graphviz, etc.). -<a id="org30a0cfb"></a> +<a id="orgee4ae29"></a> ## Use `sasa` via a Virtual Machine @@ -858,7 +861,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve - passwd:sasa -<a id="orgcaa736c"></a> +<a id="orgef0e2a0"></a> # Screencasts @@ -874,7 +877,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/> -<a id="org0558eb8"></a> +<a id="org12cda47"></a> # More @@ -883,12 +886,12 @@ cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/> - Tutorials: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt//tags/sasa/> -<a id="org6abdd10"></a> +<a id="org3719ee5"></a> # FAQ -<a id="orgc6dc2c8"></a> +<a id="org5f6beac"></a> ## Is there a FAQ? @@ -897,7 +900,7 @@ Yes. Beside, some tutorials are also available here: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/> -<a id="org169d469"></a> +<a id="org9d35258"></a> ## I have a compilation error that I don't understand @@ -907,7 +910,7 @@ Beside, some tutorials are also available here: <https://verimag.gricad-pages.un - If the message is totally useless, please feel free to add an issue here <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/issues> -<a id="orga5fc6a4"></a> +<a id="org63b0ec3"></a> ## I have the error `Invalid_argument("compare: functional value")` diff --git a/guides/users/README.org b/guides/users/README.org index a5abf634..d44f22e9 100644 --- a/guides/users/README.org +++ b/guides/users/README.org @@ -90,7 +90,7 @@ ocamlfind ocamlopt -bin-annot -package algo -shared state.ml p.ml config.ml ring + [[https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/][Some Online Tutorials]] + [[https://hal.archives-ouvertes.fr/hal-02521149][The computer journal article pre-print]] + [[https://cloud.univ-grenoble-alpes.fr/index.php/s/yboMr4xbcpWr6d9][Video of a SASA tutorial given at SSS'2020]] -+ [[https://cloud.univ-grenoble-alpes.fr/apps/files/?dir=/sasa&fileid=222270070][Slides]] ++ [[https://cloud.univ-grenoble-alpes.fr/s/dRriW4c2bWinagw][Slides]] #+attr_html: :width 300px [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf][file:poster.png]] -- GitLab