Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Integrate the tutorial on modeling I/O to the flow of existing pages
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 22 Sep 2021 21:26:16 +0000 (23:26 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 22 Sep 2021 21:26:16 +0000 (23:26 +0200)
docs/source/Platform_howtos.rst
docs/source/tuto_disk/analysis.irst [moved from docs/source/tuto_disk/analysis.rst with 96% similarity]

index 4ff8021..0bf8ac9 100644 (file)
@@ -101,7 +101,7 @@ https://hal.inria.fr/hal-01523608
 
 .. _howto_churn:
 
-Modeling Churn (e.g., in P2P)
+Modeling churn (e.g., in P2P)
 *****************************
 
 One of the biggest challenges in P2P settings is to cope with the
@@ -137,10 +137,10 @@ listing the events, or something else if you wish.
 
 .. _howto_multicore:
 
-Modeling Multicore Machines
+Modeling multicore machines
 ***************************
 
-Default Model
+Default model
 =============
 
 Multicore machines are very complex, and there are many ways to model
@@ -186,7 +186,7 @@ and unconvincing, but some users achieved very realistic simulations
 of multicore and GPU machines this way.
 
 Modeling machine boot and shutdown periods
-********************************************
+******************************************
 
 When a physical host boots up, a lot of things happen. It takes time
 during which the machine is not usable but dissipates energy, and
@@ -288,8 +288,4 @@ So the final platform for our example becomes :
         <link_ctn id="link2"/>
     </route>
 
-
-:ref:`Modeling I/O: the realistic way<howto_disk>`
-*****************
-
-Tutorial available at: :ref:`howto_disk`.
+.. include:: tuto_disk/analysis.irst
similarity index 96%
rename from docs/source/tuto_disk/analysis.rst
rename to docs/source/tuto_disk/analysis.irst
index e07daf0..dfc8912 100644 (file)
@@ -1,13 +1,11 @@
-
-
-
+.. This file has "irst" as an extension to ensure that it's not parsed by sphinx as is. Instead, it's included in another file that is parsed.
 .. _howto_disk:
 
 Modeling I/O: the realistic way
--------------------------------
+*******************************
 
 Introduction
-~~~~~~~~~~~~
+============
 
 This tutorial presents how to perform faithful IO experiments in
 SimGrid. It is based on the paper "Adding Storage Simulation
@@ -38,7 +36,7 @@ in IO operations (Fig. 5 to 7).
   evolved and may not be available anymore.
 
 Running this tutorial
-^^^^^^^^^^^^^^^^^^^^^
+---------------------
 
 A Dockerfile is available in ``docs/source/tuto_disk``. It allows you to
 re-run this tutorial. For that, build the image and run the container:
@@ -48,12 +46,12 @@ re-run this tutorial. For that, build the image and run the container:
 - ``docker run -it tuto_disk``
 
 Analyzing the experimental data
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+===============================
 
 We start by analyzing and extracting the real data available.
 
 Scripts
-^^^^^^^
+-------
 
 We use a special method to create non-uniform histograms to represent
 the noise in IO operations. 
@@ -64,7 +62,7 @@ here.
 Copied from: `https://rdrr.io/github/dlebauer/pecan-priors/src/R/plots.R <https://rdrr.io/github/dlebauer/pecan-priors/src/R/plots.R>`_
 
 Data preparation
-^^^^^^^^^^^^^^^^
+----------------
 
 Some initial configurations/list of packages.
 
@@ -227,10 +225,10 @@ Preparing data for concurrent analysis.
     dfrange$Jobs=16
 
 Griffon (SATA)
-^^^^^^^^^^^^^^
+--------------
 
 Modeling resource sharing w/ concurrent access
-::::::::::::::::::::::::::::::::::::::::::::::
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 This figure presents the overall performance of IO operation with
 concurrent access to the disk. Note that the image is different
@@ -249,10 +247,10 @@ available data to obtain exaclty the same results.
       geom_errorbar(data=dfd, aes(x=Jobs, ymin=BW-ci, ymax=BW+ci),color="black",width=.6) +
       xlab("Number of concurrent operations") + ylab("Aggregated Bandwidth (MiB/s)")  + guides(color=FALSE)  + xlim(0,NA) + ylim(0,NA)
 
-.. image:: fig/griffon_deg.png
+.. image:: tuto_disk/fig/griffon_deg.png
 
 Read
-''''
+""""
 
 Getting read data for Griffon from 1 to 15 concurrent reads.
 
@@ -276,7 +274,7 @@ Getting read data for Griffon from 1 to 15 concurrent reads.
     }
 
 Write
-'''''
+"""""
 
 Same for write operations.
 
@@ -301,7 +299,7 @@ Same for write operations.
     }
 
 Modeling read/write bandwidth variability
-:::::::::::::::::::::::::::::::::::::::::
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Fig.5 in the paper presents the noise in the read/write operations in
 the Griffon SATA disk.
@@ -312,7 +310,7 @@ effective bandwidth. However, in this tutorial, we use dhist
 more precise information over the highly dense areas around the mean.
 
 Read
-''''
+""""
 
 First, we present the histogram for read operations.
 
@@ -321,7 +319,7 @@ First, we present the histogram for read operations.
     griffon_read = df %>% filter(grepl("^Griffon", Cluster)) %>% filter(Operation == "Read") %>% select(Bwi)
     dhist(1/griffon_read$Bwi)
 
-.. image:: fig/griffon_read_dhist.png
+.. image:: tuto_disk/fig/griffon_read_dhist.png
 
 Saving it to be exported in json format.
 
@@ -355,7 +353,7 @@ Saving it to be exported in json format.
     }
 
 Write
-'''''
+"""""
 
 Same analysis for write operations.
 
@@ -364,7 +362,7 @@ Same analysis for write operations.
     griffon_write = df %>% filter(grepl("^Griffon", Cluster)) %>% filter(Operation == "Write") %>% select(Bwi)
     dhist(1/griffon_write$Bwi)
 
-.. image:: fig/griffon_write_dhist.png
+.. image:: tuto_disk/fig/griffon_write_dhist.png
 
 .. code:: R
 
@@ -401,15 +399,15 @@ Same analysis for write operations.
     }
 
 Edel (SSD)
-^^^^^^^^^^
+----------
 
 This section presents the exactly same analysis for the Edel SSDs.
 
 Modeling resource sharing w/ concurrent access
-::::::::::::::::::::::::::::::::::::::::::::::
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Read
-''''
+""""
 
 Getting read data for Edel from 1 to 15 concurrent operations.
 
@@ -450,7 +448,7 @@ Getting read data for Edel from 1 to 15 concurrent operations.
     }
 
 Write
-'''''
+"""""
 
 Same for write operations.
 
@@ -493,17 +491,17 @@ Same for write operations.
     }
 
 Modeling read/write bandwidth variability
-:::::::::::::::::::::::::::::::::::::::::
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Read
-''''
+""""
 
 .. code:: R
 
     edel_read = df %>% filter(grepl("^Edel", Cluster)) %>% filter(Operation == "Read") %>% select(Bwi)
     dhist(1/edel_read$Bwi)
 
-.. image:: fig/edel_read_dhist.png
+.. image:: tuto_disk/fig/edel_read_dhist.png
 
 Saving it to be exported in json format.
 
@@ -555,7 +553,7 @@ Saving it to be exported in json format.
     }
 
 Write
-'''''
+"""""
 
 .. code:: R
 
@@ -563,7 +561,7 @@ Write
     edel_write = df %>% filter(grepl("^Edel", Cluster)) %>% filter(Operation == "Write") %>% select(Bwi)
     dhist(1/edel_write$Bwi)
 
-.. image:: fig/edel_write_dhist.png
+.. image:: tuto_disk/fig/edel_write_dhist.png
 
 Saving it to be exported later.
 
@@ -620,7 +618,7 @@ Saving it to be exported later.
     }
 
 Exporting to JSON
-~~~~~~~~~~~~~~~~~
+=================
 
 Finally, let's save it to a file to be opened by our simulator.
 
@@ -630,14 +628,14 @@ Finally, let's save it to a file to be opened by our simulator.
     cat(json, file="IO_noise.json")
 
 Injecting this data in SimGrid
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+==============================
 
 To mimic this behavior in SimGrid, we use two features in the platform
 description: non-linear sharing policy and bandwidth factors. For more
 details, please see the source code in ``tuto_disk.cpp``.
 
 Modeling resource sharing w/ concurrent access
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------------------------------------
 
 The ``set_sharing_policy`` method allows the user to set a callback to
 dynamically change the disk capacity. The callback is called each time
@@ -658,7 +656,7 @@ capacity.
     disk->set_sharing_policy(sg4::Disk::Operation::READ, sg4::Disk::SharingPolicy::NONLINEAR, &disk_dynamic_sharing);
 
 Modeling read/write bandwidth variability
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+-----------------------------------------
 
 The noise in I/O operations can be obtained by applying a factor to
 the I/O bandwidth of the disk. This factor is applied when we update
@@ -681,7 +679,7 @@ write). It must return a multiply factor (e.g. 1.0 for doing nothing).
     disk->set_factor_cb(&disk_variability);
 
 Running our simulation
-^^^^^^^^^^^^^^^^^^^^^^
+----------------------
 
 The binary was compiled in the provided docker container.
 
@@ -690,7 +688,7 @@ The binary was compiled in the provided docker container.
     ./tuto_disk > ./simgrid_disk.csv
 
 Analyzing the SimGrid results
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+=============================
 
 The figure below presents the results obtained by SimGrid.
 
@@ -717,7 +715,7 @@ the real platform.
         facet_wrap(disk~op,ncol=2,scale="free_y")+ # ) + #
         xlab("Number of concurrent operations") + ylab("Aggregated Bandwidth (MiB/s)")  + guides(color=FALSE)  + xlim(0,NA) + ylim(0,NA)
 
-.. image:: fig/simgrid_results.png
+.. image:: tuto_disk/fig/simgrid_results.png
 
 Note: The variability in griffon read operation seems to decrease when
 we have more concurrent operations. This is a particularity of the