Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix doc typo
[simgrid.git] / docs / source / Tutorial_Algorithms.rst
index 0166e8ed7297eaafee46d943d35867cfcc19548b..7cf77734df87d5694cb283987caa59cadc164fa0 100644 (file)
@@ -398,10 +398,9 @@ If you need to run a command as root within the container, simply type the follo
    $ docker container ls
    # This lists all containers running on your machine. For example:
    #    CONTAINER ID   IMAGE            COMMAND   CREATED         STATUS         PORTS     NAMES
-   #    7e921b1b18a7   simgrid/stable   "bash"    7 minutes ago   Up 7 minutes             adoring_shamir
-   
-   $ docker exec --user 0:0 -it {container_name} bash
-   # In the previous example, container_name was "adoring_shamir"
+   #    7e921b1b18a7   simgrid/stable   "bash"    7 minutes ago   Up 7 minutes             simgrid
+
+   $ docker exec --user root -it simgrid bash
 
 The code template is available under ``/source/simgrid-template-s4u.git``
 in the image. You should copy it to your working directory and
@@ -409,10 +408,14 @@ recompile it when you first log in:
 
 .. code-block:: console
 
-   $ cp -r /source/simgrid-template-s4u.git/* /source/tutorial
-   $ cd /source/tutorial
-   $ cmake .
-   $ make
+   $ # Make sure the simgrid-tutorial directory can be read and written by the non-root user
+   $ sudo chown $UID:$GID ~/simgrid-tutorial
+   $ # Connect to the running container if needed
+   $ docker exec --user $UID:$GID -ti simgrid bash
+   $container) cp -r /source/simgrid-template-s4u.git/* /source/tutorial
+   $container) cd /source/tutorial
+   $container) cmake .
+   $container) make
 
 Using your Computer Natively
 ............................
@@ -478,6 +481,15 @@ Using your Computer Natively
       your :ref:`SimGrid installation <install>`.  On need, please refer to
       the :ref:`Troubleshooting your Project Setup <install_yours_troubleshooting>` section.
 
+.. warning::
+
+   If you use the stable version of Debian 11, Ubuntu 21.04 or Ubuntu 21.10, then you need the right version of this tutorial 
+   (add ``--branch simgrid-v3.25`` as below). These distributions only contain SimGrid v3.25 while the latest version of this
+   tutorial needs at least SimGrid v3.27.
+
+   .. code-block:: console
+
+      $ git clone --branch simgrid-v3.25 https://framagit.org/simgrid/simgrid-template-s4u.git
 
 For R analysis of the produced traces, you may want to install R
 and the `pajengr <https://github.com/schnorr/pajengr#installation/>`_ package.
@@ -506,6 +518,9 @@ Discovering the Provided Code
          $ make master-workers
          $ ./master-workers small_platform.xml master-workers_d.xml
 
+      If you get an error message complaining that ``simgrid::s4u::Mailbox::get()`` does not exist, 
+      then your version of SimGrid is too old for the version of the tutorial that you got. Check again previous section.
+
    .. group-tab:: Python
 
       Please execute the provided simulator as follows:
@@ -514,20 +529,8 @@ Discovering the Provided Code
 
          $ python master-workers.py small_platform.xml master-workers_d.xml
 
-For a more "fancy" output, you can use simgrid-colorizer.
-
-.. code-block:: console
-
-   # Run C++ code
-   $ ./master-workers small_platform.xml master-workers_d.xml 2>&1 | simgrid-colorizer
-
-   # Run Python code
-   $ python master-workers.py small_platform.xml master-workers_d.xml 2>&1 | simgrid-colorizer
-
-If you installed SimGrid to a non-standard path, you may have to
-specify the full path to simgrid-colorizer on the above line, such as
-``/opt/simgrid/bin/simgrid-colorizer``. If you did not install it at all,
-you can find it in <simgrid_root_directory>/bin/colorize.
+      If you get an error stating that the simgrid module does not exist, you need to get a newer version of SimGrid. 
+      You may want to take the tutorial from the docker to get the newest version.
 
 For a classical Gantt-Chart visualization, you can use `Vite
 <http://vite.gforge.inria.fr/>`_ if you have it installed, as
@@ -549,9 +552,6 @@ is a better way to visualize SimGrid traces (see below).
 
 .. note::
 
-   If you use an older version of SimGrid (before v3.26), you should use
-   ``--cfg=tracing/msg/process:yes`` instead of ``--cfg=tracing/actor:yes``.
-
 If you want the full power to visualize SimGrid traces, you need
 to use R. As a start, you can download this `starter script
 <https://framagit.org/simgrid/simgrid/raw/master/docs/source/tuto_s4u/draw_gantt.R>`_
@@ -618,8 +618,8 @@ information is only written once. It thus follows the `DRY
       .. code-block:: cpp
 
          for (int i = 0; i < tasks_count; i++) {
-            std::string worker_rank          = std::to_string(i % workers_count);
-            std::string mailbox_name         = std::string("worker-") + worker_rank;
+            std::string worker_rank        = std::to_string(i % workers_count);
+            std::string mailbox_name       = "worker-" + worker_rank;
             simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name);
 
             mailbox->put(...);
@@ -984,12 +984,6 @@ After this Tutorial
 This tutorial is now terminated. You could keep reading the online documentation and
 tutorials, or you could head up to the :ref:`example section <s4u_examples>` to read some code.
 
-.. todo::
-
-   Things to improve in the future:
-
-   - Propose equivalent exercises and skeleton in Java once we fix the Java binding.
-
 .. |br| raw:: html
 
    <br />