SimGrid  3.13
Versatile Simulation of Distributed Systems
Getting started with SimGrid

Welcome to the SimGrid's documentation! As you may know, SimGrid is an actively developed research software and has a lot of different features. This documentation is a "work in progress" (and we need the help of the user community to improve it! If you're ready to step up and help us, see Section Contributing), but many features are already well described.

As for many projects, our documentation mostly consists in separate sections for new and experienced users. We also have several specific pages and a technical documentation. Finally, we provide users with many examples that can easily be adapted to your own needs. This page gives you a brief overview of the available resources.

Introduction, Installation, and how to get help

Document name Description
Installing Simgrid Explains how SimGrid can be installed on Linux, Windows, and MacOS. This installation can be done from a package or from source.
SimGrid First Tutorial Introduces the user to basic features of SimGrid.
Frequently Asked Questions Our FAQ
Getting help There are many ways to find answers to your questions. This page lists them all.

Documentation for new users

Document name Description
Installing Simgrid Explains how SimGrid can be installed on Linux, Windows, and MacOS. This installation can be done from a package or from source.
SimGrid First Tutorial Introduces the user to basic features of SimGrid.
Online Tutorials These tutorials cover most of the basics and might be valuable for what you want to do, especially the SimGrid User 101.
MSG examples This page details several examples that we wrote for the MSG API. They are working simulations and you may learn something by looking at them.
Bindings You can write your simulator in Java, if you prefer.

In order to actually use SimGrid, three steps are necessary:

Documentation for experienced users

Document name Description
Tracing Simulations Shows how the behavior of a program can be written to a file so that it can be analyzed.
Packet level simulation You can use the NS3 simulation models instead of our own.
SimGrid Developer Guide If you want to contribute or obtain a deeper understanding of SimGrid, this is the right location.

Examples shipped with SimGrid

SimGrid ships with many examples. Those using the MSG API are detailed in Section MSG examples. You can find them in the folder examples/. Especially when you're looking for examples on how to use a specific XML-tag, this will prove valuable, as you can easily search through all the files with tools like grep.

Here is the output of a quick search for examples for trace_connect:

% grep -R -i -n --include="*.xml" "trace_connect" .
./platforms/two_hosts.xml:17:  <trace_connect trace="Tremblay_power" element="Tremblay" kind="SPEED"/>
./platforms/two_hosts_platform_with_availability_included.xml:26:<trace_connect kind="SPEED" trace="A" element="Cpu A"/>
./platforms/two_hosts_platform_with_availability_included.xml:27:<trace_connect kind="HOST_AVAIL" trace="A_failure" element="Cpu A"/>
./platforms/two_hosts_platform_with_availability_included.xml:28:<trace_connect kind="SPEED" trace="B" element="Cpu B"/>