SimGrid  3.15
Versatile Simulation of Distributed Systems
Deploy the simulation

When you want to simulate the behavior of your code with SimGrid, you need to tell SimGrid exactly what code (that you wrote) is supposed to be run by which host - so you need to assign processes/functions to hosts. The hosts in question here are the hosts of your platform model; see Section Describing the virtual platform for details on how to set one up.

This assignment of the form code -> host is what the deployment file is all about, which will be discussed briefly here.

You can bypass the deployment file by hardcoding it in your user code, at least when you're using MSG.

The deployment file looks just like a platform file, except that in this case, only two different tags are used: process and argument, whereas the latter is just used to supply additional configuration options to the process; the order in which the argument tags are given is important and depends on the application.

The process tag

Attribute list

As already written above, the process tag is the tag that defines which host executes which function (from your application). Hence, the host and function attributes are mandatory; however, there are some optional attributes to the process tag. Here is a list of all attributes of this tag:

Attribute name Mandatory Values Description
host yes String Describes which host will be used to run this process. The host must be defined in the platform file!
function yes String Name of a function that will be executed on this host; this function is written in userland code, for instance, C code. Valid values are functions that were registered by MSG_function_register()
start_time no int (Default: -1.0) The simulated time when this function will start to be computed.
kill_time no int (Default: -1.0) The simulated time when this function will end to be computed. By default, it stops only when it's done.
on_failure no DIE|RESTART (Default: "DIE") What should be done when the process fails.


Almost any MSG examples include a deployment file.

The argument tag

This tag must always be contained by a process tag - it doesn't make sense without it.

The way this works is that the order of arguments must be pre-defined by the user: It is totally up to you what your code expects as arguments and in which order. The arguments will be passed to your code (that is: to the function executed by this process) in the order you declare them.

Attribute list

Attribute name Mandatory Values Description
value yes String Contains the value for this parameter