Some constructs and features are still missing, but we can probably
add them on demand. If you already used MPI before, SMPI should sound
very familiar to you: Use smpicc instead of mpicc, and smpirun instead
-of mpirun. The main difference is that smpirun takes a :ref:`virtual
+of mpirun. The main difference is that smpirun takes a :ref:`simulated
platform <platform>` as an extra parameter.
For **further scalability**, you may modify your code to speed up your
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="0.49497475"
- inkscape:cx="-267.7826"
- inkscape:cy="12.793361"
+ inkscape:zoom="1.979899"
+ inkscape:cx="196.07267"
+ inkscape:cy="183.99119"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
sodipodi:nodetypes="cccccccc" />
<a
xlink:href="platform.html"
- transform="translate(-0.37797619,-16.630952)"
- id="a6154">
+ id="a6154"
+ transform="translate(-0.37797619,-16.630952)">
<text
id="text1024"
y="87.523804"
y="87.523804"
x="90.802567"
id="tspan1022"
- sodipodi:role="line">Virtual </tspan><tspan
+ sodipodi:role="line">Simulated </tspan><tspan
style="font-size:7.76111126px;text-align:center;text-anchor:middle;stroke-width:0.26458332px"
y="94.795403"
x="89.567154"
</a>
<a
xlink:href="scenario.html#configuring-simgrid"
- transform="translate(-0.52916667)"
- id="a6149">
+ id="a6149"
+ transform="translate(-0.52916667)">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.29166698px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
Describing your Application <application.rst>
The S4U Interface <app_s4u.rst>
The SMPI Interface <app_smpi.rst>
- Describing the Virtual Platform <platform.rst>
+ Describing the Simulated Platform <platform.rst>
Describing the Experimental Scenario <scenario.rst>
Configuring SimGrid <scenar_config.rst>
The SimGrid Models <models.rst>
parallel application using for example the MPI interface
:ref:`(more info) <application>`.
- - The **Virtual Platform**. This is a description of a given
+ - The **Simulated Platform**. This is a description of a given
distributed system (machines, links, disks, clusters, etc). Most of
the platform files are written in XML althrough a Lua interface is
- under development. SimGrid makes it easy to augment the Virtual
+ under development. SimGrid makes it easy to augment the Simulated
Platform with a Dynamic Scenario where for example the links are
slowed down (because of external usage) or the machines fail. You
have even support to specify the applicative workload that you want
- The application's **Deployment Description**. In SimGrid
terminology, the application is an inert set of source files and
binaries. To make it run, you have to describe how your application
- should be deployed on the virtual platform. You need to specify
+ should be deployed on the simulated platform. You need to specify
which process is mapped on which machine, along with their parameters
:ref:`(more info) <scenario>`.
- - The **Platform Models**. They describe how the virtual platform
+ - The **Platform Models**. They describe how the simulated platform
reacts to the actions of the application. For example, they compute
- the time taken by a given communication on the virtual platform.
+ the time taken by a given communication on the simulated platform.
These models are already included in SimGrid, and you only need to
pick one and maybe tweak its configuration to get your results
:ref:`(more info) <models>`.
they contribute to compares to the existing solutions from the
literature.
- - **Design the best Virtual Platform for a given Application.**
+ - **Design the best [Simulated] Platform for a given Application.**
Tweaking the platform file is much easier than building a new real
platform for testing purpose. SimGrid also allows for the co-design
of the platform and the application by modifying both of them.
Depending on the intended study, SimGrid can be run in several execution modes.
**Simulation Mode**. This is the most common execution mode, where you want
-to study how your application behaves on the virtual platform under
+to study how your application behaves on the simulated platform under
the experimental scenario.
In this mode, SimGrid can provide information about the time taken by
each computation kernel only once, save on disk the time it takes and
some other metadata. This code block can then be skipped in simulation
and replaced by a synthetic block using the cached information. The
-virtual platform will take this block into account without requesting
+simulated platform will take this block into account without requesting
the real hosting machine to benchmark it.
SimGrid Limits
<br/>
<br/>
-Describing your Virtual Platform
-================================
+Describing your Simulated Platform
+==================================
simulation: SimGrid is a library, not a program. So you need to define
your own ``main()`` function as follows. This function is in charge of
creating a SimGrid simulation engine (on line 3), register the actor
-functions to the engine (on lines 7 and 8), load the virtual platform
+functions to the engine (on lines 7 and 8), load the simulated platform
from its description file (on line 11), map actors onto that platform
(on line 12) and run the simulation until its completion on line 15.
Platform File
.............
-Platform files define the virtual platform on which the provided
+Platform files define the simulated platform on which the provided
application will take place. In contains one or several **Network
Zone** |api_s4u_NetZone|_ that contain both |Host|_ and |Link|_
Resources, as well as routing information.
``mpiff``, or with ``smpicxx`` instead of ``mpicxx``. Then, the only
difference between the classical ``mpirun`` and the new ``smpirun`` is
that it requires a new parameter ``-platform`` with a file describing
-the virtual platform on which your application shall run.
+the simulated platform on which your application shall run.
Internally, all ranks of your application are executed as threads of a
single unix process. That's not a problem if your application has
------------------------
As a SMPI user, you are supposed to provide a description of your
-virtual platform, that is mostly a set of simulated hosts and network
+simulated platform, that is mostly a set of simulated hosts and network
links with some performance characteristics. SimGrid provides a plenty
of :ref:`documentation <platform>` and examples (in the
`examples/platforms <https://framagit.org/simgrid/simgrid/tree/master/examples/platforms>`_