Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
authorMartin Quinson <martin.quinson@loria.fr>
Mon, 20 Jun 2016 09:52:00 +0000 (11:52 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 20 Jun 2016 09:52:00 +0000 (11:52 +0200)
82 files changed:
examples/java/app/masterworker/masterworker.xml
examples/java/process/startkilltime/startkilltime.xml
examples/msg/async-wait/async-wait2_d.xml
examples/msg/async-wait/async-wait3_d.xml
examples/msg/async-wait/async-wait4_d.xml
examples/msg/async-wait/async-wait_d.xml
examples/msg/network-ns3/3hosts_2links_d.xml
examples/msg/network-ns3/3links-timer_d.xml
examples/msg/network-ns3/3links_d.xml
examples/msg/network-ns3/crosstraffic_d.xml
examples/msg/network-ns3/dogbone_d.xml
examples/msg/network-ns3/one_cluster_d.xml
examples/msg/network-ns3/onelink_d.xml
examples/msg/network-ns3/two_clusters_d.xml
examples/msg/task-priority/task-priority_d.xml
examples/platforms/bypassASroute.xml
examples/platforms/cloud.xml
examples/platforms/cluster.xml
examples/platforms/cluster_and_one_host.xml
examples/platforms/cluster_dragonfly.xml
examples/platforms/cluster_fat_tree.xml
examples/platforms/cluster_torus.xml
examples/platforms/config.xml
examples/platforms/data_center.xml
examples/platforms/dogbone.xml
examples/platforms/small_platform_fatpipe.xml
examples/platforms/storage/remote_io.xml
examples/platforms/storage/storage.xml
examples/platforms/three_multicore_hosts.xml
examples/platforms/two_hosts_platform_with_availability_included.xml
examples/s4u/CMakeLists.txt
examples/s4u/actions-comm/s4u_actions-comm.cpp [new file with mode: 0644]
examples/s4u/actions-comm/s4u_actions-comm.tesh [new file with mode: 0644]
examples/s4u/actions-comm/s4u_actions-comm.txt [new file with mode: 0644]
examples/s4u/actions-comm/s4u_actions-comm_d.xml [new file with mode: 0644]
examples/s4u/actions-comm/s4u_actions-comm_split_d.xml [new file with mode: 0644]
examples/s4u/actions-comm/s4u_actions-comm_split_p0.txt [new file with mode: 0644]
examples/s4u/actions-comm/s4u_actions-comm_split_p1.txt [new file with mode: 0644]
include/simgrid/s4u.h
include/simgrid/s4u/conditionVariable.hpp [new file with mode: 0644]
include/simgrid/s4u/mutex.hpp
include/simgrid/simix.h
src/s4u/s4u_conditionVariable.cpp [new file with mode: 0644]
src/simix/smx_synchro.cpp
src/simix/smx_synchro_private.h
teshsuite/msg/trace_integration/test-hbp1-c0s0-c0s1.xml
teshsuite/msg/trace_integration/test-hbp1-c0s0-c1s0.xml
teshsuite/msg/trace_integration/test-hbp1-c0s1-c0s2.xml
teshsuite/msg/trace_integration/test-hbp1-c0s1-c2s2.xml
teshsuite/msg/trace_integration/test-hbp1-c0s2-c1s0.xml
teshsuite/msg/trace_integration/test-hbp1-c0s2-c1s1.xml
teshsuite/msg/trace_integration/test-hbp1-c1s1-c1s2.xml
teshsuite/msg/trace_integration/test-hbp1-c1s1-c3s2.xml
teshsuite/msg/trace_integration/test-hbp1.0-hbp1.0-hbp1.0.xml
teshsuite/msg/trace_integration/test-hbp1.0-hbp3.0-hbp4.0.xml
teshsuite/msg/trace_integration/test-hbp1.5-hbp1.5.xml
teshsuite/msg/trace_integration/test-hbp2.5-hbp1.5.xml
teshsuite/simdag/platforms/Dijkstra.xml
teshsuite/simdag/platforms/bogus_disk_attachment.xml
teshsuite/simdag/platforms/bogus_missing_dst_gateway.xml
teshsuite/simdag/platforms/bogus_missing_src_gateway.xml
teshsuite/simdag/platforms/bogus_two_hosts_asymetric.xml
teshsuite/simdag/platforms/link_attributes.xml
teshsuite/simdag/platforms/one_cluster.xml
teshsuite/simdag/platforms/one_cluster_fullduplex.xml
teshsuite/simdag/platforms/one_cluster_multicore.xml
teshsuite/simdag/platforms/one_cluster_router_id.xml
teshsuite/simdag/platforms/platform_2p_1bb.xml
teshsuite/simdag/platforms/platform_2p_1fl.xml
teshsuite/simdag/platforms/platform_2p_1sl.xml
teshsuite/simdag/platforms/platform_2p_1sl_hetero.xml
teshsuite/simdag/platforms/platform_2p_1switch.xml
teshsuite/simdag/platforms/platform_include.xml
teshsuite/simdag/platforms/properties.xml
teshsuite/simdag/platforms/test_of_is_router.xml
teshsuite/simdag/platforms/three_hosts_non_symmetric_route.xml
teshsuite/simdag/platforms/two_clusters.xml
teshsuite/simdag/platforms/two_clusters_router_id.xml
teshsuite/simdag/platforms/two_hosts_multi_hop.xml
teshsuite/simdag/platforms/two_hosts_one_link.xml
teshsuite/simdag/platforms/two_hosts_one_link_fullduplex.xml
tools/cmake/DefinePackages.cmake

index d3d4cd8..bff3dcd 100644 (file)
@@ -2,10 +2,10 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Jacquelin" function="app.masterworker.Master">
-     <argument value="5"/>     <!-- Amount of tasks to dispatch -->
-     <argument value="50000"/> <!-- Computation size of each task -->
-     <argument value="10"/>    <!-- Communication size of each one -->
-     <argument value="7"/>     <!-- Amount of workers waiting for orders -->
+    <argument value="5"/>     <!-- Amount of tasks to dispatch -->
+    <argument value="50000"/> <!-- Computation size of each task -->
+    <argument value="10"/>    <!-- Communication size of each one -->
+    <argument value="7"/>     <!-- Amount of workers waiting for orders -->
   </process>
 
   <process host="iRMX" function="app.masterworker.Worker">      <argument value="0"/>  <!-- Input mailbox --> </process>
index dd3e3c7..348226e 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-    <process host="node-0.acme.org" function="process.startkilltime.Sleeper" start_time="0" kill_time="5">  <argument value="10"/></process>
-    <process host="node-1.acme.org" function="process.startkilltime.Sleeper" start_time="1" kill_time="6">  <argument value="10"/></process>
-    <process host="node-2.acme.org" function="process.startkilltime.Sleeper" start_time="2" kill_time="7">  <argument value="4" /></process>
-    <process host="node-3.acme.org" function="process.startkilltime.Sleeper" start_time="3" kill_time="8">  <argument value="4" /></process>
-    <process host="node-4.acme.org" function="process.startkilltime.Sleeper" start_time="4" kill_time="9">  <argument value="5" /></process>
-    <process host="node-5.acme.org" function="process.startkilltime.Sleeper" start_time="5" kill_time="10"> <argument value="5"/></process>
+  <process host="node-0.acme.org" function="process.startkilltime.Sleeper" start_time="0" kill_time="5">  <argument value="10"/></process>
+  <process host="node-1.acme.org" function="process.startkilltime.Sleeper" start_time="1" kill_time="6">  <argument value="10"/></process>
+  <process host="node-2.acme.org" function="process.startkilltime.Sleeper" start_time="2" kill_time="7">  <argument value="4" /></process>
+  <process host="node-3.acme.org" function="process.startkilltime.Sleeper" start_time="3" kill_time="8">  <argument value="4" /></process>
+  <process host="node-4.acme.org" function="process.startkilltime.Sleeper" start_time="4" kill_time="9">  <argument value="5" /></process>
+  <process host="node-5.acme.org" function="process.startkilltime.Sleeper" start_time="5" kill_time="10"> <argument value="5"/></process>
 </platform>
index fe79729..6e73106 100644 (file)
@@ -3,12 +3,12 @@
 <platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
-     <argument value="3"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="1"/>         <!-- Number of receivers -->
-     <argument value="1"/>         <!-- Sleep_start_time -->
-     <argument value="0.1"/>      <!-- Time for test -->
+    <argument value="3"/>       <!-- Number of tasks -->
+    <argument value="50000000"/>  <!-- Computation size of tasks -->
+    <argument value="1000000"/>   <!-- Communication size of tasks -->
+    <argument value="1"/>         <!-- Number of receivers -->
+    <argument value="1"/>         <!-- Sleep_start_time -->
+    <argument value="0.1"/>      <!-- Time for test -->
   </process>
   <!-- The receiver processes -->
   <process host="Ruby" function="receiver">
index 651a8f4..27c1d20 100644 (file)
@@ -3,12 +3,12 @@
 <platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
-     <argument value="3"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="1"/>         <!-- Number of receivers -->
-     <argument value="5"/>         <!-- Sleep_start_time -->
-     <argument value="0"/>      <!-- Time for test -->
+    <argument value="3"/>       <!-- Number of tasks -->
+    <argument value="50000000"/>  <!-- Computation size of tasks -->
+    <argument value="1000000"/>   <!-- Communication size of tasks -->
+    <argument value="1"/>         <!-- Number of receivers -->
+    <argument value="5"/>         <!-- Sleep_start_time -->
+    <argument value="0"/>      <!-- Time for test -->
   </process>
   <!-- The receiver processes -->
   <process host="Ruby" function="receiver">
index 22650e2..939d62e 100644 (file)
@@ -3,12 +3,12 @@
 <platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
-     <argument value="3"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="1"/>         <!-- Number of receivers -->
-     <argument value="1"/>         <!-- Sleep_start_time -->
-     <argument value="0"/>      <!-- Time for test -->
+    <argument value="3"/>       <!-- Number of tasks -->
+    <argument value="50000000"/>  <!-- Computation size of tasks -->
+    <argument value="1000000"/>   <!-- Communication size of tasks -->
+    <argument value="1"/>         <!-- Number of receivers -->
+    <argument value="1"/>         <!-- Sleep_start_time -->
+    <argument value="0"/>      <!-- Time for test -->
   </process>
   <!-- The receiver processes -->
   <process host="Ruby" function="receiver">
index bb55c55..f72618e 100644 (file)
@@ -3,12 +3,12 @@
 <platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
-     <argument value="3"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="1"/>         <!-- Number of receivers -->
-     <argument value="5"/>         <!-- Sleep_start_time -->
-     <argument value="0.1"/>      <!-- Time for test -->
+    <argument value="3"/>       <!-- Number of tasks -->
+    <argument value="50000000"/>  <!-- Computation size of tasks -->
+    <argument value="1000000"/>   <!-- Communication size of tasks -->
+    <argument value="1"/>         <!-- Number of receivers -->
+    <argument value="5"/>         <!-- Sleep_start_time -->
+    <argument value="0.1"/>      <!-- Time for test -->
   </process>
   <!-- The receiver processes -->
   <process host="Ruby" function="receiver">
index 661289a..a360912 100644 (file)
@@ -2,9 +2,9 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Tremblay" function="master">
-      <argument value="100"/>
-      <argument value="Jupiter"/>
-      <argument value="1"/>
+    <argument value="100"/>
+    <argument value="Jupiter"/>
+    <argument value="1"/>
   </process>
   <process host="Jupiter" function="worker">
     <argument value="1"/>
index e196248..c9727c3 100644 (file)
@@ -2,33 +2,33 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Tremblay" function="master">
-      <argument value="10000"/>
-      <argument value="Jupiter"/>
-      <argument value="1"/>
+    <argument value="10000"/>
+    <argument value="Jupiter"/>
+    <argument value="1"/>
   </process>
   <process host="Jupiter" function="worker">
     <argument value="1"/>
   </process>
   <process host="Fafard" function="master">
-      <argument value="10000"/>
-      <argument value="Ginette"/>
-      <argument value="2"/>
+    <argument value="10000"/>
+    <argument value="Ginette"/>
+    <argument value="2"/>
   </process>
   <process host="Ginette" function="worker">
     <argument value="2"/>
   </process>
   <process host="Bourassa" function="master">
-      <argument value="10000"/>
-      <argument value="Lovelace"/>
-      <argument value="3"/>
+    <argument value="10000"/>
+    <argument value="Lovelace"/>
+    <argument value="3"/>
   </process>
   <process host="Lovelace" function="worker">
     <argument value="3"/>
   </process>
   <process host="Bourassa" function="master" start_time="2.0">
-      <argument value="10000"/>
-      <argument value="Lovelace"/>
-      <argument value="4"/>
+    <argument value="10000"/>
+    <argument value="Lovelace"/>
+    <argument value="4"/>
   </process>
   <process host="Lovelace" function="worker">
     <argument value="4"/>
index 37ea1f8..9ae01af 100644 (file)
@@ -2,25 +2,25 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Tremblay" function="master">
-      <argument value="10000"/>
-      <argument value="Jupiter"/>
-      <argument value="1"/>
+    <argument value="10000"/>
+    <argument value="Jupiter"/>
+    <argument value="1"/>
   </process>
   <process host="Jupiter" function="worker">
     <argument value="1"/>
   </process>
   <process host="Fafard" function="master">
-      <argument value="10000"/>
-      <argument value="Ginette"/>
-      <argument value="2"/>
+    <argument value="10000"/>
+    <argument value="Ginette"/>
+    <argument value="2"/>
   </process>
   <process host="Ginette" function="worker">
     <argument value="2"/>
   </process>
   <process host="Bourassa" function="master">
-      <argument value="10000"/>
-      <argument value="Lovelace"/>
-      <argument value="3"/>
+    <argument value="10000"/>
+    <argument value="Lovelace"/>
+    <argument value="3"/>
   </process>
   <process host="Lovelace" function="worker">
     <argument value="3"/>
index 14efa41..91ce479 100644 (file)
@@ -2,33 +2,33 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="S1" function="master">
-      <argument value="10000"/>
-      <argument value="C1"/>
-      <argument value="1"/>
+    <argument value="10000"/>
+    <argument value="C1"/>
+    <argument value="1"/>
   </process>
   <process host="C1" function="worker">
     <argument value="1"/>
   </process>
   <process host="S1" function="master">
-      <argument value="10000"/>
-      <argument value="C1"/>
-      <argument value="2"/>
+    <argument value="10000"/>
+    <argument value="C1"/>
+    <argument value="2"/>
   </process>
   <process host="C1" function="worker">
     <argument value="2"/>
   </process>
   <process host="S1" function="master">
-      <argument value="10000"/>
-      <argument value="C1"/>
-      <argument value="3"/>
+    <argument value="10000"/>
+    <argument value="C1"/>
+    <argument value="3"/>
   </process>
   <process host="C1" function="worker">
     <argument value="3"/>
   </process>
   <process host="C1" function="master">
-      <argument value="10000"/>
-      <argument value="S1"/>
-      <argument value="4"/>
+    <argument value="10000"/>
+    <argument value="S1"/>
+    <argument value="4"/>
   </process>
   <process host="S1" function="worker">
     <argument value="4"/>
index 803a4f8..cf3068b 100644 (file)
@@ -2,19 +2,19 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="S1" function="master">
-      <argument value="10000"/>
-      <argument value="C1"/>
-      <argument value="0"/>
+    <argument value="10000"/>
+    <argument value="C1"/>
+    <argument value="0"/>
   </process>
   <process host="S2" function="master">
-      <argument value="10000"/>
-      <argument value="C2"/>
-      <argument value="1"/>
+    <argument value="10000"/>
+    <argument value="C2"/>
+    <argument value="1"/>
   </process>
   <process host="C1" function="worker">
-      <argument value="0"/>
+    <argument value="0"/>
   </process>
   <process host="C2" function="worker">
-      <argument value="1"/>
+    <argument value="1"/>
   </process>
 </platform>
index 9c3dd43..9eab752 100644 (file)
@@ -2,9 +2,9 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="node-2.acme.org" function="master">
-      <argument value="100"/>
-      <argument value="node-6.acme.org"/>
-      <argument value="1"/>
+    <argument value="100"/>
+    <argument value="node-6.acme.org"/>
+    <argument value="1"/>
   </process>
   <process host="node-6.acme.org" function="worker">
     <argument value="1"/>
index eaaafc6..4bc5107 100644 (file)
@@ -2,9 +2,9 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="S1" function="master">
-      <argument value="10000"/>
-      <argument value="C1"/>
-      <argument value="1"/>
+    <argument value="10000"/>
+    <argument value="C1"/>
+    <argument value="1"/>
   </process>
   <process host="C1" function="worker">
     <argument value="1"/>
index 99f2583..db540cb 100644 (file)
@@ -2,9 +2,9 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="node-3.acme.org" function="master">
-      <argument value="100"/>
-      <argument value="node-16.acme.org"/>
-      <argument value="1"/>
+    <argument value="100"/>
+    <argument value="node-16.acme.org"/>
+    <argument value="1"/>
   </process>
   <process host="node-16.acme.org" function="worker">
     <argument value="1"/>
index dc50e15..3d8f513 100644 (file)
@@ -1,6 +1,12 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-  <process host="Fafard" function="test"> <argument value="76296000"/> <argument value="1.0"/> </process>
-  <process host="Fafard" function="test"> <argument value="76296000"/> <argument value="2.0"/> </process>
+  <process host="Fafard" function="test">
+    <argument value="76296000"/>
+    <argument value="1.0"/>
+  </process>
+  <process host="Fafard" function="test">
+    <argument value="76296000"/>
+    <argument value="2.0"/>
+  </process>
 </platform>
index f53ca93..7bca96a 100644 (file)
     <link id="link_tmp"  bandwidth="1.25GBps" latency="500us"/>
 
     <ASroute src="my_cluster_1" dst="my_cluster_2" gw_src="my_cluster_1_router" gw_dst="my_cluster_2_router">
-       <link_ctn id="link1"/><link_ctn id="link2"/>
+      <link_ctn id="link1"/><link_ctn id="link2"/>
     </ASroute>
     <ASroute src="my_cluster_1" dst="my_cluster_3" gw_src="my_cluster_1_router" gw_dst="my_cluster_3_router">
-       <link_ctn id="link1"/><link_ctn id="link3"/>
+      <link_ctn id="link1"/><link_ctn id="link3"/>
     </ASroute>
     <ASroute src="my_cluster_2" dst="my_cluster_3" gw_src="my_cluster_2_router" gw_dst="my_cluster_3_router">
-       <link_ctn id="link2"/><link_ctn id="link3"/>
+      <link_ctn id="link2"/><link_ctn id="link3"/>
     </ASroute>
 
     <bypassASroute src="my_cluster_1" dst="my_cluster_2" gw_src="my_cluster_1_router" gw_dst="my_cluster_2_router">
-       <link_ctn id="link_tmp"/>
+      <link_ctn id="link_tmp"/>
     </bypassASroute>
   </AS>
 </platform>
index f7c2710..e2cc7a3 100644 (file)
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<config id="General">
-  <prop id="network/coordinates" value="yes"/>
-</config>
+  <config id="General">
+    <prop id="network/coordinates" value="yes"/>
+  </config>
 
-<AS id="AS0" routing="Vivaldi">
-  <AS id="AS1_dc1" routing="Full">
-    <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation -->
-    <!-- 3 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
-    <!-- clusters -->
-    <cluster id="AS1_cb1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" speed="5.2297Gf"
+  <AS id="AS0" routing="Vivaldi">
+    <AS id="AS1_dc1" routing="Full">
+      <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation -->
+      <!-- 3 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+      <!-- clusters -->
+      <cluster id="AS1_cb1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" speed="5.2297Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS1_cb2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" speed="8.8925Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS1_cb3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" speed="13.357Gf"
              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS1_cb2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" speed="8.8925Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS1_cb3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" speed="13.357Gf"
-           bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-
-    <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
-
-    <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-    <AS id="gw_AS1_dc1" routing="Floyd">
-      <!-- equipments-->
-      <router id="gw_dc1_horizdist"/>
-      <router id="gw_dc1_maindist"/>
-      <router id="gw_dc1_entranceroom"/>
-      <!-- ISP end point, entering the cloud, so it has coordinates -->
-      <router id="router_AS1_dc1" coordinates="25.5 9.4 1.4"/>
-
-      <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>
-      <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>
-      <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>
-
-      <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
-      <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
-      <route src="gw_dc1_entranceroom" dst="router_AS1_dc1"><link_ctn id="dc1_entranceroom_ISP"/></route>
-    </AS>
 
-    <!-- internal routes between clusters -->
-    <ASroute src="AS1_cb3" dst="AS1_cb1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com"
-             gw_dst="cb1-AS1_cb1_router.dc1.acloud.com">
-      <link_ctn id="link_dc1_cb3"/><link_ctn id="link_dc1_cb1"/>
-    </ASroute>
-    <ASroute src="AS1_cb2" dst="AS1_cb1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
-             gw_dst="cb1-AS1_cb1_router.dc1.acloud.com">
-      <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb1"/>
-    </ASroute>
-    <ASroute src="AS1_cb2" dst="AS1_cb3" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
-             gw_dst="cb3-AS1_cb3_router.dc1.acloud.com">
-      <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb3"/>
-    </ASroute>
-    <!-- routes to exit AS -->
-    <ASroute src="AS1_cb1" dst="gw_AS1_dc1" gw_src="cb1-AS1_cb1_router.dc1.acloud.com"
-             gw_dst="gw_dc1_horizdist">
-       <link_ctn id="link_dc1_cb1"/>
-    </ASroute>
-    <ASroute src="AS1_cb3" dst="gw_AS1_dc1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com"
-             gw_dst="gw_dc1_horizdist">
-       <link_ctn id="link_dc1_cb3"/>
-    </ASroute>
-    <ASroute src="AS1_cb2" dst="gw_AS1_dc1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
-             gw_dst="gw_dc1_horizdist">
-       <link_ctn id="link_dc1_cb2"/>
-    </ASroute> 
-    <ASroute dst="AS1_cb1" src="gw_AS1_dc1" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com"
-             gw_src="gw_dc1_horizdist">
-       <link_ctn id="link_dc1_cb1"/>
-    </ASroute>
-    <ASroute dst="AS1_cb3" src="gw_AS1_dc1" gw_dst="cb3-AS1_cb3_router.dc1.acloud.com"
-             gw_src="gw_dc1_horizdist">
-       <link_ctn id="link_dc1_cb3"/>
-    </ASroute>
-    <ASroute dst="AS1_cb2" src="gw_AS1_dc1" gw_dst="cb2-AS1_cb2_router.dc1.acloud.com"
-             gw_src="gw_dc1_horizdist">
-       <link_ctn id="link_dc1_cb2"/>
-    </ASroute>
-  </AS>
+      <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
 
-  <AS id="AS2_dc2" routing="Full">
-    <!--bigger tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : Full -->
-    <!-- 6 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
-    <!-- clusters -->
-    <cluster id="AS2_cb1" prefix="cb1-" suffix=".dc2.acloud.com" radical="1-40" speed="5.2297Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS2_cb2" prefix="cb2-" suffix=".dc2.acloud.com" radical="1-50" speed="8.8925Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS2_cb3" prefix="cb3-" suffix=".dc2.acloud.com" radical="1-30" speed="13.357Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS2_cb4" prefix="cb4-" suffix=".dc2.acloud.com" radical="1-40" speed="5.2297Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS2_cb5" prefix="cb5-" suffix=".dc2.acloud.com" radical="1-50" speed="8.8925Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="AS2_cb6" prefix="cb6-" suffix=".dc2.acloud.com" radical="1-30" speed="13.357Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+      <AS id="gw_AS1_dc1" routing="Floyd">
+        <!-- equipments-->
+        <router id="gw_dc1_horizdist"/>
+        <router id="gw_dc1_maindist"/>
+        <router id="gw_dc1_entranceroom"/>
+        <!-- ISP end point, entering the cloud, so it has coordinates -->
+        <router id="router_AS1_dc1" coordinates="25.5 9.4 1.4"/>
 
-    <link id="link_dc2_cb1" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc2_cb2" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc2_cb3" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc2_cb4" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc2_cb5" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc2_cb6" bandwidth="1.25GBps" latency="100us"/>
+        <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>
+        <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>
+        <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>
 
-    <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-    <AS id="gw_AS2_dc2" routing="Floyd">
-      <!-- equipments-->
-      <router id="gw_dc2_horizdist"/>
-      <router id="gw_dc2_maindist"/>
-      <router id="gw_dc2_entranceroom"/>
-      <!-- ISP end point, entering the cloud, so it has coordinates -->
-      <router id="router_AS2_dc2" coordinates="12.8 14.4 6.4"/>
+        <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
+        <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
+        <route src="gw_dc1_entranceroom" dst="router_AS1_dc1"><link_ctn id="dc1_entranceroom_ISP"/></route>
+      </AS>
 
-      <!-- links -->
-      <link id="dc2_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>
-      <link id="dc2_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>
-      <link id="dc2_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>
-      <!-- links to router relationships -->
-      <route src="gw_dc2_horizdist" dst="gw_dc2_maindist"><link_ctn id="dc2_horizdist_maindist"/></route>
-      <route src="gw_dc2_maindist" dst="gw_dc2_entranceroom"><link_ctn id="dc2_maindist_entranceroom"/></route>
-      <route src="gw_dc2_entranceroom" dst="router_AS2_dc2"><link_ctn id="dc2_entranceroom_ISP"/></route>
+      <!-- internal routes between clusters -->
+      <ASroute src="AS1_cb3" dst="AS1_cb1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com"
+               gw_dst="cb1-AS1_cb1_router.dc1.acloud.com">
+        <link_ctn id="link_dc1_cb3"/><link_ctn id="link_dc1_cb1"/>
+      </ASroute>
+      <ASroute src="AS1_cb2" dst="AS1_cb1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
+               gw_dst="cb1-AS1_cb1_router.dc1.acloud.com">
+        <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb1"/>
+      </ASroute>
+      <ASroute src="AS1_cb2" dst="AS1_cb3" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
+               gw_dst="cb3-AS1_cb3_router.dc1.acloud.com">
+        <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb3"/>
+      </ASroute>
+      <!-- routes to exit AS -->
+      <ASroute src="AS1_cb1" dst="gw_AS1_dc1" gw_src="cb1-AS1_cb1_router.dc1.acloud.com" gw_dst="gw_dc1_horizdist">
+         <link_ctn id="link_dc1_cb1"/>
+      </ASroute>
+      <ASroute src="AS1_cb3" dst="gw_AS1_dc1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com"
+               gw_dst="gw_dc1_horizdist">
+         <link_ctn id="link_dc1_cb3"/>
+      </ASroute>
+      <ASroute src="AS1_cb2" dst="gw_AS1_dc1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
+               gw_dst="gw_dc1_horizdist">
+         <link_ctn id="link_dc1_cb2"/>
+      </ASroute> 
+      <ASroute dst="AS1_cb1" src="gw_AS1_dc1" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com"
+               gw_src="gw_dc1_horizdist">
+         <link_ctn id="link_dc1_cb1"/>
+      </ASroute>
+      <ASroute dst="AS1_cb3" src="gw_AS1_dc1" gw_dst="cb3-AS1_cb3_router.dc1.acloud.com"
+               gw_src="gw_dc1_horizdist">
+         <link_ctn id="link_dc1_cb3"/>
+      </ASroute>
+      <ASroute dst="AS1_cb2" src="gw_AS1_dc1" gw_dst="cb2-AS1_cb2_router.dc1.acloud.com"
+               gw_src="gw_dc1_horizdist">
+         <link_ctn id="link_dc1_cb2"/>
+      </ASroute>
     </AS>
 
-    <!-- internal routes between clusters -->
-    <ASroute src="AS2_cb4" dst="AS2_cb6" gw_src="cb4-AS2_cb4_router.dc2.acloud.com"
-             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb4"/><link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute src="AS2_cb5" dst="AS2_cb6" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
-             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb5"/><link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute src="AS2_cb5" dst="AS2_cb4" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
-             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb5"/><link_ctn id="link_dc2_cb4"/>
-    </ASroute>
-    <ASroute src="AS2_cb2" dst="AS2_cb6" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
-             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb2"/> <link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute src="AS2_cb2" dst="AS2_cb4" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
-             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb2"/><link_ctn id="link_dc2_cb4"/>
-    </ASroute>
-    <ASroute src="AS2_cb2" dst="AS2_cb5" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
-             gw_dst="cb5-AS2_cb5_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb2"/><link_ctn id="link_dc2_cb5"/>
-    </ASroute>
-    <ASroute src="AS2_cb3" dst="AS2_cb6" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
-             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute src="AS2_cb3" dst="AS2_cb4" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" 
-             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb4"/>
-    </ASroute>
-    <ASroute src="AS2_cb3" dst="AS2_cb5" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
-             gw_dst="cb5-AS2_cb5_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb5"/>
-    </ASroute>
-    <ASroute src="AS2_cb3" dst="AS2_cb2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
-             gw_dst="cb2-AS2_cb2_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb2"/>
-    </ASroute>
-    <ASroute src="AS2_cb1" dst="AS2_cb6" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
-      <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute src="AS2_cb1" dst="AS2_cb4" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
-      <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb4"/>
-    </ASroute>
-    <ASroute src="AS2_cb1" dst="AS2_cb5" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_dst="cb5-AS2_cb5_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb5"/>
-    </ASroute>
-    <ASroute src="AS2_cb1" dst="AS2_cb2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_dst="cb2-AS2_cb2_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb2"/>
-    </ASroute>
-    <ASroute src="AS2_cb1" dst="AS2_cb3" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_dst="cb3-AS2_cb3_router.dc2.acloud.com">
-       <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb3"/>
-    </ASroute>
+    <AS id="AS2_dc2" routing="Full">
+      <!--bigger tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : Full -->
+      <!-- 6 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+      <!-- clusters -->
+      <cluster id="AS2_cb1" prefix="cb1-" suffix=".dc2.acloud.com" radical="1-40" speed="5.2297Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS2_cb2" prefix="cb2-" suffix=".dc2.acloud.com" radical="1-50" speed="8.8925Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS2_cb3" prefix="cb3-" suffix=".dc2.acloud.com" radical="1-30" speed="13.357Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS2_cb4" prefix="cb4-" suffix=".dc2.acloud.com" radical="1-40" speed="5.2297Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS2_cb5" prefix="cb5-" suffix=".dc2.acloud.com" radical="1-50" speed="8.8925Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="AS2_cb6" prefix="cb6-" suffix=".dc2.acloud.com" radical="1-30" speed="13.357Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
 
-    <!-- routess to exit AS -->
-    <ASroute src="AS2_cb6" dst="gw_AS2_dc2" gw_src="cb6-AS2_cb6_router.dc2.acloud.com"
-             gw_dst="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute src="AS2_cb4" dst="gw_AS2_dc2" gw_src="cb4-AS2_cb4_router.dc2.acloud.com"
-             gw_dst="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb4"/>
-    </ASroute>
-    <ASroute src="AS2_cb5" dst="gw_AS2_dc2" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
-             gw_dst="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb5"/>
-    </ASroute>
-    <ASroute src="AS2_cb2" dst="gw_AS2_dc2" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
-             gw_dst="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb2"/>
-    </ASroute>
-    <ASroute src="AS2_cb3" dst="gw_AS2_dc2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
-             gw_dst="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb3"/>
-    </ASroute>
-    <ASroute src="AS2_cb1" dst="gw_AS2_dc2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_dst="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb1"/>
-    </ASroute> 
-    <ASroute dst="AS2_cb6" src="gw_AS2_dc2" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com"
-             gw_src="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb6"/>
-    </ASroute>
-    <ASroute dst="AS2_cb4" src="gw_AS2_dc2" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com"
-             gw_src="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb4"/>
-    </ASroute>
-    <ASroute dst="AS2_cb5" src="gw_AS2_dc2" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com"
-             gw_src="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb5"/>
-    </ASroute>
-    <ASroute dst="AS2_cb2" src="gw_AS2_dc2" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com"
-             gw_src="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb2"/>
-    </ASroute>
-    <ASroute dst="AS2_cb3" src="gw_AS2_dc2" gw_dst="cb3-AS2_cb3_router.dc2.acloud.com"
-             gw_src="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb3"/>
-    </ASroute>
-    <ASroute dst="AS2_cb1" src="gw_AS2_dc2" gw_dst="cb1-AS2_cb1_router.dc2.acloud.com"
-             gw_src="gw_dc2_horizdist">
-       <link_ctn id="link_dc2_cb1"/>
-    </ASroute> 
-   </AS>
+      <link id="link_dc2_cb1" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc2_cb2" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc2_cb3" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc2_cb4" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc2_cb5" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc2_cb6" bandwidth="1.25GBps" latency="100us"/>
 
-   <AS id="AS3_dc3" routing="Full">  
-     <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : FULL -->    
-     <!-- 4 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
-     <!-- clusters -->
-     <cluster id="AS3_cb1" prefix="cb1-" suffix=".dc3.acloud.com" radical="1-40" speed="5.2297Gf"
-              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-     <cluster id="AS3_cb2" prefix="cb2-" suffix=".dc3.acloud.com" radical="1-50" speed="8.8925Gf"
-              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-     <cluster id="AS3_cb3" prefix="cb3-" suffix=".dc3.acloud.com" radical="1-30" speed="13.357Gf"
-              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-     <cluster id="AS3_cb4" prefix="cb4-" suffix=".dc3.acloud.com" radical="1-30" speed="13.357Gf"
-              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-
-     <link id="link_dc3_cb1" bandwidth="1.25GBps" latency="100us"/>
-     <link id="link_dc3_cb2" bandwidth="1.25GBps" latency="100us"/>
-     <link id="link_dc3_cb3" bandwidth="1.25GBps" latency="100us"/>
-     <link id="link_dc3_cb4" bandwidth="1.25GBps" latency="100us"/>
-
-     <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-     <AS id="gw_AS3_dc3" routing="Floyd">
+      <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+      <AS id="gw_AS2_dc2" routing="Floyd">
         <!-- equipments-->
-        <router id="gw_dc3_horizdist"/>
-        <router id="gw_dc3_maindist"/>
-        <router id="gw_dc3_entranceroom"/>
+        <router id="gw_dc2_horizdist"/>
+        <router id="gw_dc2_maindist"/>
+        <router id="gw_dc2_entranceroom"/>
         <!-- ISP end point, entering the cloud, so it has coordinates -->
-        <router id="router_AS3_dc3" coordinates="6.0 5.7 6.6"/>
+        <router id="router_AS2_dc2" coordinates="12.8 14.4 6.4"/>
 
         <!-- links -->
-        <link id="dc3_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
-        <link id="dc3_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
-        <link id="dc3_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>  
+        <link id="dc2_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>
+        <link id="dc2_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>
+        <link id="dc2_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>
         <!-- links to router relationships -->
-        <route src="gw_dc3_horizdist" dst="gw_dc3_maindist"><link_ctn id="dc3_horizdist_maindist"/></route>
-        <route src="gw_dc3_maindist" dst="gw_dc3_entranceroom"><link_ctn id="dc3_maindist_entranceroom"/></route>
-        <route src="gw_dc3_entranceroom" dst="router_AS3_dc3"><link_ctn id="dc3_entranceroom_ISP"/></route>
+        <route src="gw_dc2_horizdist" dst="gw_dc2_maindist"><link_ctn id="dc2_horizdist_maindist"/></route>
+        <route src="gw_dc2_maindist" dst="gw_dc2_entranceroom"><link_ctn id="dc2_maindist_entranceroom"/></route>
+        <route src="gw_dc2_entranceroom" dst="router_AS2_dc2"><link_ctn id="dc2_entranceroom_ISP"/></route>
+      </AS>
+
+      <!-- internal routes between clusters -->
+      <ASroute src="AS2_cb4" dst="AS2_cb6" gw_src="cb4-AS2_cb4_router.dc2.acloud.com"
+               gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb4"/><link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute src="AS2_cb5" dst="AS2_cb6" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
+               gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb5"/><link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute src="AS2_cb5" dst="AS2_cb4" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
+               gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb5"/><link_ctn id="link_dc2_cb4"/>
+      </ASroute>
+      <ASroute src="AS2_cb2" dst="AS2_cb6" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+               gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb2"/> <link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute src="AS2_cb2" dst="AS2_cb4" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+               gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb2"/><link_ctn id="link_dc2_cb4"/>
+      </ASroute>
+      <ASroute src="AS2_cb2" dst="AS2_cb5" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+               gw_dst="cb5-AS2_cb5_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb2"/><link_ctn id="link_dc2_cb5"/>
+      </ASroute>
+      <ASroute src="AS2_cb3" dst="AS2_cb6" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+               gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute src="AS2_cb3" dst="AS2_cb4" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" 
+               gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb4"/>
+      </ASroute>
+      <ASroute src="AS2_cb3" dst="AS2_cb5" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+               gw_dst="cb5-AS2_cb5_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb5"/>
+      </ASroute>
+      <ASroute src="AS2_cb3" dst="AS2_cb2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+               gw_dst="cb2-AS2_cb2_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb2"/>
+      </ASroute>
+      <ASroute src="AS2_cb1" dst="AS2_cb6" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_dst="cb6-AS2_cb6_router.dc2.acloud.com">
+        <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute src="AS2_cb1" dst="AS2_cb4" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_dst="cb4-AS2_cb4_router.dc2.acloud.com">
+        <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb4"/>
+      </ASroute>
+      <ASroute src="AS2_cb1" dst="AS2_cb5" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_dst="cb5-AS2_cb5_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb5"/>
+      </ASroute>
+      <ASroute src="AS2_cb1" dst="AS2_cb2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_dst="cb2-AS2_cb2_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb2"/>
+      </ASroute>
+      <ASroute src="AS2_cb1" dst="AS2_cb3" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_dst="cb3-AS2_cb3_router.dc2.acloud.com">
+         <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb3"/>
+      </ASroute>
+
+      <!-- routess to exit AS -->
+      <ASroute src="AS2_cb6" dst="gw_AS2_dc2" gw_src="cb6-AS2_cb6_router.dc2.acloud.com"
+               gw_dst="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute src="AS2_cb4" dst="gw_AS2_dc2" gw_src="cb4-AS2_cb4_router.dc2.acloud.com"
+               gw_dst="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb4"/>
+      </ASroute>
+      <ASroute src="AS2_cb5" dst="gw_AS2_dc2" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
+               gw_dst="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb5"/>
+      </ASroute>
+      <ASroute src="AS2_cb2" dst="gw_AS2_dc2" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+               gw_dst="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb2"/>
+      </ASroute>
+      <ASroute src="AS2_cb3" dst="gw_AS2_dc2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+               gw_dst="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb3"/>
+      </ASroute>
+      <ASroute src="AS2_cb1" dst="gw_AS2_dc2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_dst="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb1"/>
+      </ASroute> 
+      <ASroute dst="AS2_cb6" src="gw_AS2_dc2" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com"
+               gw_src="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb6"/>
+      </ASroute>
+      <ASroute dst="AS2_cb4" src="gw_AS2_dc2" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com"
+               gw_src="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb4"/>
+      </ASroute>
+      <ASroute dst="AS2_cb5" src="gw_AS2_dc2" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com"
+               gw_src="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb5"/>
+      </ASroute>
+      <ASroute dst="AS2_cb2" src="gw_AS2_dc2" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com"
+               gw_src="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb2"/>
+      </ASroute>
+      <ASroute dst="AS2_cb3" src="gw_AS2_dc2" gw_dst="cb3-AS2_cb3_router.dc2.acloud.com"
+               gw_src="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb3"/>
+      </ASroute>
+      <ASroute dst="AS2_cb1" src="gw_AS2_dc2" gw_dst="cb1-AS2_cb1_router.dc2.acloud.com"
+               gw_src="gw_dc2_horizdist">
+         <link_ctn id="link_dc2_cb1"/>
+      </ASroute> 
      </AS>
 
-     <!-- internal routes between clusters -->
-     <ASroute src="AS3_cb2" dst="AS3_cb3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com"
-              gw_dst="cb3-AS3_cb3_router.dc3.acloud.com">
-        <link_ctn id="link_dc3_cb2"/><link_ctn id="link_dc3_cb3"/>
-     </ASroute>
-     <ASroute src="AS3_cb1" dst="AS3_cb3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
-              gw_dst="cb3-AS3_cb3_router.dc3.acloud.com">
-        <link_ctn id="link_dc3_cb1"/><link_ctn id="link_dc3_cb3"/>
-     </ASroute>
-     <ASroute src="AS3_cb1" dst="AS3_cb2" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
-              gw_dst="cb2-AS3_cb2_router.dc3.acloud.com">
-        <link_ctn id="link_dc3_cb1"/><link_ctn id="link_dc3_cb2"/>
-     </ASroute>
-     <ASroute src="AS3_cb4" dst="AS3_cb3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
-              gw_dst="cb3-AS3_cb3_router.dc3.acloud.com">
-        <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb3"/>
-     </ASroute>
-     <ASroute src="AS3_cb4" dst="AS3_cb2" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
-              gw_dst="cb2-AS3_cb2_router.dc3.acloud.com">
-        <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb2"/>
-     </ASroute>
-     <ASroute src="AS3_cb4" dst="AS3_cb1" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
-              gw_dst="cb1-AS3_cb1_router.dc3.acloud.com">
-        <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb1"/>
-     </ASroute>
+     <AS id="AS3_dc3" routing="Full">  
+       <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : FULL -->    
+       <!-- 4 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+       <!-- clusters -->
+       <cluster id="AS3_cb1" prefix="cb1-" suffix=".dc3.acloud.com" radical="1-40" speed="5.2297Gf"
+                bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+       <cluster id="AS3_cb2" prefix="cb2-" suffix=".dc3.acloud.com" radical="1-50" speed="8.8925Gf"
+                bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+       <cluster id="AS3_cb3" prefix="cb3-" suffix=".dc3.acloud.com" radical="1-30" speed="13.357Gf"
+                bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+       <cluster id="AS3_cb4" prefix="cb4-" suffix=".dc3.acloud.com" radical="1-30" speed="13.357Gf"
+                bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+
+       <link id="link_dc3_cb1" bandwidth="1.25GBps" latency="100us"/>
+       <link id="link_dc3_cb2" bandwidth="1.25GBps" latency="100us"/>
+       <link id="link_dc3_cb3" bandwidth="1.25GBps" latency="100us"/>
+       <link id="link_dc3_cb4" bandwidth="1.25GBps" latency="100us"/>
+
+       <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+       <AS id="gw_AS3_dc3" routing="Floyd">
+          <!-- equipments-->
+          <router id="gw_dc3_horizdist"/>
+          <router id="gw_dc3_maindist"/>
+          <router id="gw_dc3_entranceroom"/>
+          <!-- ISP end point, entering the cloud, so it has coordinates -->
+          <router id="router_AS3_dc3" coordinates="6.0 5.7 6.6"/>
 
-     <!-- routes to exit AS -->
-     <ASroute src="AS3_cb3" dst="gw_AS3_dc3" gw_src="cb3-AS3_cb3_router.dc3.acloud.com"
-              gw_dst="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb3"/>
-     </ASroute>
-     <ASroute src="AS3_cb2" dst="gw_AS3_dc3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com"
-              gw_dst="gw_dc3_horizdist">
-       <link_ctn id="link_dc3_cb2"/>
-     </ASroute>
-     <ASroute src="AS3_cb1" dst="gw_AS3_dc3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
-              gw_dst="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb1"/>
-     </ASroute>
-     <ASroute src="AS3_cb4" dst="gw_AS3_dc3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
-              gw_dst="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb4"/>
-     </ASroute>
-     <ASroute dst="AS3_cb3" src="gw_AS3_dc3" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com"
-              gw_src="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb3"/>
-     </ASroute>
-     <ASroute dst="AS3_cb2" src="gw_AS3_dc3" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com"
-              gw_src="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb2"/>
-     </ASroute>
-     <ASroute dst="AS3_cb1" src="gw_AS3_dc3" gw_dst="cb1-AS3_cb1_router.dc3.acloud.com"
-              gw_src="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb1"/>
-     </ASroute>
-     <ASroute dst="AS3_cb4" src="gw_AS3_dc3" gw_dst="cb4-AS3_cb4_router.dc3.acloud.com"
-              gw_src="gw_dc3_horizdist">
-        <link_ctn id="link_dc3_cb4"/>
-     </ASroute>  
+          <!-- links -->
+          <link id="dc3_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
+          <link id="dc3_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
+          <link id="dc3_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>  
+          <!-- links to router relationships -->
+          <route src="gw_dc3_horizdist" dst="gw_dc3_maindist"><link_ctn id="dc3_horizdist_maindist"/></route>
+          <route src="gw_dc3_maindist" dst="gw_dc3_entranceroom"><link_ctn id="dc3_maindist_entranceroom"/></route>
+          <route src="gw_dc3_entranceroom" dst="router_AS3_dc3"><link_ctn id="dc3_entranceroom_ISP"/></route>
+       </AS>
+
+       <!-- internal routes between clusters -->
+       <ASroute src="AS3_cb2" dst="AS3_cb3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com"
+                gw_dst="cb3-AS3_cb3_router.dc3.acloud.com">
+          <link_ctn id="link_dc3_cb2"/><link_ctn id="link_dc3_cb3"/>
+       </ASroute>
+       <ASroute src="AS3_cb1" dst="AS3_cb3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
+                gw_dst="cb3-AS3_cb3_router.dc3.acloud.com">
+          <link_ctn id="link_dc3_cb1"/><link_ctn id="link_dc3_cb3"/>
+       </ASroute>
+       <ASroute src="AS3_cb1" dst="AS3_cb2" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
+                gw_dst="cb2-AS3_cb2_router.dc3.acloud.com">
+          <link_ctn id="link_dc3_cb1"/><link_ctn id="link_dc3_cb2"/>
+       </ASroute>
+       <ASroute src="AS3_cb4" dst="AS3_cb3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+                gw_dst="cb3-AS3_cb3_router.dc3.acloud.com">
+          <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb3"/>
+       </ASroute>
+       <ASroute src="AS3_cb4" dst="AS3_cb2" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+                gw_dst="cb2-AS3_cb2_router.dc3.acloud.com">
+          <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb2"/>
+       </ASroute>
+       <ASroute src="AS3_cb4" dst="AS3_cb1" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+                gw_dst="cb1-AS3_cb1_router.dc3.acloud.com">
+          <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb1"/>
+       </ASroute>
+
+       <!-- routes to exit AS -->
+       <ASroute src="AS3_cb3" dst="gw_AS3_dc3" gw_src="cb3-AS3_cb3_router.dc3.acloud.com"
+                gw_dst="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb3"/>
+       </ASroute>
+       <ASroute src="AS3_cb2" dst="gw_AS3_dc3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com"
+                gw_dst="gw_dc3_horizdist">
+         <link_ctn id="link_dc3_cb2"/>
+       </ASroute>
+       <ASroute src="AS3_cb1" dst="gw_AS3_dc3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
+                gw_dst="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb1"/>
+       </ASroute>
+       <ASroute src="AS3_cb4" dst="gw_AS3_dc3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+                gw_dst="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb4"/>
+       </ASroute>
+       <ASroute dst="AS3_cb3" src="gw_AS3_dc3" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com"
+                gw_src="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb3"/>
+       </ASroute>
+       <ASroute dst="AS3_cb2" src="gw_AS3_dc3" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com"
+                gw_src="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb2"/>
+       </ASroute>
+       <ASroute dst="AS3_cb1" src="gw_AS3_dc3" gw_dst="cb1-AS3_cb1_router.dc3.acloud.com"
+                gw_src="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb1"/>
+       </ASroute>
+       <ASroute dst="AS3_cb4" src="gw_AS3_dc3" gw_dst="cb4-AS3_cb4_router.dc3.acloud.com"
+                gw_src="gw_dc3_horizdist">
+          <link_ctn id="link_dc3_cb4"/>
+       </ASroute>  
+    </AS>
   </AS>
-</AS>
 </platform>
index a674628..c306524 100644 (file)
@@ -1,16 +1,16 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<!--             _________
-                |          |
-                |  router  |
-    ____________|__________|_____________ backbone
-      |   |   |              |     |   |  
-    l0| l1| l2|           l97| l96 |   | l99
-      |   |   |   ........   |     |   |
-      |                                |
-  node-0.acme.org                  node-99.acme.org
--->
+  <!--             _________
+                  |          |
+                  |  router  |
+      ____________|__________|_____________ backbone
+        |   |   |              |     |   |  
+      l0| l1| l2|           l97| l96 |   | l99
+        |   |   |   ........   |     |   |
+        |                                |
+    node-0.acme.org                  node-99.acme.org
+  -->
   <cluster id="acme" prefix="node-" suffix=".acme.org" radical="0-99" speed="1Gf" bw="125MBps" lat="50us"
            bb_bw="2.25GBps"  bb_lat="500us"/>
 </platform>
index 02d11d7..fbdad7e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-  <AS id="AS0"  routing="Full">   
+  <AS id="AS0" routing="Full">
     <cluster id="my_cluster_1" prefix="c-" suffix=".me" radical="0-1" speed="1Gf" bw="125MBps" lat="50us"
              router_id="router1"/>
 
@@ -11,6 +11,8 @@
 
     <link id="link1" bandwidth="100kBps" latency="10ms"/>
 
-    <ASroute src="my_cluster_1" dst="AS1" gw_src="router1" gw_dst="host1"><link_ctn id="link1"/></ASroute>
+    <ASroute src="my_cluster_1" dst="AS1" gw_src="router1" gw_dst="host1">
+      <link_ctn id="link1"/>
+    </ASroute>
   </AS>
 </platform>
index b192871..a8d66d0 100644 (file)
@@ -1,8 +1,9 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-119" speed="1Gf" 
-           bw="125MBps" lat="50us" topology="DRAGONFLY" topo_parameters="3,4;4,3;5,1;2" loopback_bw="100MBps" loopback_lat="0" limiter_link="150MBps"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-119" speed="1Gf" 
+             bw="125MBps" lat="50us" topology="DRAGONFLY" topo_parameters="3,4;4,3;5,1;2" 
+             loopback_bw="100MBps" loopback_lat="0" limiter_link="150MBps"/>
+  </AS>
 </platform>
index 7ab17e7..83ff7d9 100644 (file)
@@ -1,14 +1,14 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<!-- This is an example for a fat tree cluster. 
-This is taken from figure 1/ b/ of the paper "D-Mod-K Routing Providing on-Blocking Traffic for Shift Permutations on 
-Real Life Fat Trees" available at webee.technion.ac.il/publication-link/index/id/574
-This defines a two levels fat-tree, with 4 leaf switches connected to 4 nodes each and 2 core switches connected to 
-each leaf switch by two cables -->
+  <!-- This is an example for a fat tree cluster. 
+  This is taken from figure 1/ b/ of the paper "D-Mod-K Routing Providing on-Blocking Traffic for Shift Permutations on 
+  Real Life Fat Trees" available at webee.technion.ac.il/publication-link/index/id/574
+  This defines a two levels fat-tree, with 4 leaf switches connected to 4 nodes each and 2 core switches connected to 
+  each leaf switch by two cables -->
 
-<AS id="AS0" routing="Full">
-<cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-15" speed="1Gf" bw="125MBps" lat="50us" 
-         topology="FAT_TREE" topo_parameters="2;4,4;1,2;1,2" loopback_bw="100MBps" loopback_lat="0"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-15" speed="1Gf" bw="125MBps" lat="50us" 
+             topology="FAT_TREE" topo_parameters="2;4,4;1,2;1,2" loopback_bw="100MBps" loopback_lat="0"/>
+  </AS>
 </platform>
index a0bec80..2f23afb 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-11" speed="1Gf" 
-           bw="125MBps" lat="50us" topology="TORUS" topo_parameters="3,2,2" loopback_bw="100MBps" loopback_lat="0"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-11" speed="1Gf" 
+             bw="125MBps" lat="50us" topology="TORUS" topo_parameters="3,2,2" loopback_bw="100MBps" loopback_lat="0"/>
+  </AS>
 </platform>
index 3aaca87..0f45089 100644 (file)
@@ -18,6 +18,8 @@
     <link id="link2" bandwidth="125MBps" latency="50us"/>
     <link id="link3" bandwidth="125MBps" latency="50us"/>
 
-    <route src="bob" dst="alice"><link_ctn id="link1"/><link_ctn id="link2"/><link_ctn id="link3"/></route>
+    <route src="bob" dst="alice">
+      <link_ctn id="link1"/><link_ctn id="link2"/><link_ctn id="link3"/>
+    </route>
   </AS>
 </platform>
index cb11537..5f29e6e 100644 (file)
@@ -1,58 +1,58 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<config id="General">
-  <prop id="network/coordinates" value="yes"/>
-</config>
-<AS id="AS0" routing="Vivaldi">
-  <AS id="dataCenter1" routing="Full">
-    <!-- 3 cabinets, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
-    <!-- cabinets -->
-    <cluster id="cabinet1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" speed="5.2297Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="cabinet2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" speed="8.8925Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-    <cluster id="cabinet3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" speed="13.357Gf"
-             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+  <config id="General">
+    <prop id="network/coordinates" value="yes"/>
+  </config>
+  <AS id="AS0" routing="Vivaldi">
+    <AS id="dataCenter1" routing="Full">
+      <!-- 3 cabinets, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+      <!-- cabinets -->
+      <cluster id="cabinet1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" speed="5.2297Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="cabinet2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" speed="8.8925Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+      <cluster id="cabinet3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" speed="13.357Gf"
+               bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
 
-    <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
-    <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
-    <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-    <AS id="gw_dataCenter1" routing="Floyd">
-        <!-- equipments-->
-        <router id="gw_dc1_horizdist"/>
-        <router id="gw_dc1_maindist"/>
-        <router id="gw_dc1_entranceroom"/>
+      <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
+      <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
 
-        <!-- ISP end point, entering the cloud, so it has coordinates -->
-        <router id="router_dataCenter1" coordinates="25.5 9.4 1.4"/>
+      <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+      <AS id="gw_dataCenter1" routing="Floyd">
+          <!-- equipments-->
+          <router id="gw_dc1_horizdist"/>
+          <router id="gw_dc1_maindist"/>
+          <router id="gw_dc1_entranceroom"/>
 
-        <!-- links -->
-        <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
-        <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
-        <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/> 
+          <!-- ISP end point, entering the cloud, so it has coordinates -->
+          <router id="router_dataCenter1" coordinates="25.5 9.4 1.4"/>
 
-        <!-- links to router relationships -->
-        <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
-        <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
-        <route src="gw_dc1_entranceroom" dst="router_dataCenter1"><link_ctn id="dc1_entranceroom_ISP"/></route>
-    </AS>
+          <!-- links -->
+          <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
+          <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
+          <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/> 
+
+          <!-- links to router relationships -->
+          <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
+          <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
+          <route src="gw_dc1_entranceroom" dst="router_dataCenter1"><link_ctn id="dc1_entranceroom_ISP"/></route>
+      </AS>
 
-    <!-- internal routes between cabinets -->
-    <ASroute src="cabinet2" dst="cabinet3" gw_src="cb2-cabinet2_router.dc1.acloud.com"
-             gw_dst="cb3-cabinet3_router.dc1.acloud.com">
-        <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb3"/>
-    </ASroute>
-    <ASroute src="cabinet1" dst="cabinet3" gw_src="cb1-cabinet1_router.dc1.acloud.com"
-             gw_dst="cb3-cabinet3_router.dc1.acloud.com">
-      <link_ctn id="link_dc1_cb1"/><link_ctn id="link_dc1_cb3"/>
-    </ASroute>
-    <ASroute src="cabinet1" dst="cabinet2" gw_src="cb1-cabinet1_router.dc1.acloud.com"
-             gw_dst="cb2-cabinet2_router.dc1.acloud.com">
-      <link_ctn id="link_dc1_cb1"/><link_ctn id="link_dc1_cb2"/>
-    </ASroute>
-  </AS>
+      <!-- internal routes between cabinets -->
+      <ASroute src="cabinet2" dst="cabinet3" gw_src="cb2-cabinet2_router.dc1.acloud.com"
+               gw_dst="cb3-cabinet3_router.dc1.acloud.com">
+          <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb3"/>
+      </ASroute>
+      <ASroute src="cabinet1" dst="cabinet3" gw_src="cb1-cabinet1_router.dc1.acloud.com"
+               gw_dst="cb3-cabinet3_router.dc1.acloud.com">
+        <link_ctn id="link_dc1_cb1"/><link_ctn id="link_dc1_cb3"/>
+      </ASroute>
+      <ASroute src="cabinet1" dst="cabinet2" gw_src="cb1-cabinet1_router.dc1.acloud.com"
+               gw_dst="cb2-cabinet2_router.dc1.acloud.com">
+        <link_ctn id="link_dc1_cb1"/><link_ctn id="link_dc1_cb2"/>
+      </ASroute>
+    </AS>
 </AS>
 </platform>
index 2e9b2eb..a09b39f 100644 (file)
@@ -1,28 +1,28 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS  id="AS0"  routing="Full">
-  <host id="S1" speed="1Gf"/>
-  <host id="C1" speed="1Gf"/>
-  <host id="S2" speed="1Gf"/>
-  <host id="C2" speed="1Gf"/>
-  <router id="R1"/>
-  <router id="R2"/>
+  <AS  id="AS0"  routing="Full">
+    <host id="S1" speed="1Gf"/>
+    <host id="C1" speed="1Gf"/>
+    <host id="S2" speed="1Gf"/>
+    <host id="C2" speed="1Gf"/>
+    <router id="R1"/>
+    <router id="R2"/>
 
-  <link id="1" bandwidth="100MBps" latency="10ms"/>
-  <link id="2" bandwidth="100MBps" latency="10ms"/>
-  <link id="3" bandwidth="100MBps" latency="10ms"/>
-  <link id="4" bandwidth="100MBps" latency="10ms"/>
-  <link id="5" bandwidth="100MBps" latency="10ms"/>
+    <link id="1" bandwidth="100MBps" latency="10ms"/>
+    <link id="2" bandwidth="100MBps" latency="10ms"/>
+    <link id="3" bandwidth="100MBps" latency="10ms"/>
+    <link id="4" bandwidth="100MBps" latency="10ms"/>
+    <link id="5" bandwidth="100MBps" latency="10ms"/>
 
-  <route src="S1" dst="C1"><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="3"/></route>
-  <route src="S2" dst="C2"><link_ctn id="4"/><link_ctn id="2"/><link_ctn id="5"/></route>
-  <route src="S1" dst="C2"><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="5"/></route>
-  <route src="S2" dst="C1"><link_ctn id="4"/><link_ctn id="2"/><link_ctn id="3"/></route>
-  <route src="S1" dst="R1"><link_ctn id="1"/></route>
-  <route src="R1" dst="R2"><link_ctn id="2"/></route>
-  <route src="R2" dst="C1"><link_ctn id="3"/></route>
-  <route src="S2" dst="R1"><link_ctn id="4"/></route>
-  <route src="R2" dst="C2"><link_ctn id="5"/></route>
-</AS>
+    <route src="S1" dst="C1"><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="3"/></route>
+    <route src="S2" dst="C2"><link_ctn id="4"/><link_ctn id="2"/><link_ctn id="5"/></route>
+    <route src="S1" dst="C2"><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="5"/></route>
+    <route src="S2" dst="C1"><link_ctn id="4"/><link_ctn id="2"/><link_ctn id="3"/></route>
+    <route src="S1" dst="R1"><link_ctn id="1"/></route>
+    <route src="R1" dst="R2"><link_ctn id="2"/></route>
+    <route src="R2" dst="C1"><link_ctn id="3"/></route>
+    <route src="S2" dst="R1"><link_ctn id="4"/></route>
+    <route src="R2" dst="C2"><link_ctn id="5"/></route>
+  </AS>
 </platform>
index c810aa9..0ff24b4 100644 (file)
     <link id="3" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
     <link id="4" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
 
-    <route src="Tremblay" dst="Ruby"><link_ctn id="1"/></route>
-    <route src="Tremblay" dst="Perl"><link_ctn id="2"/></route>
-    <route src="Tremblay" dst="Java"><link_ctn id="3"/></route>
-    <route src="Ruby" dst="Perl"><link_ctn id="4"/></route>
+    <route src="Tremblay" dst="Ruby">
+      <link_ctn id="1"/>
+    </route>
+    <route src="Tremblay" dst="Perl">
+      <link_ctn id="2"/>
+    </route>
+    <route src="Tremblay" dst="Java">
+      <link_ctn id="3"/>
+    </route>
+    <route src="Ruby" dst="Perl"><
+      link_ctn id="4"/>
+    </route>
   </AS>
 </platform>
index e3acf90..3caa9db 100644 (file)
@@ -1,7 +1,9 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-  <config><prop id="path" value="../examples/platforms/"/></config>
+  <config>
+    <prop id="path" value="../examples/platforms/"/>
+  </config>
 
   <AS id="AS0" routing="Full">
     <storage_type id="SATA-II_HDD" size="500GB" model="linear_no_lat"
     <link id="link5" bandwidth="125MBps" latency="50us"/>
     <link id="link6" bandwidth="125MBps" latency="50us"/>
 
-    <route src="alice" dst="bob"><link_ctn id="link1"/></route>
-    <route src="alice" dst="carl"><link_ctn id="link2"/></route>
-    <route src="alice" dst="dave"><link_ctn id="link3"/></route>
-    <route src="bob" dst="carl"><link_ctn id="link4"/></route>
-    <route src="bob" dst="dave"><link_ctn id="link5"/></route>
-    <route src="carl" dst="dave"><link_ctn id="link6"/></route>
+    <route src="alice" dst="bob">
+      <link_ctn id="link1"/>
+    </route>
+    <route src="alice" dst="carl">
+      <link_ctn id="link2"/>
+    </route>
+    <route src="alice" dst="dave">
+      <link_ctn id="link3"/>
+    </route>
+    <route src="bob" dst="carl">
+      <link_ctn id="link4"/>
+    </route>
+    <route src="bob" dst="dave">
+      <link_ctn id="link5"/>
+    </route>
+    <route src="carl" dst="dave">
+      <link_ctn id="link6"/>
+    </route>
   </AS>
 </platform>
index 8413050..6372351 100644 (file)
@@ -1,21 +1,23 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-  <config><prop id="path" value="../examples/platforms/"/></config>
+  <config>
+    <prop id="path" value="../examples/platforms/"/>
+  </config>
 
   <AS id="AS0" routing="Full">
     <storage_type id="single_HDD" size="500GiB" model="linear_no_lat" 
                   content="content/storage_content.txt" content_type="txt_unix">
-       <model_prop id="Bwrite" value="30MBps" />
-       <model_prop id="Bread" value="100MBps" />
-       <model_prop id="Bconnection" value="120MBps" />
+      <model_prop id="Bwrite" value="30MBps" />
+      <model_prop id="Bread" value="100MBps" />
+      <model_prop id="Bconnection" value="120MBps" />
     </storage_type>
 
     <storage_type id="single_SSD" size="500GiB" model="linear_no_lat"
                   content="content/storage_content.txt" content_type="txt_unix">
-       <model_prop id="Bwrite" value="60MBps" />
-       <model_prop id="Bread" value="200MBps" />
-       <model_prop id="Bconnection" value="220MBps" />
+      <model_prop id="Bwrite" value="60MBps" />
+      <model_prop id="Bread" value="200MBps" />
+      <model_prop id="Bconnection" value="220MBps" />
     </storage_type>
 
     <storage id="Disk1" typeId="single_HDD" attach="bob" />
       <mount storageId="Disk3" name="/home"/>
     </host>
     <host id="denise" speed="1Gf">
-      <mount storageId="Disk2" name="c:"/>     
-      <mount storageId="Disk4" name="/home"/>  
+      <mount storageId="Disk2" name="c:"/>
+      <mount storageId="Disk4" name="/home"/>
     </host>
 
     <link id="link1" bandwidth="125MBps" latency="150us" />
 
-    <route src="bob" dst="alice"><link_ctn id="link1" /></route>
+    <route src="bob" dst="alice">
+      <link_ctn id="link1" />
+    </route>
   </AS>
 </platform>
index adbed97..cbc9f00 100644 (file)
@@ -8,8 +8,14 @@
 
     <link id="link1" bandwidth="125MBps" latency="100us" />
 
-    <route src="PM0" dst="PM1"><link_ctn id="link1"/></route>
-    <route src="PM0" dst="PM2"><link_ctn id="link1"/></route>
-    <route src="PM1" dst="PM2"><link_ctn id="link1"/></route>
+    <route src="PM0" dst="PM1">
+      <link_ctn id="link1"/>
+    </route>
+    <route src="PM0" dst="PM2">
+      <link_ctn id="link1"/>
+    </route>
+    <route src="PM1" dst="PM2">
+      <link_ctn id="link1"/>
+    </route>
   </AS>
 </platform>
index 6a9dd8a..35b2f2e 100644 (file)
@@ -1,29 +1,29 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<trace id="A" periodicity="1.0">
-0.0 1.0
-11.0 0.5
-20.0 0.9
-</trace>
-<trace id="A_failure" periodicity="10.0">
-1.0 -1.0
-2.0 1.0
-</trace>
-<trace id="B" periodicity="10.0">
-0.0 1.0
-10.0 0.8
-20.0 0.4
-</trace>
+  <trace id="A" periodicity="1.0">
+    0.0 1.0
+    11.0 0.5
+    20.0 0.9
+  </trace>
+  <trace id="A_failure" periodicity="10.0">
+    1.0 -1.0
+    2.0 1.0
+  </trace>
+  <trace id="B" periodicity="10.0">
+    0.0 1.0
+    10.0 0.8
+    20.0 0.4
+  </trace>
 
-<AS id="AS0" routing="Full">
-  <host id="Cpu A" speed="10f"/>
-  <host id="Cpu B" speed="10f"/>
-  <link id="LinkA" bandwidth="10MBps" latency="200ms"/>
-  <route src="Cpu A" dst="Cpu B"><link_ctn id="LinkA"/></route>
-</AS>
+  <AS id="AS0" routing="Full">
+    <host id="Cpu A" speed="10f"/>
+    <host id="Cpu B" speed="10f"/>
+    <link id="LinkA" bandwidth="10MBps" latency="200ms"/>
+    <route src="Cpu A" dst="Cpu B"><link_ctn id="LinkA"/></route>
+  </AS>
 
-<trace_connect kind="SPEED" trace="A" element="Cpu A"/>
-<trace_connect kind="HOST_AVAIL" trace="A_failure" element="Cpu A"/>
-<trace_connect kind="SPEED" trace="B" element="Cpu B"/>
+  <trace_connect kind="SPEED" trace="A" element="Cpu A"/>
+  <trace_connect kind="HOST_AVAIL" trace="A_failure" element="Cpu A"/>
+  <trace_connect kind="SPEED" trace="B" element="Cpu B"/>
 </platform>
index e90125e..f710b29 100644 (file)
@@ -13,4 +13,17 @@ set(txt_files     ${txt_files}    ${CMAKE_CURRENT_SOURCE_DIR}/README  PARENT_SCO
 
 ADD_TESH_FACTORIES(s4u-basic "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/s4u/basic --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/basic s4u_basic.tesh)
 ADD_TESH_FACTORIES(s4u-io    "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/s4u/io    --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/io    s4u_io.tesh)
-ADD_TESH_FACTORIES(s4u-mutex    "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/s4u/mutex    --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/mutex    s4u_mutex.tesh)
+ADD_TESH_FACTORIES(s4u-mutex "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/s4u/mutex    --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/mutex    s4u_mutex.tesh)
+
+foreach(x actions-comm)
+  add_executable       (s4u_${x}     ${x}/s4u_${x}.cpp)
+  target_link_libraries(s4u_${x}     simgrid)
+  set_target_properties(s4u_${x}  PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${x})
+  set(examples_src ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/${x}/s4u_${x}.cpp)
+  set(tesh_files   ${tesh_files}   ${CMAKE_CURRENT_SOURCE_DIR}/${x}/s4u_${x}.tesh)
+endforeach()
+
+
+foreach(x actions-comm)
+  ADD_TESH_FACTORIES(s4u-${x} "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_CURRENT_BINARY_DIR}/${x} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/${x} s4u_${x}.tesh)
+endforeach()
diff --git a/examples/s4u/actions-comm/s4u_actions-comm.cpp b/examples/s4u/actions-comm/s4u_actions-comm.cpp
new file mode 100644 (file)
index 0000000..cc77351
--- /dev/null
@@ -0,0 +1,317 @@
+/* Copyright (c) 2009-2016. The SimGrid Team. All rights reserved.          */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "simgrid/msg.h"
+#include "simgrid/simix.h"      /* semaphores for the barrier */
+#include <xbt/replay.h>
+#include "simgrid/s4u.h"
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(actions, "Messages specific for this msg example");
+int communicator_size = 0;
+
+static void action_Isend(const char *const *action);
+
+typedef struct {
+  int last_Irecv_sender_id;
+  int bcast_counter;
+  xbt_dynar_t isends;           /* of msg_comm_t */
+  /* Used to implement irecv+wait */
+  xbt_dynar_t irecvs;           /* of msg_comm_t */
+  xbt_dynar_t tasks;            /* of msg_task_t */
+} s_process_globals_t, *process_globals_t;
+
+/* Helper function */
+static double parse_double(const char *string)
+{
+  double value;
+  char *endptr;
+
+  value = strtod(string, &endptr);
+  if (*endptr != '\0')
+    THROWF(unknown_error, 0, "%s is not a double", string);
+  return value;
+}
+
+#define ACT_DEBUG(...) \
+  if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose)) {  \
+    char *NAME = xbt_str_join_array(action, " ");              \
+    XBT_DEBUG(__VA_ARGS__);                                    \
+    xbt_free(NAME);                                            \
+  } else ((void)0)
+
+static void log_action(const char *const *action, double date)
+{
+  if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose)) {
+    char *name = xbt_str_join_array(action, " ");
+    XBT_VERB("%s %f", name, date);
+    xbt_free(name);
+  }
+}
+
+static void asynchronous_cleanup(void)
+{
+  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+
+  /* Destroy any isend which correspond to completed communications */
+  int found;
+  msg_comm_t comm;
+  while ((found = MSG_comm_testany(globals->isends)) != -1) {
+    xbt_dynar_remove_at(globals->isends, found, &comm);
+    MSG_comm_destroy(comm);
+  }
+}
+
+/* My actions */
+static void action_send(const char *const *action)
+{
+  char to[250];
+  const char *size_str = action[3];
+  double size = parse_double(size_str);
+  double clock = MSG_get_clock();
+
+  snprintf(to,249, "%s_%s", MSG_process_get_name(MSG_process_self()), action[2]);
+
+  ACT_DEBUG("Entering Send: %s (size: %g)", NAME, size);
+  if (size < 65536) {
+    action_Isend(action);
+  } else {
+    MSG_task_send(MSG_task_create(to, 0, size, NULL), to);
+  }
+
+  log_action(action, MSG_get_clock() - clock);
+  asynchronous_cleanup();
+}
+
+static void action_Isend(const char *const *action)
+{
+  char to[250];
+  const char *size = action[3];
+  double clock = MSG_get_clock();
+  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+
+  snprintf(to,249, "%s_%s", MSG_process_get_name(MSG_process_self()), action[2]);
+  msg_comm_t comm = MSG_task_isend(MSG_task_create(to, 0, parse_double(size), NULL), to);
+  xbt_dynar_push(globals->isends, &comm);
+
+  XBT_DEBUG("Isend on %s", MSG_process_get_name(MSG_process_self()));
+  log_action(action, MSG_get_clock() - clock);
+  asynchronous_cleanup();
+}
+
+static void action_recv(const char *const *action)
+{
+  char mailbox_name[250];
+  msg_task_t task = NULL;
+  double clock = MSG_get_clock();
+
+  snprintf(mailbox_name,249, "%s_%s", action[2], MSG_process_get_name(MSG_process_self()));
+
+  ACT_DEBUG("Receiving: %s", NAME);
+  msg_error_t res = MSG_task_receive(&task, mailbox_name);
+  log_action(action, MSG_get_clock() - clock);
+
+  if (res == MSG_OK) {
+    MSG_task_destroy(task);
+  }
+  asynchronous_cleanup();
+}
+
+static void action_Irecv(const char *const *action)
+{
+  char mailbox[250];
+  double clock = MSG_get_clock();
+  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+
+  XBT_DEBUG("Irecv on %s", MSG_process_get_name(MSG_process_self()));
+
+  snprintf(mailbox,249, "%s_%s", action[2], MSG_process_get_name(MSG_process_self()));
+  msg_task_t t = NULL;
+  xbt_dynar_push(globals->tasks, &t);
+  msg_comm_t c = MSG_task_irecv((msg_task**)xbt_dynar_get_ptr(globals->tasks, xbt_dynar_length(globals->tasks) - 1), mailbox);
+  xbt_dynar_push(globals->irecvs, &c);
+
+  log_action(action, MSG_get_clock() - clock);
+  asynchronous_cleanup();
+}
+
+static void action_wait(const char *const *action)
+{
+  msg_task_t task = NULL;
+  msg_comm_t comm;
+  double clock = MSG_get_clock();
+  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+
+  xbt_assert(xbt_dynar_length(globals->irecvs), "action wait not preceded by any irecv: %s",
+             xbt_str_join_array(action, " "));
+
+  ACT_DEBUG("Entering %s", NAME);
+  comm = xbt_dynar_pop_as(globals->irecvs, msg_comm_t);
+  MSG_comm_wait(comm, -1);
+  task = xbt_dynar_pop_as(globals->tasks, msg_task_t);
+  MSG_comm_destroy(comm);
+  MSG_task_destroy(task);
+
+  log_action(action, MSG_get_clock() - clock);
+}
+
+/* FIXME: that's a poor man's implementation: we should take the message exchanges into account */
+static void action_barrier(const char *const *action)
+{
+  // static smx_mutex_t mutex = NULL;
+  // static smx_cond_t cond = NULL;
+  static simgrid::s4u::Mutex *mutex = NULL;
+  static simgrid::s4u::ConditionVariable *cond = NULL;
+  static int processes_arrived_sofar = 0;
+  if (mutex == NULL) {          // first arriving on the barrier
+    mutex = new simgrid::s4u::Mutex();
+    cond = new simgrid::s4u::ConditionVariable();
+    processes_arrived_sofar = 0;
+  }
+  ACT_DEBUG("Entering barrier: %s (%d already there)", NAME, processes_arrived_sofar);
+  mutex->lock();
+  if (++processes_arrived_sofar == communicator_size) {
+    cond->notify_all();
+    mutex->unlock();
+  } else {
+    cond->wait(mutex);
+    mutex->unlock();
+  }
+
+  ACT_DEBUG("Exiting barrier: %s", NAME);
+
+  processes_arrived_sofar--;
+  if (processes_arrived_sofar<=0) {
+    delete cond;
+    delete mutex;
+    mutex = NULL;
+  }
+}
+
+static void action_bcast(const char *const *action)
+{
+  char mailbox[80];
+  double comm_size = parse_double(action[2]);
+  msg_task_t task = NULL;
+  double clock = MSG_get_clock();
+
+  process_globals_t counters = (process_globals_t) MSG_process_get_data(MSG_process_self());
+
+  xbt_assert(communicator_size, "Size of Communicator is not defined, can't use collective operations");
+
+  const char * process_name = MSG_process_get_name(MSG_process_self());
+
+  char *bcast_identifier = bprintf("bcast_%d", counters->bcast_counter++);
+
+  if (!strcmp(process_name, "p0")) {
+    XBT_DEBUG("%s: %s is the Root", bcast_identifier, process_name);
+
+    msg_comm_t *comms = xbt_new0(msg_comm_t, communicator_size - 1);
+
+    for (int i = 1; i < communicator_size; i++) {
+      snprintf(mailbox,79, "%s_p0_p%d", bcast_identifier, i);
+      comms[i - 1] = MSG_task_isend(MSG_task_create(mailbox, 0, comm_size, NULL), mailbox);
+    }
+    MSG_comm_waitall(comms, communicator_size - 1, -1);
+    for (int i = 1; i < communicator_size; i++)
+      MSG_comm_destroy(comms[i - 1]);
+    xbt_free(comms);
+
+    XBT_DEBUG("%s: all messages sent by %s have been received", bcast_identifier, process_name);
+  } else {
+    snprintf(mailbox,79, "%s_p0_%s", bcast_identifier, process_name);
+    MSG_task_receive(&task, mailbox);
+    MSG_task_destroy(task);
+    XBT_DEBUG("%s: %s has received", bcast_identifier, process_name);
+  }
+
+  log_action(action, MSG_get_clock() - clock);
+  xbt_free(bcast_identifier);
+}
+
+static void action_comm_size(const char *const *action)
+{
+  const char *size = action[2];
+  double clock = MSG_get_clock();
+
+  communicator_size = parse_double(size);
+  log_action(action, MSG_get_clock() - clock);
+}
+
+static void action_compute(const char *const *action)
+{
+  const char *amount = action[2];
+  msg_task_t task = MSG_task_create("task", parse_double(amount), 0, NULL);
+  double clock = MSG_get_clock();
+
+  ACT_DEBUG("Entering %s", NAME);
+  MSG_task_execute(task);
+  MSG_task_destroy(task);
+  log_action(action, MSG_get_clock() - clock);
+}
+
+static void action_init(const char *const *action)
+{
+  XBT_DEBUG("Initialize the counters");
+  process_globals_t globals = (process_globals_t) calloc(1, sizeof(s_process_globals_t));
+  globals->isends = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+  globals->irecvs = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+  globals->tasks = xbt_dynar_new(sizeof(msg_task_t), NULL);
+  MSG_process_set_data(MSG_process_self(), globals);
+}
+
+static void action_finalize(const char *const *action)
+{
+  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  if (globals) {
+    asynchronous_cleanup();
+    xbt_dynar_free_container(&(globals->isends));
+    xbt_dynar_free_container(&(globals->irecvs));
+    xbt_dynar_free_container(&(globals->tasks));
+    xbt_free(globals);
+  }
+}
+
+int main(int argc, char *argv[])
+{
+  msg_error_t res = MSG_OK;
+
+  /* Check the given arguments */
+  MSG_init(&argc, argv);
+  /* Explicit initialization of the action module is required now*/
+  MSG_action_init();
+
+  xbt_assert(argc > 2,
+       "Usage: %s platform_file deployment_file [action_files]\n"
+       "\t# if all actions are in the same file\n"
+       "\tExample: %s msg_platform.xml msg_deployment.xml actions\n"
+       "\t# if actions are in separate files, specified in deployment\n"
+       "\tExample: %s msg_platform.xml msg_deployment.xml ",
+       argv[0],argv[0],argv[0]);
+
+  MSG_create_environment(argv[1]);
+  MSG_launch_application(argv[2]);
+
+  /*   Action registration */
+  xbt_replay_action_register("init", action_init);
+  xbt_replay_action_register("finalize", action_finalize);
+  xbt_replay_action_register("comm_size", action_comm_size);
+  xbt_replay_action_register("send", action_send);
+  xbt_replay_action_register("Isend", action_Isend);
+  xbt_replay_action_register("recv", action_recv);
+  xbt_replay_action_register("Irecv", action_Irecv);
+  xbt_replay_action_register("wait", action_wait);
+  xbt_replay_action_register("barrier", action_barrier);
+  xbt_replay_action_register("bcast", action_bcast);
+  xbt_replay_action_register("compute", action_compute);
+
+  /* Actually do the simulation using MSG_action_trace_run */
+  res = MSG_action_trace_run(argv[3]);  // it's ok to pass a NULL argument here
+
+  XBT_INFO("Simulation time %g", MSG_get_clock());
+
+  MSG_action_exit(); /* Explicit finalization of the action module */
+
+  return res != MSG_OK;
+}
diff --git a/examples/s4u/actions-comm/s4u_actions-comm.tesh b/examples/s4u/actions-comm/s4u_actions-comm.tesh
new file mode 100644 (file)
index 0000000..c205737
--- /dev/null
@@ -0,0 +1,27 @@
+! output sort 19
+$ ${bindir:=.}/s4u_actions-comm --log=actions.thres=verbose ${srcdir:=.}/small_platform_fatpipe.xml s4u_actions-comm_split_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [ 20.703314] (1:p0@Tremblay) p0 recv p1 20.703314
+> [ 20.703314] (2:p1@Ruby) p1 send p0 1e10 20.703314
+> [ 30.897513] (0:maestro@) Simulation time 30.8975
+> [ 30.897513] (1:p0@Tremblay) p0 compute 1e9 10.194200
+> [ 30.897513] (2:p1@Ruby) p1 compute 1e9 10.194200
+
+! output sort 19
+$ ${bindir:=.}/s4u_actions-comm --log=actions.thres=verbose ${srcdir:=.}/small_platform_fatpipe.xml s4u_actions-comm_d.xml s4u_actions-comm.txt "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (1:p0@Tremblay) p0 comm_size 3 0.000000
+> [  1.037020] (1:p0@Tremblay) p0 bcast 5e8 1.037020
+> [  1.037020] (2:p1@Ruby) p1 bcast 5e8 1.037020
+> [  1.037020] (3:p2@Perl) p2 bcast 5e8 1.037020
+> [  1.082894] (1:p0@Tremblay) p0 compute 4.5E6 0.045874
+> [  1.123670] (1:p0@Tremblay) p0 compute 4E6 0.040777
+> [  1.149156] (1:p0@Tremblay) p0 compute 2.5E6 0.025485
+> [  1.149156] (2:p1@Ruby) p1 Irecv p0 0.000000
+> [  1.149156] (3:p2@Perl) p2 Irecv p1 0.000000
+> [  3.221244] (1:p0@Tremblay) p0 send p1 1e9 2.072088
+> [  6.246256] (3:p2@Perl) p2 compute 5e8 5.097100
+> [ 11.343355] (2:p1@Ruby) p1 compute 1e9 10.194200
+> [ 11.343355] (2:p1@Ruby) p1 wait 0.000000
+> [ 11.343355] (2:p1@Ruby) p1 Isend p2 1e9 0.000000
+> [ 13.415443] (0:maestro@) Simulation time 13.4154
+> [ 13.415443] (1:p0@Tremblay) p0 compute 1e9 10.194200
+> [ 13.415443] (3:p2@Perl) p2 wait 7.169187
diff --git a/examples/s4u/actions-comm/s4u_actions-comm.txt b/examples/s4u/actions-comm/s4u_actions-comm.txt
new file mode 100644 (file)
index 0000000..58c7e61
--- /dev/null
@@ -0,0 +1,37 @@
+# sample action file
+p0 init
+p1 init
+p2 init
+
+p0 comm_size 3
+p0 bcast 5e8
+p1 bcast 5e8
+p2 bcast 5e8
+
+p0 compute 4.5E6
+p0 compute 4E6
+p0 compute 2.5E6
+
+p0 barrier
+p1 barrier
+p2 barrier
+
+p0 send p1 1e9
+p0 compute 1e9
+
+p1 Irecv p0
+p1 compute 1e9
+p1 wait
+p1 Isend p2 1e9
+
+p2 Irecv p1
+p2 compute 5e8
+p2 wait
+
+p0 barrier
+p1 barrier
+p2 barrier
+
+p0 finalize
+p1 finalize
+p2 finalize
diff --git a/examples/s4u/actions-comm/s4u_actions-comm_d.xml b/examples/s4u/actions-comm/s4u_actions-comm_d.xml
new file mode 100644 (file)
index 0000000..8a5602e
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="p0"/>
+  <process host="Ruby" function="p1"/>
+  <process host="Perl" function="p2"/>
+</platform>
diff --git a/examples/s4u/actions-comm/s4u_actions-comm_split_d.xml b/examples/s4u/actions-comm/s4u_actions-comm_split_d.xml
new file mode 100644 (file)
index 0000000..64fc192
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- Example file of how to use trace replay, with actions split in separate files, one per process.
+     Launch it like this:
+         ./actions-comm ../../platforms/platform.xml actions-comm_split_d.xml  -->
+
+  <process host="Tremblay" function="p0">    <argument value="s4u_actions-comm_split_p0.txt"/>  </process>
+  <process host="Ruby"     function="p1">    <argument value="s4u_actions-comm_split_p1.txt"/>  </process>
+</platform>
diff --git a/examples/s4u/actions-comm/s4u_actions-comm_split_p0.txt b/examples/s4u/actions-comm/s4u_actions-comm_split_p0.txt
new file mode 100644 (file)
index 0000000..dd16140
--- /dev/null
@@ -0,0 +1,6 @@
+# sample action file (with only the actions for p0, to be launched by deployment file)
+p0 init
+p0 recv p1
+p0 compute 1e9
+p0 finalize
+
diff --git a/examples/s4u/actions-comm/s4u_actions-comm_split_p1.txt b/examples/s4u/actions-comm/s4u_actions-comm_split_p1.txt
new file mode 100644 (file)
index 0000000..d7e9dfe
--- /dev/null
@@ -0,0 +1,5 @@
+# sample action file (with only the actions for p1, to be launched by deployment file)
+p1 init
+p1 send p0 1e10
+p1 compute 1e9
+p1 finalize
index dde3205..63b75a8 100644 (file)
@@ -12,6 +12,7 @@
 #include "s4u/host.hpp"
 
 #include "s4u/mutex.hpp"
+#include "s4u/conditionVariable.hpp"
 #include "s4u/Activity.hpp"
 #include "s4u/comm.hpp"
 
diff --git a/include/simgrid/s4u/conditionVariable.hpp b/include/simgrid/s4u/conditionVariable.hpp
new file mode 100644 (file)
index 0000000..f279016
--- /dev/null
@@ -0,0 +1,67 @@
+/* Copyright (c) 2006-2016. The SimGrid Team. All rights reserved.          */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#ifndef SIMGRID_S4U_COND_VARIABLE_HPP
+#define SIMGRID_S4U_COND_VARIABLE_HPP
+
+#include <utility> // std::swap
+
+#include <simgrid/simix.h>
+#include <simgrid/s4u/mutex.hpp>
+
+namespace simgrid {
+namespace s4u {
+
+class Mutex;
+
+XBT_PUBLIC_CLASS ConditionVariable {
+  
+public:
+  ConditionVariable();
+
+  ConditionVariable(ConditionVariable* cond) : cond_(SIMIX_cond_ref(cond->cond_)) {}
+  ~ConditionVariable();
+
+  // Copy+move (with the copy-and-swap idiom):
+  ConditionVariable(ConditionVariable const& cond) : cond_(SIMIX_cond_ref(cond.cond_)) {}
+  friend void swap(ConditionVariable& first, ConditionVariable& second)
+  {
+    using std::swap;
+    swap(first.cond_, second.cond_);
+  }
+  ConditionVariable& operator=(ConditionVariable cond)
+  {
+    swap(*this, cond);
+    return *this;
+  }
+  ConditionVariable(ConditionVariable&& cond) : cond_(nullptr)
+  {
+    swap(*this, cond);
+  }
+
+  bool valid() const
+  {
+    return cond_ != nullptr;
+  }
+  
+  /**
+  * Wait functions
+  */
+  void wait(Mutex *mutex);
+  void wait_for(Mutex *mutex, double time);
+
+  /**
+  * Notify functions
+  */
+  void notify();
+  void notify_all();
+
+private:
+  smx_cond_t cond_;
+
+};
+}} // namespace simgrid::s4u
+
+#endif /* SIMGRID_S4U_COND_VARIABLE_HPP */
index 201f071..75b7d09 100644 (file)
 #include <boost/intrusive_ptr.hpp>
 #include <xbt/base.h>
 #include "simgrid/simix.h"
+#include <simgrid/s4u/conditionVariable.hpp>
 
 namespace simgrid {
 namespace s4u {
 
+class ConditionVariable;
 XBT_PUBLIC_CLASS Mutex {
-
+friend ConditionVariable;
 public:
   Mutex() :
     mutex_(simcall_mutex_init()) {}
index ebd2598..9beaaf8 100644 (file)
@@ -384,6 +384,7 @@ XBT_PUBLIC(void) simcall_mutex_unlock(smx_mutex_t mutex);
 
 XBT_PUBLIC(smx_cond_t) simcall_cond_init(void);
 XBT_PUBLIC(void) SIMIX_cond_unref(smx_cond_t cond);
+XBT_PUBLIC(smx_cond_t) SIMIX_cond_ref(smx_cond_t cond);
 XBT_PUBLIC(void) simcall_cond_signal(smx_cond_t cond);
 XBT_PUBLIC(void) simcall_cond_wait(smx_cond_t cond, smx_mutex_t mutex);
 XBT_PUBLIC(void) simcall_cond_wait_timeout(smx_cond_t cond,
diff --git a/src/s4u/s4u_conditionVariable.cpp b/src/s4u/s4u_conditionVariable.cpp
new file mode 100644 (file)
index 0000000..60e3365
--- /dev/null
@@ -0,0 +1,36 @@
+#include "simgrid/s4u/conditionVariable.hpp"
+#include "simgrid/simix.h"
+
+using namespace simgrid;
+
+s4u::ConditionVariable::ConditionVariable()  : cond_(simcall_cond_init()){
+    
+}
+
+s4u::ConditionVariable::~ConditionVariable() {
+  SIMIX_cond_unref(cond_);
+}
+
+/**
+ * Wait functions
+ */
+void s4u::ConditionVariable::wait(s4u::Mutex *mutex) {
+  simcall_cond_wait(cond_, mutex->mutex_);
+}
+  
+void s4u::ConditionVariable::wait_for(s4u::Mutex *mutex, double timeout) {
+  simcall_cond_wait_timeout(cond_, mutex->mutex_, timeout);
+}
+  
+/**
+ * Notify functions
+ */
+void s4u::ConditionVariable::notify() { 
+   simcall_cond_signal(cond_);
+}
+void s4u::ConditionVariable::notify_all() {
+  simcall_cond_broadcast(cond_);
+}
+
index 95ff865..2d20719 100644 (file)
@@ -352,12 +352,13 @@ void SIMIX_cond_broadcast(smx_cond_t cond)
   XBT_OUT();
 }
 
-/**
- * \brief Destroys a condition.
- *
- * Destroys and frees the condition's memory. 
- * \param cond A condition
- */
+smx_cond_t SIMIX_cond_ref(smx_cond_t cond)
+{
+  if (cond != nullptr)
+    intrusive_ptr_add_ref(cond);
+  return cond;
+}
+
 void SIMIX_cond_unref(smx_cond_t cond)
 {
   XBT_IN("(%p)",cond);
index 943e1ad..73f87c1 100644 (file)
@@ -66,6 +66,8 @@ typedef struct s_smx_sem {
   xbt_swag_t sleeping;          /* list of sleeping process */
 } s_smx_sem_t;
 
+
+
 XBT_PRIVATE void SIMIX_post_synchro(smx_synchro_t synchro);
 XBT_PRIVATE void SIMIX_synchro_stop_waiting(smx_process_t process, smx_simcall_t simcall);
 XBT_PRIVATE void SIMIX_synchro_destroy(smx_synchro_t synchro);
@@ -74,12 +76,11 @@ XBT_PRIVATE void SIMIX_synchro_finish(smx_synchro_t synchro);
 XBT_PRIVATE smx_cond_t SIMIX_cond_init(void);
 XBT_PRIVATE void SIMIX_cond_broadcast(smx_cond_t cond);
 XBT_PRIVATE void SIMIX_cond_signal(smx_cond_t cond);
+XBT_PRIVATE void intrusive_ptr_add_ref(s_smx_cond_t *cond);
+XBT_PRIVATE void intrusive_ptr_release(s_smx_cond_t *cond);
 
 XBT_PRIVATE XBT_PRIVATE smx_sem_t SIMIX_sem_init(unsigned int value);
 XBT_PRIVATE void SIMIX_sem_release(smx_sem_t sem);
 XBT_PRIVATE int SIMIX_sem_would_block(smx_sem_t sem);
 XBT_PRIVATE int SIMIX_sem_get_capacity(smx_sem_t sem);
-
-XBT_PRIVATE void intrusive_ptr_release(s_smx_cond_t *cond);
-XBT_PRIVATE void intrusive_ptr_add_ref(s_smx_cond_t *cond);
 #endif
index 2f4692a..68c4ccc 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="0">
-       <argument value="40"/>
-       <argument value="1.0"/>
+    <argument value="40"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index f5f4a76..d12fc7b 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="0">
-       <argument value="220"/>
-       <argument value="1.0"/>
+    <argument value="220"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index b02d52d..6ae2f4e 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="40"/>
-       <argument value="1.0"/>
+    <argument value="40"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index a648155..4c9a178 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="260"/>
-       <argument value="1.0"/>
+    <argument value="260"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index 6ce00b5..33087be 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="20">
-       <argument value="40"/>
-       <argument value="1.0"/>
+    <argument value="40"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index e045ffa..028b9a1 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="20">
-       <argument value="140"/>
-       <argument value="1.0"/>
+    <argument value="140"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index 4c2b0f2..8beb1c2 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="40">
-       <argument value="40"/>
-       <argument value="1.0"/>
+    <argument value="40"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index 9b62918..c412fe1 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="40">
-       <argument value="260"/>
-       <argument value="1.0"/>
+    <argument value="260"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index 9254e10..b4a9f57 100644 (file)
@@ -2,15 +2,15 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace">
-       <argument value="170"/>
-       <argument value="1.0"/>
+    <argument value="170"/>
+    <argument value="1.0"/>
   </process>
   <process host="Cpu B" function="test_trace">
-       <argument value="170"/>
-       <argument value="1.0"/>
+    <argument value="170"/>
+    <argument value="1.0"/>
   </process>
   <process host="Cpu B" function="test_trace" start_time="30">
-       <argument value="100"/>
-       <argument value="1.0"/>
+    <argument value="100"/>
+    <argument value="1.0"/>
   </process>
 </platform>
index e359c41..504497c 100644 (file)
@@ -2,15 +2,15 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="25"/>
-       <argument value="1.0"/>
+    <argument value="25"/>
+    <argument value="1.0"/>
   </process>
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="75"/>
-       <argument value="3.0"/>
+    <argument value="75"/>
+    <argument value="3.0"/>
   </process>
   <process host="Cpu B" function="test_trace" start_time="20">
-       <argument value="120"/>
-       <argument value="4.0"/>
+    <argument value="120"/>
+    <argument value="4.0"/>
   </process>
 </platform>
index df5a68a..aaa2f6c 100644 (file)
@@ -2,11 +2,11 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="150"/>
-       <argument value="1.5"/>
+    <argument value="150"/>
+    <argument value="1.5"/>
   </process>
   <process host="Cpu B" function="test_trace" start_time="20">
-       <argument value="70"/>
-       <argument value="1.5"/>
+    <argument value="70"/>
+    <argument value="1.5"/>
   </process>
 </platform>
index 89fffcc..163924b 100644 (file)
@@ -2,11 +2,11 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="50"/>
-       <argument value="2.5"/>
+    <argument value="50"/>
+    <argument value="2.5"/>
   </process>
   <process host="Cpu B" function="test_trace" start_time="10">
-       <argument value="70"/>
-       <argument value="1.5"/>
+    <argument value="70"/>
+    <argument value="1.5"/>
   </process>
 </platform>
index 9504826..3637af9 100644 (file)
@@ -1,26 +1,34 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
- <AS id="AS0" routing="Dijkstra">
-   <host id="NODO01" speed="10Mf"/>
-   <host id="NODO02" speed="10Mf"/>
 <AS id="AS0" routing="Dijkstra">
+    <host id="NODO01" speed="10Mf"/>
+    <host id="NODO02" speed="10Mf"/>
 
-   <router id="ROUTER"/>
+    <router id="ROUTER"/>
 
-   <link id="1" bandwidth="1MBps" latency="1ms"/>
-   <link id="2" bandwidth="1MBps" latency="1ms"/>
-   <link id="10" bandwidth="1MBps" latency="1ms"/>
-   <link id="11" bandwidth="1MBps" latency="1ms"/>
-   <link id="12" bandwidth="1MBps" latency="1ms"/>
+    <link id="1" bandwidth="1MBps" latency="1ms"/>
+    <link id="2" bandwidth="1MBps" latency="1ms"/>
+    <link id="10" bandwidth="1MBps" latency="1ms"/>
+    <link id="11" bandwidth="1MBps" latency="1ms"/>
+    <link id="12" bandwidth="1MBps" latency="1ms"/>
 
-   <route src="NODO01" dst="ROUTER" symmetrical="NO"><link_ctn id="1"/></route>
-   <route src="NODO02" dst="ROUTER" symmetrical="NO"><link_ctn id="2"/></route>
+    <route src="NODO01" dst="ROUTER" symmetrical="NO">
+      <link_ctn id="1"/>
+    </route>
+    <route src="NODO02" dst="ROUTER" symmetrical="NO">
+      <link_ctn id="2"/>
+    </route>
 
-   <route src="ROUTER" dst="NODO01" symmetrical="NO"><link_ctn id="1"/></route>
-   <route src="ROUTER" dst="NODO02" symmetrical="NO"><link_ctn id="2"/></route>
+    <route src="ROUTER" dst="NODO01" symmetrical="NO">
+      <link_ctn id="1"/>
+    </route>
+    <route src="ROUTER" dst="NODO02" symmetrical="NO">
+      <link_ctn id="2"/>
+    </route>
 
-   <route src="NODO01" dst="NODO02" symmetrical="NO">
-     <link_ctn id="10"/><link_ctn id="11"/><link_ctn id="12"/>
-   </route>
- </AS>
+    <route src="NODO01" dst="NODO02" symmetrical="NO">
+      <link_ctn id="10"/><link_ctn id="11"/><link_ctn id="12"/>
+    </route>
 </AS>
 </platform>
index 60c1468..d038fc1 100644 (file)
@@ -1,8 +1,8 @@
-<!-- THIS FILE IS INVALID.
-     It declares a storage attached to a nonexistant host (plouf). See bogus_disk_attachment.tesh -->
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
+  <!-- THIS FILE IS INVALID.
+       It declares a storage attached to a nonexistant host (plouf). See bogus_disk_attachment.tesh -->
   <AS id="AS0" routing="Full">
     <storage_type id="single_HDD" model="SSD" size="4kB">
       <model_prop id="Bwrite" value="30MBps" />
index e237a2d..d297f04 100644 (file)
@@ -3,16 +3,16 @@
 <platform version="4">
   <AS id="World" routing="Full">
     <AS id="us" routing="Full">
-       <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
+      <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
     </AS>
     <AS id="fr" routing="Full">
-       <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
+      <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
     </AS>
 
     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
 
     <ASroute src="us" gw_src="node-cluster_router.cluster.us" dst="fr" gw_dst="neud-grappe_router.grappe.fr">
-        <link_ctn id="backbone"/>
+      <link_ctn id="backbone"/>
     </ASroute>
   </AS>
 </platform>
index 00d76f9..b935300 100644 (file)
@@ -3,16 +3,16 @@
 <platform version="4">
   <AS id="World" routing="Full">
     <AS id="us" routing="Full">
-       <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
+      <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
     </AS>
     <AS id="fr" routing="Full">
-        <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
+      <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" speed="1Gf" bw="938MBps" lat="270us"/>
     </AS>
 
     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
 
     <ASroute src="us" gw_src="nod-cluster_router.cluster.us" dst="fr" gw_dst="noeud-grappe_router.grappe.fr">
-        <link_ctn id="backbone"/>
+      <link_ctn id="backbone"/>
     </ASroute>
   </AS>
 </platform>
index 2c88726..ec52306 100644 (file)
@@ -1,17 +1,21 @@
-<!-- THIS FILE IS INVALID.
-     It declares a route alice->bob and another bob->alice, both being different.
-     It is used to check that this (bogus) file is detected as is (see two_hosts_asymetric.tesh) -->
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
+  <!-- THIS FILE IS INVALID.
+       It declares a route alice->bob and another bob->alice, both being different.
+       It is used to check that this (bogus) file is detected as is (see two_hosts_asymetric.tesh) -->
   <AS  id="AS0"  routing="Full">
     <host id="bob" speed="1Gf"/>
     <host id="alice" speed="500Mf"/>
 
-   <link id="link1" bandwidth="125MBps" latency="50us"/>
-   <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
 
-   <route src="bob" dst="alice"><link_ctn id="link1"/></route>
-   <route src="alice" dst="bob"><link_ctn id="link2"/></route>
+    <route src="bob" dst="alice">
+      <link_ctn id="link1"/>
+    </route>
+    <route src="alice" dst="bob">
+      <link_ctn id="link2"/>
+    </route>
   </AS>
 </platform>
index ee94405..62bc33d 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS  id="AS0"  routing="Full">
-  <host id="bob" speed="500Mf"/>
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf"/>
 
-  <link id="link1" bandwidth="125MBps" latency="50us"/>
-  <link id="link2" bandwidth="125MBps" latency="50us" sharing_policy="FATPIPE"/>
-  <link id="link3" bandwidth="80MBps" latency="100us" bandwidth_file="link.bw" latency_file="link.lat"/>
-  <link id="link4" bandwidth="80MBps" latency="100us" state_file="link.fail"/>
-</AS>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us" sharing_policy="FATPIPE"/>
+    <link id="link3" bandwidth="80MBps" latency="100us" bandwidth_file="link.bw" latency_file="link.lat"/>
+    <link id="link4" bandwidth="80MBps" latency="100us" state_file="link.fail"/>
+  </AS>
 </platform>
index 49a4694..29c7984 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us"/>
+  </AS>
 </platform>
index 543f7f7..d998894 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
-   bb_bw="2.25GBps" bb_lat="500us" sharing_policy="FULLDUPLEX"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us" sharing_policy="FULLDUPLEX"/>
+  </AS>
 </platform>
index 589aa15..18de947 100644 (file)
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" core="6" 
-           bw="125MBps" lat="50us"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" core="6" bw="125MBps" lat="50us"/>
+  </AS>
 </platform>
index 5111016..3682739 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-<AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
-</AS>
+  <AS id="AS0" routing="Full">
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
+  </AS>
 </platform>
index ef7632a..d996cbc 100644 (file)
@@ -10,6 +10,8 @@
 
     <link id="link0" bandwidth="2Bps" latency="2.777777777777777777777777778h" sharing_policy="SHARED"/>
 
-    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
+    <route src="cpu0" dst="cpu1">
+      <link_ctn id="link0"/>
+    </route>
   </AS>
 </platform>
index 84bf34d..12d2174 100644 (file)
@@ -7,6 +7,8 @@
 
     <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="FATPIPE"/>
 
-    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
+    <route src="cpu0" dst="cpu1">
+      <link_ctn id="link0"/>
+    </route>
   </AS>
 </platform>
index 53e2f8a..ed3396e 100644 (file)
@@ -7,6 +7,8 @@
 
     <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
 
-    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
+    <route src="cpu0" dst="cpu1">
+      <link_ctn id="link0"/>
+    </route>
   </AS>
 </platform>
index 55805e5..c0d1e78 100644 (file)
@@ -7,6 +7,8 @@
 
     <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED" />
 
-     <route src="cpu0" dst="cpu1"><link_ctn id="link0" /></route>
+    <route src="cpu0" dst="cpu1">
+      <link_ctn id="link0" />
+    </route>
   </AS>
 </platform>
index bd1e546..34286fc 100644 (file)
@@ -9,6 +9,10 @@
     <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
     <link id="link1" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
 
-    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/><link_ctn id="switch"/><link_ctn id="link1"/></route>
- </AS>
- </platform>
+    <route src="cpu0" dst="cpu1">
+      <link_ctn id="link0"/>
+      <link_ctn id="switch"/>
+      <link_ctn id="link1"/>
+    </route>
+  </AS>
+</platform>
index 1c172ee..d73a133 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <AS id="main" routing="Full">
-    <include file="clusterA.xml"></include>
-    <include file="clusterB.xml"></include>
+    <include file="clusterA.xml"/>
+    <include file="clusterB.xml"/>
   </AS>
 </platform>
index a15bf7a..28dfd08 100644 (file)
@@ -2,13 +2,13 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <config id="General">
-    <prop id="maxmin/precision" value="0.000010"></prop>
-    <prop id="cpu/optim" value="TI"></prop>
-    <prop id="host/model" value="compound"></prop>
-    <prop id="network/model" value="Vegas"></prop>
-    <prop id="path" value="~/"></prop>
+    <prop id="maxmin/precision" value="0.000010"/>
+    <prop id="cpu/optim" value="TI"/>
+    <prop id="host/model" value="compound"/>
+    <prop id="network/model" value="Vegas"/>
+    <prop id="path" value="~/"/>
   </config>
   <AS  id="AS0"  routing="Full">
-     <host id="bob" speed="500Mf"/>
+    <host id="bob" speed="500Mf"/>
   </AS>
 </platform>
index 3f5d239..70d10ce 100644 (file)
@@ -3,29 +3,29 @@
 <platform version="4">
   <AS  id="AS"  routing="Full">
     <AS  id="AS0"  routing="Full">
-       <host id="host01" speed="1Gf"/>
-       <host id="host02" speed="500Mf"/>
-       <router id="router1"/>
+      <host id="host01" speed="1Gf"/>
+      <host id="host02" speed="500Mf"/>
+      <router id="router1"/>
     </AS>
     <AS  id="AS1"  routing="Floyd">
-       <host id="host03" speed="1Gf"/>
-       <host id="host04" speed="500Mf"/>
-       <router id="router2"/>
+      <host id="host03" speed="1Gf"/>
+      <host id="host04" speed="500Mf"/>
+      <router id="router2"/>
     </AS>
     <AS  id="AS2"  routing="Dijkstra">
-       <host id="host05" speed="1Gf"/>
-       <host id="host06" speed="500Mf"/>
-       <router id="router3"/>
+      <host id="host05" speed="1Gf"/>
+      <host id="host06" speed="500Mf"/>
+      <router id="router3"/>
+    </AS>
+    <AS  id="AS3"  routing="DijkstraCache">
+      <host id="host07" speed="1Gf"/>
+      <host id="host08" speed="500Mf"/>
+      <router id="router4"/>
+    </AS>
+    <AS  id="AS4"  routing="None">
+      <host id="host09" speed="1Gf"/>
+      <host id="host10" speed="500Mf"/>
+      <router id="router5"/>
     </AS>
-   <AS  id="AS3"  routing="DijkstraCache">
-       <host id="host07" speed="1Gf"/>
-       <host id="host08" speed="500Mf"/>
-       <router id="router4"/>
-   </AS>
-   <AS  id="AS4"  routing="None">
-       <host id="host09" speed="1Gf"/>
-       <host id="host10" speed="500Mf"/>
-       <router id="router5"/>
-   </AS>
   </AS>
 </platform>
index e4e0706..b37590c 100644 (file)
     <link id="link2" bandwidth="125MBps" latency="50us"/>
     <link id="link3" bandwidth="125MBps" latency="50us"/>
 
-   <route src="bob" dst="alice" symmetrical="NO"><link_ctn id="link1"/></route>
-   <route src="alice" dst="bob" symmetrical="NO"><link_ctn id="link2"/><link_ctn id="link3"/></route>
-   <route src="bob" dst="trudy"><link_ctn id="link2"/></route>
-   <route src="trudy" dst="alice"><link_ctn id="link3"/></route>
+    <route src="bob" dst="alice" symmetrical="NO">
+      <link_ctn id="link1"/>
+    </route>
+    <route src="alice" dst="bob" symmetrical="NO">
+      <link_ctn id="link2"/>
+      <link_ctn id="link3"/>
+    </route>
+    <route src="bob" dst="trudy">
+      <link_ctn id="link2"/>
+    </route>
+    <route src="trudy" dst="alice">
+      <link_ctn id="link3"/>
+    </route>
   </AS>
 </platform>
index 5fa2b2b..d8b7464 100644 (file)
@@ -7,11 +7,11 @@
     <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr" radical="0-1" speed="1Gf" bw="125MBps" lat="50us"
              bb_bw="2.25GBps" bb_lat="500us"/>  
 
-     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
+    <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
 
-     <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bobbob_cluster_router.hamburger.edu" 
-              gw_dst="alicealice_cluster_router.crepe.fr">
-        <link_ctn id="backbone"/>
-     </ASroute>
+    <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bobbob_cluster_router.hamburger.edu" 
+             gw_dst="alicealice_cluster_router.crepe.fr">
+       <link_ctn id="backbone"/>
+    </ASroute>
   </AS>
 </platform>
index 7c0e117..bbaf0c9 100644 (file)
@@ -2,18 +2,18 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <AS  id="AS0"  routing="Full">
-     <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
-              bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
-     <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
-              bb_bw="2.25GBps" bb_lat="500us" router_id="alice_cluster_router"/>  
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
+    <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us" router_id="alice_cluster_router"/>  
 
-     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
+    <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
 
-     <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bob_cluster_router" gw_dst="alice_cluster_router">
-        <link_ctn id="backbone"/>
-     </ASroute>
-     <ASroute src="alice_cluster" dst="bob_cluster" gw_src="alice_cluster_router" gw_dst="bob_cluster_router">
-        <link_ctn id="backbone"/>
-     </ASroute>
+    <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bob_cluster_router" gw_dst="alice_cluster_router">
+       <link_ctn id="backbone"/>
+    </ASroute>
+    <ASroute src="alice_cluster" dst="bob_cluster" gw_src="alice_cluster_router" gw_dst="bob_cluster_router">
+       <link_ctn id="backbone"/>
+    </ASroute>
   </AS>
 </platform>
index 5048e04..15a3b02 100644 (file)
@@ -9,6 +9,10 @@
     <link id="link_alice" bandwidth="125MBps" latency="50us"/>
     <link id="switch" bandwidth="125MBps" latency="50us" sharing_policy="FATPIPE"/>
 
-    <route src="bob" dst="alice"><link_ctn id="link_bob"/><link_ctn id="switch"/><link_ctn id="link_alice"/></route>
+    <route src="bob" dst="alice">
+      <link_ctn id="link_bob"/>
+      <link_ctn id="switch"/>
+      <link_ctn id="link_alice"/>
+    </route>
   </AS>
 </platform>
index 6140f0b..56e7e4b 100644 (file)
@@ -7,6 +7,8 @@
 
     <link id="link1" bandwidth="125MBps" latency="50us"/>
 
-    <route src="bob" dst="alice"><link_ctn id="link1"/></route>
+    <route src="bob" dst="alice">
+      <link_ctn id="link1"/>
+    </route>
   </AS>
 </platform>
index 25c944c..515fd53 100644 (file)
@@ -7,7 +7,11 @@
 
     <link id="link1" bandwidth="125MBps" latency="50us" sharing_policy="FULLDUPLEX"/>
 
-    <route src="alice" dst="bob" symmetrical="NO"><link_ctn id="link1" direction="UP"/></route>
-    <route src="bob" dst="alice" symmetrical="NO"><link_ctn id="link1" direction="DOWN"/></route>
+    <route src="alice" dst="bob" symmetrical="NO">
+      <link_ctn id="link1" direction="UP"/>
+    </route>
+    <route src="bob" dst="alice" symmetrical="NO">
+      <link_ctn id="link1" direction="DOWN"/>
+    </route>
   </AS>
 </platform>
index 1e16c2e..ec842ee 100644 (file)
@@ -384,6 +384,7 @@ set(S4U_SRC
   src/s4u/s4u_host.cpp  
   src/s4u/s4u_mailbox.cpp
   src/s4u/s4u_mutex.cpp
+  src/s4u/s4u_conditionVariable.cpp
   src/s4u/s4u_storage.cpp
 )
 
@@ -650,6 +651,7 @@ set(headers_to_install
   include/simgrid/s4u/host.hpp  
   include/simgrid/s4u/mailbox.hpp  
   include/simgrid/s4u/mutex.hpp
+  include/simgrid/s4u/conditionVariable.hpp
   include/simgrid/s4u/storage.hpp  
   include/simgrid/s4u.h
   include/simgrid/plugins/energy.h