Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
af906b4ba24e5ce8607aba8534964b3ebd14bc35
[simgrid.git] / docs / source / application.rst
1 .. _application:
2
3 Describing your Application
4 ***************************
5
6 .. raw:: html
7
8    <object id="TOC" data="graphical-toc.svg" width="100%" type="image/svg+xml"></object>
9    <script>
10    window.onload=function() { // Wait for the SVG to be loaded before changing it
11      var elem=document.querySelector("#TOC").contentDocument.getElementById("ApplicationBox")
12      elem.style="opacity:0.93999999;fill:#ff0000;fill-opacity:0.1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1";
13    }
14    </script>
15    <br/>
16    <br/>
17
18 Every SimGrid simulation entails a distributed application, that
19 virtually executes on the simulated platform. You can express this
20 application using one of the following interfaces. It is even possible
21 to mix several interfaces in the same simulation.
22
23  - :ref:`Describing Algorithms with the S4U interface <S4U_doc>` (in C++)
24  - Simulating existing MPI program with the SMPI toolsuite (in C, C++
25    or Fortran)
26  - In some cases, you want to replay a trace in the simulator. This
27    trace lists the events of your application or of your workload, and
28    your application is decomposed as a list of event handlers that are
29    fired according to the trace. SimGrid comes with a build-in support
30    for MPI traces (with solutions to import traces captured by several
31    MPI profilers). You can reuse this mecanism for any kind of trace
32    that you want to replay, for example to study how a P2P DHT overlay
33    reacts to a given workload.
34  - Simulating algorithms with one of the legacy interfaces: MSG and
35    SimDAG (in C or Java). SimGrid was founded in 1998, and many
36    interfaces were proposed along the way. MSG, introduced around
37    2002, is still present in SimGrid. It does not evolve anymore, but
38    given its popularity, it will not be removed until at least 2020.
39  - We are currently working on the ability to modify any existing
40    application so that it can run on top of SimGrid. This project,
41    called `Remote-SimGrid
42    <git@framagit.org:simgrid/remote-simgrid.git>`_, is highly
43    experimental at this point.
44
45 As you can see, SimGrid is very modular and can be used in many
46 ways. We are working to improve it along two main directions. First,
47 we plan to further increase the modularity of the simulator so that
48 users can invent the specific API or DSL they need for their usage. We
49 call this project BYOS: Build Your Own Simulator.
50
51 Executing existing applications within the simulator is another
52 long-term goal. SMPI and Remote-SimGrid already allow to execute some
53 applications, but our long term goal would be to allow the execution
54 of any legacy application, with absolutely no modification. We call it
55 SimOS, even if it will not become usable before several years of
56 additional work.
57
58 .. The old documentation of the obsolete MSG replay module was removed in
59 ..  https://github.com/simgrid/simgrid/commit/e05361c201fb95d2b7605e59001cd0a49a489739
60
61
62 .. include:: app_smpi.rst
63
64 .. include:: app_legacy.rst
65
66 .. toctree::
67    :hidden:
68
69       The S4U Interface <app_s4u.rst>