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 Describing the virtual platform for details on how to set one up.
This assignment of the form
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:
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
function attributes are mandatory; however, there are some optional attributes to the process tag. Here is a list of all attributes of this tag:
|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.
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.
|value||yes||String||Contains the value for this parameter|