debug real distributed applications. SimGrid enables studies in the
domains of (data-)Grids, IaaS Clouds, Clusters, High Performance
debug real distributed applications. SimGrid enables studies in the
domains of (data-)Grids, IaaS Clouds, Clusters, High Performance
Technically speaking, SimGrid is a library. It is neither a graphical
interface nor a command-line simulator running user scripts. The
interaction with SimGrid is done by writing programs with the exposed
functions to build your own simulator.
Technically speaking, SimGrid is a library. It is neither a graphical
interface nor a command-line simulator running user scripts. The
interaction with SimGrid is done by writing programs with the exposed
functions to build your own simulator.
-SimGrid is a Free Software distributed under the LGPL license. You are
-thus welcome to use it as you wish, or even to modify and distribute
+SimGrid is a Free Software distributed under the LGPLv3 license. You are
+thus welcome to use it as you wish or even to modify and distribute
your version (provided that your version is as free as ours). It also
means that SimGrid is developed by a vivid community of users and
developers. We hope that you will come and join us!
SimGrid is the result of almost 20 years of research from several
your version (provided that your version is as free as ours). It also
means that SimGrid is developed by a vivid community of users and
developers. We hope that you will come and join us!
SimGrid is the result of almost 20 years of research from several
-groups, both in France and in the USA. It benefited of many funding
-from various research instances, including the ANR, Inria, CNRS,
-University of Lorraine, University of Hawai'i at Manoa, ENS Rennes and
+groups, both in France and in the U.S.A. It benefited of many funding
+from various research bodies, including the ANR, Inria, CNRS,
+University of Lorraine, University of Hawai'i at Manoa, ENS Rennes, and
many others. Many thanks to our generous sponsors!
SimGrid is a powerful tool, but its learning curve can be rather
many others. Many thanks to our generous sponsors!
SimGrid is a powerful tool, but its learning curve can be rather
- The studied **Application**. This can be either a distributed
algorithm described in our simple APIs, or a full featured real
- The studied **Application**. This can be either a distributed
algorithm described in our simple APIs, or a full featured real
the platform files are written in XML althrough a Lua interface is
under development. SimGrid makes it easy to augment the Virtual
Platform with a Dynamic Scenario where for example the links are
the platform files are written in XML althrough a Lua interface is
under development. SimGrid makes it easy to augment the Virtual
Platform with a Dynamic Scenario where for example the links are
have even support to specify the applicative workload that you want
to feed to your application
:ref:`(more info) <platform>`.
have even support to specify the applicative workload that you want
to feed to your application
:ref:`(more info) <platform>`.
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
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
These components are put together to run a **simulation**, that is an
experiment or a probe. The result of one or many simulation provides
These components are put together to run a **simulation**, that is an
experiment or a probe. The result of one or many simulation provides
answering the **question** targeted by this study.
Here are some questions on which SimGrid is particularly relevant:
- **Compare an Application to another**. This is the classical use
case for scientists, who use SimGrid to test how the solution that
answering the **question** targeted by this study.
Here are some questions on which SimGrid is particularly relevant:
- **Compare an Application to another**. This is the classical use
case for scientists, who use SimGrid to test how the solution that
literature.
- **Design the best Virtual Platform for a given Application.**
Tweaking the platform file is much easier than building a new real
literature.
- **Design the best Virtual Platform for a given Application.**
Tweaking the platform file is much easier than building a new real
- platform for testing purpose. SimGrid also allows co-design of the
- platform and the application by modifying both of them.
+ platform for testing purpose. SimGrid also allows for the co-design
+ of the platform and the application by modifying both of them.
- **Debug Real Applications**. With real systems, is sometimes
difficult to reproduce the exact run leading to the bug that you
- **Debug Real Applications**. With real systems, is sometimes
difficult to reproduce the exact run leading to the bug that you
Depending on the context, you may see some parts of this process as
less important, but you should pay close attention if you want to be
confident in the results coming out of your simulations. In
Depending on the context, you may see some parts of this process as
less important, but you should pay close attention if you want to be
confident in the results coming out of your simulations. In
strive to double-check them. Likewise, you should question the realism
of your input configuration, and we even encourage you to doubt (and
check) the provided performance models.
To ease such questioning, you really should logically separate these
parts in your experimental setup. It is seen as a very bad practice to
strive to double-check them. Likewise, you should question the realism
of your input configuration, and we even encourage you to doubt (and
check) the provided performance models.
To ease such questioning, you really should logically separate these
parts in your experimental setup. It is seen as a very bad practice to
SimGrid is versatile and your mileage may vary, but you should start
with your Application specified as a C++ or Java program, using one of
the provided XML platform file, and with your deployment in a separate
SimGrid is versatile and your mileage may vary, but you should start
with your Application specified as a C++ or Java program, using one of
the provided XML platform file, and with your deployment in a separate
In this mode, SimGrid can provide information about the time taken by
your application, the amount of energy dissipated by the platform to
In this mode, SimGrid can provide information about the time taken by
your application, the amount of energy dissipated by the platform to
**Model-Checking Mode**. This can be seen as a sort of exhaustive
testing mode, where every possible outcome of your application is
**Model-Checking Mode**. This can be seen as a sort of exhaustive
testing mode, where every possible outcome of your application is
scenario where B arrives first.
This is a very powerful mode, where you can evaluate the correction of
scenario where B arrives first.
This is a very powerful mode, where you can evaluate the correction of
or **liveless properties** stating for example that if a given event
occurs, then another given event will occur in a finite amount of
steps. This mode is not only usable with the abstract algorithms
developed on top of the SimGrid APIs, but also with real MPI
or **liveless properties** stating for example that if a given event
occurs, then another given event will occur in a finite amount of
steps. This mode is not only usable with the abstract algorithms
developed on top of the SimGrid APIs, but also with real MPI
The main limit of Model Checking lays in the huge amount of scenarios
to explore. SimGrid tries to explore only non-redundant scenarios
The main limit of Model Checking lays in the huge amount of scenarios
to explore. SimGrid tries to explore only non-redundant scenarios
Another limit of this mode is that it does not use the performance
models of the simulation mode. Time becomes discrete: You can say for
example that the application took 42 steps to run, but there is no way
Another limit of this mode is that it does not use the performance
models of the simulation mode. Time becomes discrete: You can say for
example that the application took 42 steps to run, but there is no way
Finally, the model checker only explores the interleavings of
computations and communications. Other factors such as thread
Finally, the model checker only explores the interleavings of
computations and communications. Other factors such as thread
interested in the control flow. If your application apply filters to
huge images split in small blocks, the filtered image is probably not
what you are interested in. You are probably looking for a way to run
interested in the control flow. If your application apply filters to
huge images split in small blocks, the filtered image is probably not
what you are interested in. You are probably looking for a way to run
SimGrid is simply not intended to any study that would mandate the
abstracted phenomenon. Here are some **studies that you should not do
with SimGrid**:
SimGrid is simply not intended to any study that would mandate the
abstracted phenomenon. Here are some **studies that you should not do
with SimGrid**:
- Comparing kernel schedulers and policies
- Comparing variants of TCP
- Exploring pathological cases where TCP breaks down, resulting in
- Comparing kernel schedulers and policies
- Comparing variants of TCP
- Exploring pathological cases where TCP breaks down, resulting in
Scholar). Among them
`over 200 publications <https://simgrid.org/Usages.html>`_
(written by about 300 individuals) use SimGrid as a scientific
Scholar). Among them
`over 200 publications <https://simgrid.org/Usages.html>`_
(written by about 300 individuals) use SimGrid as a scientific
-instrument to conduct their experimental evaluation. These
-numbers do not count the articles contributing to SimGrid.
-This instrument was used in many research communities, such as
+instrument to conduct their experimental evaluation. These
+numbers do not include the articles contributing to SimGrid.
+This instrument was used in many research communities, such as
`High-Performance Computing <https://hal.inria.fr/inria-00580599/>`_,
`Cloud Computing <http://dx.doi.org/10.1109/CLOUD.2015.125>`_,
`Workflow Scheduling <http://dl.acm.org/citation.cfm?id=2310096.2310195>`_,
`High-Performance Computing <https://hal.inria.fr/inria-00580599/>`_,
`Cloud Computing <http://dx.doi.org/10.1109/CLOUD.2015.125>`_,
`Workflow Scheduling <http://dl.acm.org/citation.cfm?id=2310096.2310195>`_,
`here <http://hal.inria.fr/hal-00907887>`_ or
`there <https://hal.inria.fr/hal-01523608>`_),
SimGrid can provide high-quality performance predictions. For example,
`here <http://hal.inria.fr/hal-00907887>`_ or
`there <https://hal.inria.fr/hal-01523608>`_),
SimGrid can provide high-quality performance predictions. For example,
applications.
`BigDFT <http://bigdft.org>`_ (a massively parallel code
computing the electronic structure of chemical elements developped by
applications.
`BigDFT <http://bigdft.org>`_ (a massively parallel code
computing the electronic structure of chemical elements developped by