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.
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
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.
- 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
<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.
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`.
<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
<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.
- 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.
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.
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.
<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.
.. _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,
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.
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.
:``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.
:``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.
:``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`.
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*.
: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.
The hosts generated in the above example are named host-1.cluster, host-2.cluster1
etc.
+.. |br| raw:: html
+
+ <br />