Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Removed wrong endtags from documentation.
[simgrid.git] / doc / doxygen / platform.doc
index 7362f49..319aa0a 100644 (file)
@@ -76,9 +76,8 @@ selected by specifying the routing attribute in the AS tag:
 \endverbatim
 
 \remark
-Other supported values for the routing attribute can be found below, Section
-\ref pf_raf.
-\endremark
+  Other supported values for the routing attribute can be found below, Section
+  \ref pf_raf.
 
 There is also the ``<route>`` tag; this tag takes two attributes, ``src`` (source)
 and ``dst`` (destination). Both source and destination must be valid identifiers
@@ -88,29 +87,29 @@ to the destination specified in the tag. Hence, a route merely describes
 how to reach a router from another router.
 
 \remark
-More information and (code-)examples can be found in the Section \ref pf_rm.
-\endremark
-
-An AS can also contain one or more AS; this allows you to
-define the hierarchy of your platform.
-
-Within each AS, the following types of resources exist:
-\li <b>host</b>: a hostmachine; contains processors/cores etc.
-\li <b>router</b>: a router or a gateway.
-\li <b>link</b>: a link that defines a connection between two (or
-    more) resources. Every link has a bandwidth and a latency.
-\li <b>cluster</b>: like a real cluster, contains many hosts
-    interconnected by some dedicated network.
-
-Between these elements, a routing has to be defined. The AS is
-supposed to be Autonomous, hence this has to be done at the AS level. The AS
-handles two different types of entities (<b>host/router</b> and
-<b>AS</b>); you are responsible to define routes between those elements,
+  More information and (code-)examples can be found in Section \ref pf_rm.
+
+An AS can also contain itself one or more AS; this allows you to
+model the hierarchy of your platform.
+
+### Within each AS, the following types of resources exist:
+
+%Resource        | Documented in Section | Description
+--------------- | --------------------- | -----------
+AS              |                       | Every Autonomous System (AS) may contain one or more AS.
+host            | \ref pf_host          | This entity carries out the actual computation. For this reason, it contains processors (with potentially multiple cores).
+router          | \ref pf_router        | In SimGrid, routers are used to provide helpful information to routing algorithms.  Routers may also act as gateways, connecting several autonomous systems with each other.
+link            | \ref pf_link          | In SimGrid, (network)links define a connection between two or potentially even more resources. Every link has a bandwidth and a latency and may potentially experience congestion.
+cluster         | \ref pf_cluster       | In SimGrid, clusters were introduced to model large and homogenous environments. They are not really a resource by themselves - technically, they are only a shortcut, as they will internally set up all the hosts, network and routing for you, i.e., using this resource, one can easily setup thousands of hosts and links in a few lines of code. Each cluster is itself an AS.
+
+%As it is desirable to interconnect these resources, a routing has to be
+defined. The AS is supposed to be Autonomous, hence this has to be done at the
+AS level. The AS handles two different types of entities (<b>host/router</b>
+and <b>AS</b>). However, the user is responsible to define routes between those resources,
 otherwise entities will be unconnected and therefore unreachable from other
-entities. Although several algorithms for routing are built into SimGrid (see
-\ref pf_rm), you might encounter a case where you want to define
-routes manually (for instance, due to specific requirements of your
-platform).
+entities. Although several routing algorithms are built into SimGrid (see
+\ref pf_rm), you might encounter a case where you want to define routes
+manually (for instance, due to specific requirements of your platform).
 
 There are three tags to use:
 \li <b>ASroute</b>: to define routes between two  <b>AS</b>
@@ -282,14 +281,14 @@ so on.
 
 \subsubsection pf_cluster <cluster>
 
-A <b>cluster</b> represents a cluster. It is most of the time used
-when you want to have a bunch of machine defined quickly. It must be
-noted that cluster is meta-tag : <b>from the inner SimGrid point of
+``<cluster />`` represents a machine-cluster. It is most commonly used
+when one wants to define many hosts and a network quickly. Technically,
+``cluster`` is a meta-tag: <b>from the inner SimGrid point of
 view, a cluster is an AS where some optimized routing is defined</b>.
 The default inner organization of the cluster is as follow:
 
 \verbatim
-                 _________
+                 __________
                 |          |
                 |  router  |
     ____________|__________|_____________ backbone
@@ -300,17 +299,17 @@ The default inner organization of the cluster is as follow:
     c-0.me                             c-99.me
 \endverbatim
 
-You have a set of <b>host</b> defined. Each of them has a <b>link</b>
-to a central backbone (backbone is a <b>link</b> itself, as a link can
-be used to represent a switch, see the switch or <b>link</b> section
-below for more details about it). A <b>router</b> gives a way to the
-<b>cluster</b> to be connected to the outside world. Internally,
-cluster is then an AS containing all hosts : the router is the default
+Here, a set of <b>host</b>s is defined. Each of them has a <b>link</b>
+to a central backbone (backbone is a link itself, as a link can
+be used to represent a switch, see the switch / link section
+below for more details about it). A <b>router</b> allows to connect a
+<b>cluster</b> to the outside world. Internally,
+SimGrid treats a cluster as an AS containing all hosts: the router is the default
 gateway for the cluster.
 
-There is an alternative organization, which is as follow :
+There is an alternative organization, which is as follows:
 \verbatim
-                 _________
+                 __________
                 |          |
                 |  router  |
                 |__________|
@@ -322,9 +321,8 @@ There is an alternative organization, which is as follow :
             host0   host1   host2
 \endverbatim
 
-The principle is the same, except we don't have the backbone. The way
-to obtain it is simple : you just have to let bb_* attributes
-unset.
+The principle is the same, except that there is no backbone. This representation
+can be obtained easily: just do not set the bb_* attributes.
 
 
 Attribute name  | Mandatory | Values | Description
@@ -435,16 +433,16 @@ is completely equivalent to the following declaration:
 
 \subsection pf_ne Network equipments: links and routers
 
-There are two tags available to represent network entities:
+There are two tags at all times available to represent network entities and
+several other tags that are available only in certain contexts.
 1. ``<link>``: Represents a entity that has a limited bandwidth, a
     latency, and that can be shared according to TCP way to share this
     bandwidth.
 \remark
-The concept of links in SimGrid may not be intuitive, as links are not limited
-to connecting (exactly) two entities; in fact, you can have more than two equipments
-connected to it. (In graph theoretical terms: A link in SimGrid is not an edge,
-but a hyperedge)
-\endremark
+  The concept of links in SimGrid may not be intuitive, as links are not limited
+  to connecting (exactly) two entities; in fact, you can have more than two equipments
+  connected to it. (In graph theoretical terms: A link in SimGrid is not an edge,
+  but a hyperedge)
 
 2. ``<router/>``: Represents an entity that a message can be routed
     to, but that is unable to execute any code. In SimGrid, routers have also
@@ -452,10 +450,12 @@ but a hyperedge)
     do they increase latency. As a matter of fact, routers are (almost) ignored
     by the simulator when the simulation has begun.
 
+3. ``<backbone/>``: This tag is only available when the containing AS is
+                    used as a cluster (i.e., mode="Cluster")
+
 \remark
     If you want to represent an entity like a switch, you must use ``<link>`` (see section). Routers are used
     to run some routing algorithm and determine routes (see Section \ref pf_routing for details).
-\endremark
 
 \subsubsection pf_router <router/>
 
@@ -524,14 +524,17 @@ Picosecond  | ps | 0.000000000001 = 10^(-12)
 #### Sharing policy ####
 
 By default a network link is SHARED, i.e., if two or more data flows go
-through a link, the bandwidth is shared fairly among the data flows. This
+through a link, the bandwidth is shared fairly among all data flows. This
 is similar to the sharing policy TCP uses.
 
 On the other hand, if a link is defined as a FATPIPE,
-each flow going through this link will be allocated the complete bandwidth,
-i.e., no sharing occurs and the bandwidth is only limiting single flows:
+each flow going through this link will be provided with the complete bandwidth,
+i.e., no sharing occurs and the bandwidth is only limiting each flow individually.
 The complete bandwidth provided by this link in this mode
-is ``#flows*bandwidth``.
+is ``#flows*bandwidth``, with at most ``bandwidth`` being available per flow.
+
+Using the FATPIPE mode allows to model backbones that won't affect performance
+(except latency).
 
 The last mode available is FULLDUPLEX. This means that SimGrid will
 automatically generate two links (one carrying the suffix _UP and the other the
@@ -539,19 +542,17 @@ suffix _DOWN) for each ``<link>`` tag. This models situations when the direction
 of traffic is important.
 
 \remark
-Transfers from one side to the other will interact similarly as
-TCP when ACK returning packets circulate on the other direction. More
-discussion about it is available in the description of link_ctn description.
-\endremark
+  Transfers from one side to the other will interact similarly as
+  TCP when ACK returning packets circulate on the other direction. More
+  discussion about it is available in the description of link_ctn description.
 
 In other words: The SHARED policy defines a physical limit for the bandwidth.
 The FATPIPE mode defines a limit for each application,
 with no upper total limit.
 
 \remark
-Tip: By using the FATPIPE mode, you can model big backbones that
-won't affect performance (except latency).
-\endremark
+  Tip: By using the FATPIPE mode, you can model big backbones that
+  won't affect performance (except latency).
 
 #### Example ####
 
@@ -574,14 +575,13 @@ file. The structure of the files "link1.bw" and "link1.lat" is shown below.
 \endverbatim
 
 \note
-Even if the syntax is the same, the semantic of bandwidth and latency
-trace files differs from that of host availability files. For bandwidth and
-latency, the corresponding files do not
-express availability as a fraction of the available capacity but directly in
-    bytes per seconds for the bandwidth and in seconds for the latency. This is
-because most tools allowing to capture traces on real platforms (such as NWS)
-    express their results this way.
-    \endnote
+  Even if the syntax is the same, the semantic of bandwidth and latency
+  trace files differs from that of host availability files. For bandwidth and
+  latency, the corresponding files do not
+  express availability as a fraction of the available capacity but directly in
+  bytes per seconds for the bandwidth and in seconds for the latency. This is
+  because most tools allowing to capture traces on real platforms (such as NWS)
+  express their results this way.
 
 ##### Example of "link1.bw" file #####
 
@@ -632,14 +632,13 @@ TODO
 \subsection pf_storage Storage
 
 \note
-This is a prototype version that should evolve quickly, this
-is just some doc valuable only at the time of writing this doc</b>
-This section describes the storage management under SimGrid ; nowadays
-it's only usable with MSG. It relies basically on linux-like concepts.
-You also may want to have a look to its corresponding section in \ref
-msg_file_management ; functions access are organized as a POSIX-like
-interface.
-\endnote
+  This is a prototype version that should evolve quickly, this
+  is just some doc valuable only at the time of writing this doc
+  This section describes the storage management under SimGrid ; nowadays
+  it's only usable with MSG. It relies basically on linux-like concepts.
+  You also may want to have a look to its corresponding section in \ref
+  msg_file_management ; functions access are organized as a POSIX-like
+  interface.
 
 \subsubsection pf_sto_conc Storage Main concepts
 Basically there is 3 different entities to know :