Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Pylint examples/*.py.
[simgrid.git] / examples / python / platform-profile / platform-profile.py
index 1fb9611..82b6146 100644 (file)
@@ -3,46 +3,50 @@
 # 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.
 
-from simgrid import Actor, Engine, Host, Link, this_actor
-import sys
+"""
+This example demonstrates how to attach a profile to a host or a link, to specify external changes to the resource
+speed.
+The first way to do so is to use a file in the XML, while the second is to use the programmatic interface.
+"""
 
-# This example demonstrates how to attach a profile to a host or a link, to specify external changes to the resource speed.
-# The first way to do so is to use a file in the XML, while the second is to use the programmatic interface.
+import sys
+from simgrid import Actor, Engine, Host, Link, this_actor
 
 def watcher():
-  jupiter  = Host.by_name("Jupiter")
-  fafard   = Host.by_name("Fafard")
-  lilibeth = Host.by_name("Lilibeth")
-  link1    = Link.by_name("1")
-  link2    = Link.by_name("2")
-
-  (links, lat) = jupiter.route_to(fafard)
-  path = ""
-  for l in links:
-    path += ("" if len(path)==0 else ", ") + "link '" + l.name + "'"
-  this_actor.info(f"Path from Jupiter to Fafard: {path} (latency: {lat:.6f}s).")
-
-  for _ in range(10):
-    this_actor.info("Fafard: %.0fMflops, Jupiter: %4.0fMflops, Lilibeth: %3.1fMflops, Link1: (%.2fMB/s %.0fms), Link2: (%.2fMB/s %.0fms)" % (
-             fafard.speed * fafard.available_speed / 1000000,
-             jupiter.speed * jupiter.available_speed / 1000000,
-             lilibeth.speed * lilibeth.available_speed / 1000000, 
-             link1.bandwidth / 1000, link1.latency * 1000, 
-             link2.bandwidth / 1000, link2.latency * 1000))
-    this_actor.sleep_for(1)
+    jupiter = Host.by_name("Jupiter")
+    fafard = Host.by_name("Fafard")
+    lilibeth = Host.by_name("Lilibeth")
+    link1 = Link.by_name("1")
+    link2 = Link.by_name("2")
+
+    (links, lat) = jupiter.route_to(fafard)
+    path = ""
+    for l in links:
+        path += ("" if not path else ", ") + "link '" + l.name + "'"
+    this_actor.info(f"Path from Jupiter to Fafard: {path} (latency: {lat:.6f}s).")
+
+    for _ in range(10):
+        this_actor.info("Fafard: %.0fMflops, Jupiter: %4.0fMflops, Lilibeth: %3.1fMflops, \
+Link1: (%.2fMB/s %.0fms), Link2: (%.2fMB/s %.0fms)" % (fafard.speed * fafard.available_speed / 1000000,
+                                                       jupiter.speed * jupiter.available_speed / 1000000,
+                                                       lilibeth.speed * lilibeth.available_speed / 1000000,
+                                                       link1.bandwidth / 1000, link1.latency * 1000,
+                                                       link2.bandwidth / 1000, link2.latency * 1000))
+        this_actor.sleep_for(1)
 
 if __name__ == '__main__':
-  e = Engine(sys.argv)
-  # Load the platform description
-  e.load_platform(sys.argv[1])
+    e = Engine(sys.argv)
+    # Load the platform description
+    e.load_platform(sys.argv[1])
 
-  # Add a new host programmatically, and attach a simple speed profile to it (alternate between full and half speed every two seconds
-  lili = e.netzone_root.create_host("Lilibeth", 25e6)
-  lili.set_speed_profile("""0 1.0
-2 0.5""", 2)
-  lili.seal()
+    # Add a new host programmatically, and attach a simple speed profile to it (alternate between full and half speed
+    # every two seconds
+    lili = e.netzone_root.create_host("Lilibeth", 25e6)
+    lili.set_speed_profile("""0 1.0
+    2 0.5""", 2)
+    lili.seal()
 
-  # Add a watcher of the changes
-  Actor.create("watcher", Host.by_name("Fafard"), watcher)
+    # Add a watcher of the changes
+    Actor.create("watcher", Host.by_name("Fafard"), watcher)
 
-  e.run()
+    e.run()