X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bb487e9a35d93afe6715b9bdc7a2dd98fd37a6be..62d39371e58b7640d50f64baa6a29ae4b35320c1:/docs/source/Tutorial_MPI_Applications.rst diff --git a/docs/source/Tutorial_MPI_Applications.rst b/docs/source/Tutorial_MPI_Applications.rst index 4c641cc3cc..673d4eadb4 100644 --- a/docs/source/Tutorial_MPI_Applications.rst +++ b/docs/source/Tutorial_MPI_Applications.rst @@ -81,21 +81,26 @@ examples. Simple Example with 3 hosts ........................... -At the most basic level, you can describe your simulated platform as a -graph of hosts and network links. For instance: +Imagine you want to describe a little platform with three hosts, +interconnected as follows: .. image:: /tuto_smpi/3hosts.png :align: center +This can be done with the following platform file, that considers the +simulated platform as a graph of hosts and network links. + .. literalinclude:: /tuto_smpi/3hosts.xml :language: xml -Note the way in which hosts, links, and routes are defined in -this XML. All hosts are defined with a speed (in Gflops), and links -with a latency (in us) and bandwidth (in MBytes per second). Other -units are possible and written as expected. Routes specify the list of -links encountered from one route to another. Routes are symmetrical by -default. +The elements basic elements (with :ref:`pf_tag_host` and +:ref:`pf_tag_link`) are described first, and then the routes between +any pair of hosts are explicitely given with :ref:`pf_tag_route`. Any +host must be given a computational speed (in flops) while links must +be given a latency (in seconds) and a bandwidth (in bytes per +second). Note that you can write 1Gflops instead of 1000000000flops, +and similar. Last point: :ref:`pf_tag_route`s are symmetrical by +default (but this can be changed). Cluster with a Crossbar ....................... @@ -274,7 +279,7 @@ container to enjoy the provided dependencies. when you log out of the container, so don't edit the other files! All needed dependencies are already installed in this container -(SimGrid, the C/C++/Fortran compilers, make, pajeng and R). Vite being +(SimGrid, the C/C++/Fortran compilers, make, pajeng, R and pajengr). Vite being only optional in this tutorial, it is not installed to reduce the image size. @@ -303,6 +308,14 @@ Debian and Ubuntu for example, you can get them as follows: sudo apt install simgrid pajeng make gcc g++ gfortran vite +For R analysis of the produced traces, you may want to install R, +and the `pajengr`_ package. + +.. code-block:: shell + + sudo apt install r-base r-cran-devtools cmake flex bison + Rscript -e "library(devtools); install_github('schnorr/pajengr');" + To take this tutorial, you will also need the platform files from the previous section as well as the source code of the NAS Parallel Benchmarks. Just clone `this repository @@ -397,7 +410,6 @@ use: .. code-block:: shell smpirun -np 4 -platform ../cluster_backbone.xml -trace --cfg=tracing/filename:lu.S.4.trace bin/lu.S.4 - pj_dump --ignore-incomplete-links lu.S.4.trace | grep State > lu.S.4.state.csv You can then produce a Gantt Chart with the following R chunk. You can either copy/paste it in a R session, or `turn it into a Rscript executable @@ -406,10 +418,11 @@ run it again and again. .. code-block:: R + library(pajengr) library(ggplot2) # Read the data - df_state = read.csv("lu.S.4.state.csv", header=F, strip.white=T) + df_state = pajeng_read("lu.S.4.trace") names(df_state) = c("Type", "Rank", "Container", "Start", "End", "Duration", "Level", "State"); df_state = df_state[!(names(df_state) %in% c("Type","Container","Level"))] df_state$Rank = as.numeric(gsub("rank-","",df_state$Rank))