SimGrid: Deployment Description

SimGrid 3.10 Versatile Simulation of Distributed Systems

- Home page
- Online documentation
- Dev's Corner

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Deployment Description

# Overview

When using SimGrid, you basically need your user code, a platform description, and something allowing to map your (simulated) process on your (simulated) platform. This is what deployment file is all about. Note that you can bypass the file stuff and code it directly in your user code, if you want to.

# An example

So deployment file just consists of saying which process runs where and which arguments it should take as input, the easier way to understand how to write it is just to take a look at the examples. Here is an example of it:

    <?xml version='1.0'?>
    <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
    <platform version="3">
      <!-- The master process (with some arguments) -->
      <process host="Tremblay" function="master">
         <argument value="20"/>       <!-- Number of tasks -->
         <argument value="50000000"/>  <!-- Computation size of tasks -->
         <argument value="1000000"/>   <!-- Communication size of tasks -->
         <argument value="Jupiter"/>  <!-- First slave -->
         <argument value="Fafard"/>   <!-- Second slave -->
         <argument value="Ginette"/>  <!-- Third slave -->
         <argument value="Bourassa"/> <!-- Last slave -->
         <argument value="Tremblay"/> <!-- Me! I can work too! -->
      </process>
      <!-- The slave processes (with no argument) -->
      <process host="Tremblay" function="slave"/>
      <process host="Jupiter" function="slave"/>
      <process host="Fafard" function="slave"/>
      <process host="Ginette" function="slave"/>
      <process host="Bourassa" function="slave"/>
    </platform>

# Process

There are optional attributes to the process tag, here is a list of all attributes of process:

- host (mandatory): the host on which the function will be executed.
- process (mandatory): the process function that will be executed on that host. You can deploy as many process as you want on the same host.
- start_time: the (simulated) time when the function will start. Default is zero.
- kill_time: the (simulated) time when the function will stop. Default is when it's actually finishing.