Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI network calibration: tutorial
[simgrid.git] / docs / source / XML_reference.rst
index 1cdc2c8b8a7d4a1c2cc5632c10ec6f129d38e160..0e9fa33ce25871560fca05b3ad79b5096b99c4a8 100644 (file)
@@ -27,26 +27,24 @@ Your platform description should follow the specification presented in the
 
 SimGrid can simulate the time it takes to read or write data on disk, even if the stored data is not made persistent in
 any way by SimGrid. This means that your application will correctly be slowed down when doing simulated I/O, but there
-is no way to get the data stored this way. 
+is no way to get the data stored this way.
 
 We decided to not model anything beyond raw access in SimGrid because we believe that there is not single way of doing so.
 We provide an example model of file system as a plugin, (sparsely) documented in :ref:`plugin_filesystem`.
 
-**Parent tags:** :ref:`pf_tag_host`
-
-**Children tags:** :ref:`pf_tag_prop`
-
+**Parent tags:** :ref:`pf_tag_host` |br|
+**Children tags:** :ref:`pf_tag_prop` |br|
 **Attributes:**
 
 :``id``: A name of your choice (must be unique on this host).
 :``read_bw``: Read bandwidth for this disk. You must specify a unit as follows.
 
    **Units in bytes and powers of 2** (1 KiBps = 1,024 Bps):
-     Bps, KiBps, MiBps, GiBps, TiBps, PiBps, or EiBps.
+     Bps, KiBps, MiBps, GiBps, TiBps, PiBps, or EiBps. |br|
    **Units in bits  and powers of 2** (1 Bps = 8 bps):
-     bps, Kibps, Mibps, Gibps, Tibps, Pibps, or Eibps.
+     bps, Kibps, Mibps, Gibps, Tibps, Pibps, or Eibps. |br|
    **Units in bytes and powers of 10**  (1 KBps = 1,000 Bps):
-     Bps, KBps, MBps, GBps, TBps, PBps, or EBps.
+     Bps, KBps, MBps, GBps, TBps, PBps, or EBps. |br|
    **Units in bits  and powers of 10:**
      bps, Kbps, Mbps, Gbps, Tbps, Pbps, or Ebps.
 
@@ -78,10 +76,8 @@ way.
 Each configuration flag is described as a :ref:`pf_tag_prop` whose ``id`` is the
 name of the flag and ``value`` is what it has to be set to.
 
-**Parent tags:** :ref:`pf_tag_platform` (must appear before any other tags)
-
-**Children tags:** :ref:`pf_tag_prop`
-
+**Parent tags:** :ref:`pf_tag_platform` (must appear before any other tags) |br|
+**Children tags:** :ref:`pf_tag_prop` |br|
 **Attributes:** none
 
 .. code-block:: xml
@@ -108,10 +104,8 @@ name of the flag and ``value`` is what it has to be set to.
 
 A host is the computing resource on which an actor can run. See :cpp:class:`simgrid::s4u::Host`.
 
-**Parent tags:** :ref:`pf_tag_zone` (only leaf zones, i.e., zones containing neither inner zones nor clusters) 
-
-**Children tags:** :ref:`pf_tag_mount`, :ref:`pf_tag_prop`, :ref:`pf_tag_disk`
-
+**Parent tags:** :ref:`pf_tag_zone` (only leaf zones, i.e., zones containing neither inner zones nor clusters) |br|
+**Children tags:** :ref:`pf_tag_mount`, :ref:`pf_tag_prop`, :ref:`pf_tag_disk` |br|
 **Attributes:**
 
 :``id``: Host name.
@@ -156,7 +150,7 @@ A host is the computing resource on which an actor can run. See :cpp:class:`simg
 
    - At time t = 1, the host is turned off (a zero value means OFF)
    - At time t = 2, the host is turned back on (any other value than zero means ON)
-   - At time t = 10, the profile is reset (as we are 8 seconds after the last event). Then the host will be turned off 
+   - At time t = 10, the profile is reset (as we are 8 seconds after the last event). Then the host will be turned off
      again at time t = 11.
 
    If your profile does not contain any LOOPAFTER line, then it will
@@ -174,25 +168,23 @@ A host is the computing resource on which an actor can run. See :cpp:class:`simg
 <link>
 ------
 
-SimGrid links usually represent one-hop network connections (see :cpp:class:`simgrid::s4u::Link`), i.e., a single wire. 
-They can also be used to abstract a larger network interconnect, e.g., the entire transcontinental network, into a 
+SimGrid links usually represent one-hop network connections (see :cpp:class:`simgrid::s4u::Link`), i.e., a single wire.
+They can also be used to abstract a larger network interconnect, e.g., the entire transcontinental network, into a
 single element.
 
-**Parent tags:** :ref:`pf_tag_zone` (both leaf zones and inner zones)
-
-**Children tags:** :ref:`pf_tag_prop`
-
+**Parent tags:** :ref:`pf_tag_zone` (both leaf zones and inner zones) |br|
+**Children tags:** :ref:`pf_tag_prop` |br|
 **Attributes:**
 
 :``id``:  Link name. Must be unique over the whole platform.
 :``bandwidth``: Maximum bandwidth for this link. You must specify a unit as follows.
 
    **Units in bytes and powers of 2** (1 KiBps = 1,024 Bps):
-     Bps, KiBps, MiBps, GiBps, TiBps, PiBps, or EiBps.
+     Bps, KiBps, MiBps, GiBps, TiBps, PiBps, or EiBps. |br|
    **Units in bits  and powers of 2** (1 Bps = 8 bps):
-     bps, Kibps, Mibps, Gibps, Tibps, Pibps, or Eibps.
+     bps, Kibps, Mibps, Gibps, Tibps, Pibps, or Eibps. |br|
    **Units in bytes and powers of 10**  (1 KBps = 1,000 Bps):
-     Bps, KBps, MBps, GBps, TBps, PBps, or EBps.
+     Bps, KBps, MBps, GBps, TBps, PBps, or EBps. |br|
    **Units in bits  and powers of 10:**
      bps, Kbps, Mbps, Gbps, Tbps, Pbps, or Ebps.
 
@@ -286,17 +278,14 @@ single element.
 
 An element in a route, representing a previously defined link.
 
-**Parent tags:** :ref:`pf_tag_route`
-
-**Children tags:** none
-
+**Parent tags:** :ref:`pf_tag_route` |br|
+**Children tags:** none |br|
 **Attributes:**
 
 :``id``: Link that is to be included in this route.
 :``direction``: either ``UP`` (by default) or ``DOWN``, specifying whether to
                 use the uplink or downlink component of the link (that must
-                follow the ``SPLITDUPLEX`` sharing policy).
-                
+                follow the ``SPLITDUPLEX`` sharing policy). |br|
                 Please refer to the ``sharing_policy`` attribute in
                 :ref:`pf_tag_link`.
 
@@ -314,16 +303,14 @@ much better download rate than their upload rate.  To model this,
 <peer> creates and connects several elements: a host, an upload link
 and a download link.
 
-**Parent tags:** :ref:`pf_tag_zone` (only with Vivaldi routing)
-
-**Children tags:** none
-
+**Parent tags:** :ref:`pf_tag_zone` (only with Vivaldi routing) |br|
+**Children tags:** none |br|
 **Attributes:**
 
 :``id``: Name of the host. Must be unique on the whole platform.
 :``speed``: Computational power (in flop/s).
 
-   If you use DVFS, provide a comma-separated list of values for each pstate (see :ref:`howto_dvfs`). 
+   If you use DVFS, provide a comma-separated list of values for each pstate (see :ref:`howto_dvfs`).
 :``bw_in``: Bandwidth of the private downstream link, along with its
            unit. See :ref:`pf_tag_link`.
 :``bw_out``: Bandwidth of the private upstream link, along with its
@@ -351,13 +338,11 @@ and a download link.
 <platform>
 ----------
 
-**Parent tags:** none (this is the root tag of every file)
-
+**Parent tags:** none (this is the root tag of every file) |br|
 **Children tags:** :ref:`pf_tag_config` (must come first),
 :ref:`pf_tag_cluster`, :ref:`pf_tag_cabinet`, :ref:`pf_tag_peer`,
 :ref:`pf_tag_zone`, :ref:`pf_tag_trace`, :ref:`pf_tag_trace_connect`, or
-:ref:`pf_tag_actor` in :ref:`deployment <deploy>` files.
-
+:ref:`pf_tag_actor` in :ref:`deployment <deploy>` files. |br|
 **Attributes:**
 
 :``version``: Version of the DTD, describing the whole XML format.
@@ -387,14 +372,11 @@ following functions:
 - Host: :cpp:func:`simgrid::s4u::Host::get_property` or :cpp:func:`MSG_host_get_property_value`
 - Link: :cpp:func:`simgrid::s4u::Link::get_property`
 - Disk: :cpp:func:`simgrid::s4u::Disk::get_property`
-- Storage :cpp:func:`MSG_storage_get_property_value` (deprecated)
-- Zone: :cpp:func:`simgrid::s4u::Zone::get_property` of :cpp:func:`MSG_zone_get_property_value`
+- Zone: :cpp:func:`simgrid::s4u::NetZone::get_property` of :cpp:func:`MSG_zone_get_property_value`
 
 **Parent tags:** :ref:`pf_tag_actor`, :ref:`pf_tag_config`, :ref:`pf_tag_cluster`, :ref:`pf_tag_host`,
-:ref:`pf_tag_link`, :ref:`pf_tag_disk`,:ref:`pf_tag_zone`
-
-**Children tags:** none
-
+:ref:`pf_tag_link`, :ref:`pf_tag_disk`,:ref:`pf_tag_zone` |br|
+**Children tags:** none |br|
 **Attributes:**
 
 :``id``: Name of the defined property.
@@ -410,10 +392,8 @@ following functions:
 A path between two network locations, composed of several occurrences
 of :ref:`pf_tag_link` .
 
-**Parent tags:** :ref:`pf_tag_zone`
-
-**Children tags:** :ref:`pf_tag_link_ctn`
-
+**Parent tags:** :ref:`pf_tag_zone` |br|
+**Children tags:** :ref:`pf_tag_link_ctn` |br|
 **Attributes:**
 
 :``src``: Host from which this route starts. Must be an existing host.
@@ -434,8 +414,7 @@ any actor. It is only useful to some routing algorithms. In
 particular, they are useful when you want to use the NS3 bindings to
 break the routes that are longer than 1 hop.
 
-**Parent tags:** :ref:`pf_tag_zone` (only leaf zones, i.e., zones containing neither inner zones nor clusters)
-
+**Parent tags:** :ref:`pf_tag_zone` (only leaf zones, i.e., zones containing neither inner zones nor clusters) |br|
 **Attributes:**
 
 :``id``: Router name.
@@ -449,16 +428,13 @@ break the routes that are longer than 1 hop.
 <zone>
 ------
 
-A networking zone is an area in which elements are located. See :cpp:class:`simgrid::s4u::Zone`.
+A networking zone is an area in which elements are located. See :cpp:class:`simgrid::s4u::NetZone`.
 
 **Parent tags:** :ref:`pf_tag_platform`, :ref:`pf_tag_zone` (only internal nodes, i.e., zones
 containing only inner zones or clusters but no basic
-elements such as host or peer)
-
-**Children tags (if internal zone):** :ref:`pf_tag_cluster`, :ref:`pf_tag_link`, :ref:`pf_tag_zone`
-
-**Children tags (if leaf zone):** :ref:`pf_tag_host`, :ref:`pf_tag_link`, :ref:`pf_tag_peer`
-
+elements such as host or peer) |br|
+**Children tags (if internal zone):** :ref:`pf_tag_cluster`, :ref:`pf_tag_link`, :ref:`pf_tag_zone` |br|
+**Children tags (if leaf zone):** :ref:`pf_tag_host`, :ref:`pf_tag_link`, :ref:`pf_tag_peer` |br|
 **Attributes:**
 
 :``id``: Zone name.
@@ -470,7 +446,7 @@ elements such as host or peer)
 .. _pf_tag_zoneRoute:
 
 <zoneRoute>
-------
+-----------
 
 The purpose of this entity is to define a route between two zones.
 Recall that all zones form a tree, so to connect two sibling zones,
@@ -478,10 +454,8 @@ you must give such a zoneRoute specifying the source and destination zones,
 along with the gateway in each zone (i.e., the point to reach within that zone to reach the zone),
 and the list of links to go from one zone to another.
 
-**Parent tags:** :ref:`pf_tag_zone`
-
-**Children tags:** :ref:`pf_tag_link_ctn`
-
+**Parent tags:** :ref:`pf_tag_zone` |br|
+**Children tags:** :ref:`pf_tag_link_ctn` |br|
 **Attributes:**
 
 :``src``: Zone from which this route starts. Must be an existing zone.
@@ -542,10 +516,8 @@ There is an alternative organization, which is as follows:
 The principle is the same, except that there is no backbone. This representation
 can be obtained easily: just do not set the bb_* attributes.
 
-**Parent tags:** :ref:`pf_tag_platform`, :ref:`pf_tag_zone`
-
-**Children tags:** none
-
+**Parent tags:** :ref:`pf_tag_platform`, :ref:`pf_tag_zone` |br|
+**Children tags:** none |br|
 **Attributes:**
 
 :``id``: The identifier of the cluster. Facilitates referring to this cluster.
@@ -553,8 +525,8 @@ can be obtained easily: just do not set the bb_* attributes.
 :``suffix``: Each node of the cluster will be suffixed with this suffix
 :``radical``: Regexp used to generate cluster nodes name.
 
-    Syntax: "10-20" will give you 11 machines numbered from 10 to 20, "10-20;2" will give you 12 machines, one with the number 2, others numbered as before. 
-    
+    Syntax: "10-20" will give you 11 machines numbered from 10 to 20, "10-20;2" will give you 12 machines, one with the number 2, others numbered as before.
+
     The produced number is concatenated between prefix and suffix to form machine names.
 :``speed``: Same as the ``speed`` attribute of the :ref:`pf_tag_host` tag.
 :``core``: Same as the ``core`` attribute of the :ref:`pf_tag_host` tag.
@@ -571,14 +543,14 @@ can be obtained easily: just do not set the bb_* attributes.
 :``limiter_link``: 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 splitduplex 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 `Toward Better Simulation of MPI Applications on Ethernet/TCP Networks <https://hal.inria.fr/hal-00919507/>`_
 :``loopback_bw``: Bandwidth for loopback (if any). See :ref:`pf_tag_link` section for syntax/details.
 
     If loopback_bw and loopback_lat attributes are omitted, no loopback link is created and all intra-node communication will use the main network link of the node.
-    
+
     The sharing policy of a loopback link is **FATPIPE** :ref:`pf_tag_link`.
 :``loopback_lat``: Latency for loopback (if any). See loopback_bw for more info.
 :``topology``: Network topology to use.
@@ -590,7 +562,7 @@ can be obtained easily: just do not set the bb_* attributes.
 :``topo_parameters``: 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.
-    
+
     Please refer to :ref:`platform_examples`.
 
 
@@ -621,7 +593,7 @@ The second example creates one router and 100 machines with the following names:
     c-99.me
 
 .. note::
-    
+
     The router name is defined as the resulting string: prefix + clusterId + "_router" + suffix.
     In this case: *my_cluster_1_router* and *my_cluster_2_router.me*.
 
@@ -642,18 +614,16 @@ unsurprisingly, this tag was introduced to setup cabinets in data centers. Unlik
 :ref:`pf_tag_cluster`, however, the :ref:`pf_tag_cabinet` assumes that you create the backbone
 and routers yourself; see our examples below.
 
-**Parent tags:** :ref:`pf_tag_zone`
-
-**Children tags:** none
-
+**Parent tags:** :ref:`pf_tag_zone` |br|
+**Children tags:** none |br|
 **Attributes:**
 
 :``id``: The identifier of the cabinet. Facilitates referring to it.
 :``prefix``: Each node of the cabinet has to have a name. This name will be prefixed with this prefix.
 :``suffix``: Each node of the cabinet will be suffixed with this suffix.
 :``radical``: Regexp used to generate cabinet nodes name.
-    Syntax: "10-20" will give you 11 machines numbered from 10 to 20, "10-20;2" will give you 12 machines, one with the number 2, others numbered as before. 
-    
+    Syntax: "10-20" will give you 11 machines numbered from 10 to 20, "10-20;2" will give you 12 machines, one with the number 2, others numbered as before.
+
     The produced number is concatenated between prefix and suffix to form machine names.
 :``speed``: Same as the ``speed`` attribute of the :ref:`pf_tag_host` tag.
 :``bw``: Bandwidth for the links between nodes and backbone (if any). See the :ref:`pf_tag_link` for syntax/details.
@@ -679,3 +649,6 @@ The following example shows how to use the cabinet tag.
 The hosts generated in the above example are named host-1.cluster, host-2.cluster1
 etc.
 
+.. |br| raw:: html
+
+   <br />