SimGrid
3.13
Versatile Simulation of Distributed Systems
|
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 Model the underlying 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.
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.
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. |
A complete example including a deployment file can be found in the Section MSG basics.
See also files such as examples/msg/masterslave/deployment_masterslave.xml
.
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 name | Mandatory | Values | Description |
---|---|---|---|
value | yes | String | Contains the value for this parameter |
A complete example including a deployment file can be found in the Section MSG basics.
See also files such as examples/msg/masterslave/deployment_masterslave.xml
.