-/*! \page platform Step 1: %Model the underlying platform
+/*! \page platform %Model the underlying platform
@tableofcontents
For the last two items, there are essentially two possible ways you can provide
this information as an input:
-\li You can program it, either by using the Lua console (
- \ref MSG_Lua_funct) or, if you're using MSG, some of MSG's platform and
+\li You can program, if you're using MSG, some of MSG's platform and
deployment functions (\ref msg_simulation). If you want to use this,
check the particular documentation. (You can also check the section
\ref pf_flexml_bypassing, however, this documentation is deprecated;
there is a new, but undocumented, way to do it properly).
\li You can use two XML files: one contains the platform description while
- the other contains the deployment instructions.
+ the other contains the deployment instructions. The platform description
+ can also be in Lua format.
For more information on SimGrid's deployment features, please refer to
the \ref deployment documentation.
The XML checking is done based on the Document Type Definition (DTD) file,
available at
-<a href="http://simgrid.gforge.inria.fr/simgrid.dtd">http://simgrid.gforge.inria.fr/simgrid.dtd</a>.
+<a href="http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd</a>.
If you read the DTD, you should notice the following:
-\li The platform tags contain a version attribute; the current version is 3.
+\li The platform tags contain a version attribute; the current version is 4.
This property might be used in the future to provide backwards
compatibility.
\li The DTD contains definitions for the two files used by SimGrid (i.e.,
<b>Example:</b>
-\verbatim
+\code
<AS id="AS0" routing="Full">
<host id="host1" power="1000000000"/>
<host id="host2" power="1000000000"/>
<link id="link1" bandwidth="125000000" latency="0.000100"/>
<route src="host1" dst="host2"><link_ctn id="link1"/></route>
</AS>
-\endverbatim
+\endcode
In this example, AS0 contains two hosts (host1 and host2). The route
between the hosts goes through link1.
#### Adding a trace file ####
\verbatim
-<platform version="1">
- <host id="bob" power="500000000" availability_file="bob.trace" />
+<platform version="4">
+ <host id="bob" power="500Gf" availability_file="bob.trace" />
</platform>
\endverbatim
#### Example: Expliciting the default value "ON" ####
\verbatim
-<platform version="1">
- <host id="bob" power="500000000" state="ON" />
+<platform version="4">
+ <host id="bob" power="500Gf" state="ON" />
</platform>
\endverbatim
#### Adding a state file ####
\verbatim
-<platform version="1">
- <host id="bob" power="500000000" state_file="bob.fail" />
+<platform version="4">
+ <host id="bob" power="500Gf" state_file="bob.fail" />
</platform>
\endverbatim
bb_bw | no | int | Bandwidth for backbone (if any). See <b>link</b> section for syntax/details. If bb_bw and bb_lat (see below) attributes are omitted, no backbone is created (alternative cluster architecture <b>described before</b>).
bb_lat | no | int | Latency for backbone (if any). See <b>link</b> section for syntax/details. If bb_lat and bb_bw (see above) attributes are omitted, no backbone is created (alternative cluster architecture <b>described before</b>).
bb_sharing_policy | no | string | Sharing policy for the backbone (if any). See <b>link</b> section for syntax/details.
+limiter_link | no | int | Bandwidth for limiter link (if any). This adds a specific link for each node, to set the maximum bandwidth reached when communicating in both directions at the same time. In theory this value should be 2*bw for fullduplex links, but in reality this might be less. This value will depend heavily on the communication model, and on the cluster's hardware, so no default value can be set, this has to be measured. More details can be obtained in <a href="https://hal.inria.fr/hal-00919507/"> "Toward Better Simulation of MPI Applications on Ethernet/TCP Networks"</a>
availability_file | no | string | Allows you to use a file as input for availability. Similar to <b>hosts</b> attribute.
state_file | no | string | Allows you to use a file as input for states. Similar to <b>hosts</b> attribute.
loopback_bw | no | int | Bandwidth for loopback (if any). See <b>link</b> section for syntax/details. If loopback_bw and loopback_lat (see below) attributes are omitted, no loopback link is created and all intra-node communication will use the main network link of the node. Loopback link is a \ref pf_sharing_policy_fatpipe "\b FATPIPE".
loopback_lat | no | int | Latency for loopback (if any). See <b>link</b> section for syntax/details. See loopback_bw for more info.
topology | no | FLAT\|TORUS\|FAT_TREE (default: FLAT) | Network topology to use. SimGrid currently supports FLAT (with or without backbone, as described before), <a href="http://en.wikipedia.org/wiki/Torus_interconnect">TORUS </a> and FAT_TREE attributes for this tag.
-topo_parameters | no | string | Specific parameters to pass for the topology defined in the topology tag. For torus networks, comma-separated list of the number of nodes in each dimension of the torus. For fat trees, refer to \ref AsClusterFatTree "AsClusterFatTree documentation".
+topo_parameters | no | string | Specific parameters to pass for the topology defined in the topology tag. For torus networks, comma-separated list of the number of nodes in each dimension of the torus. For fat trees, refer to \ref simgrid::surf::AsClusterFatTree "AsClusterFatTree documentation".
TODO
\verbatim
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
<config id="General">
<prop id="maxmin/precision" value="0.000010"></prop>
<prop id="cpu/optim" value="TI"></prop>
\verbatim
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
<AS id="main" routing="Full">
<include file="clusterA.xml"></include>
<include file="clusterB.xml"></include>
<ASroute src="cl_4_1"
dst="cl_4_2"
gw_src="c_4_1-cl_4_1_router"
- gw_dst="c_4_2-cl_4_2_router"
- symmetrical="YES">
+ gw_dst="c_4_2-cl_4_2_router">
<link_ctn id="4_1"/>
<link_ctn id="bb_4"/>
<link_ctn id="4_2"/>
<ASroute src="cl_4_1"
dst="exitAS_4"
gw_src="c_4_1-cl_4_1_router"
- gw_dst="router_4"
- symmetrical="YES">
+ gw_dst="router_4">
<link_ctn id="4_1"/>
<link_ctn id="bb_4"/>
</ASroute>
<ASroute src="cl_4_2"
dst="exitAS_4"
gw_src="c_4_2-cl_4_2_router"
- gw_dst="router_4"
- symmetrical="YES">
+ gw_dst="router_4">
<link_ctn id="4_2"/>
<link_ctn id="bb_4"/>
</ASroute>
\verbatim
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
<config id="General">
<prop id="network/coordinates" value="yes"></prop>
</config>
<AS id="AS0" routing="Vivaldi">
- <host id="100030591" coordinates="25.5 9.4 1.4" power="1500000000.0" />
- <host id="100036570" coordinates="-12.7 -9.9 2.1" power="730000000.0" />
+ <host id="100030591" coordinates="25.5 9.4 1.4" power="1.5Gf" />
+ <host id="100036570" coordinates="-12.7 -9.9 2.1" power="7.3Gf" />
...
- <host id="100429957" coordinates="17.5 6.7 18.8" power="830000000.0" />
+ <host id="100429957" coordinates="17.5 6.7 18.8" power="8.3Gf" />
</AS>
</platform>
\endverbatim
\verbatim
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
<config id="General">
<prop id="network/coordinates" value="yes"></prop>
the provided ones.
You are also free to declare platform where the routing is not
-symmetric. For example, add the following to the previous file:
+symmetrical. For example, add the following to the previous file:
\verbatim
<route src="C" dst="A">
well-formed SimGrid platform XML file might result in the following
"events":
- - start "platform_description" with attribute version="2"
+ - start "platform_description" with attribute version="4"
- start "host" with attributes id="host1" power="1.0"
- end "host"
- start "host" with attributes id="host2" power="2.0"