SimGrid  3.12
Versatile Simulation of Distributed Systems
Getting started with SimGrid!

Welcome to SimGrid's documentation! As you may know, SimGrid is (actively developed) research software and contains many features. This documentation is "work in progress" (and we need the community's help to improve this documentation! 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 consists mostly of documentation for new and experienced users, but we also have several pages plus a technical documentation; in addition to that, we have also written many examples that you can easily adapt to your own needs. This page gives you a brief overview of available resources.

Introduction, Installation and how we can help

Document name Description
Introduction to SimGrid Introduces the user to basic features of SimGrid.
Installing Simgrid Explains how SimGrid can be installed; this covers Windows as well as Linux; plus, it shows how to install from a package or how to install from source.
Frequently Asked Questions Our FAQ
Getting help There are many ways to find answers to your questions. This document lists them.

Documentation for new users

Document name Description
Introduction to SimGrid Introduces the user to basic features of SimGrid.
Installing Simgrid Explains how SimGrid can be installed; this covers Windows as well as Linux; plus, it shows how to install from a package or how to install from source.
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 document explains several tests that we wrote for MSG; these tests are working simulations and you may learn something from looking at them.

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.
Bindings SimGrid supports many different bindings for languages such as Lua, Ruby, Java, ... You can run your simulations with those!
Packet level simulation Although SimGrid is not a packet level simulator, it does have bindings to two such simulators.
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. 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" .
./simdag/two_hosts.xml:22:   <trace_connect trace="Tremblay_power" element="Tremblay" kind="POWER"/>
./platforms/two_hosts_platform_with_availability_included.xml:24:<trace_connect kind="POWER" trace="A" element="Cpu A"/>
./platforms/two_hosts_platform_with_availability_included.xml:25:<trace_connect kind="HOST_AVAIL" trace="A_failure" element="Cpu A"/>
./platforms/two_hosts_platform_with_availability_included.xml:26:<trace_connect kind="POWER" trace="B" element="Cpu B"/>
Note
There's also a Section on examples for MSG.