X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a33903f0993a2bd3e7a426314de93fb20b0a6172..30e0627bbfc12ce4ebeacfda720bc52e95feb22c:/examples/python/exec-async/exec-async.py diff --git a/examples/python/exec-async/exec-async.py b/examples/python/exec-async/exec-async.py index 1f74851dd5..5892dca6ea 100644 --- a/examples/python/exec-async/exec-async.py +++ b/examples/python/exec-async/exec-async.py @@ -1,23 +1,30 @@ -# Copyright (c) 2018-2019. The SimGrid Team. All rights reserved. +# Copyright (c) 2018-2023. 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. +""" +Usage: exec-async.py platform_file [other parameters] +""" + import sys -from simgrid import * +from simgrid import Actor, Engine, Host, this_actor class Waiter: - """ This actor simply waits for its task completion after starting it. That's exactly equivalent to synchronous execution. """ + """ + This actor simply waits for its task completion after starting it. + That's exactly equivalent to synchronous execution. + """ def __call__(self): computation_amount = this_actor.get_host().speed - this_actor.info("Execute {:.0f} flops, should take 1 second.".format(computation_amount)) + this_actor.info("Waiter executes {:.0f} flops, should take 1 second.".format(computation_amount)) activity = this_actor.exec_init(computation_amount) activity.start() activity.wait() - this_actor.info("Goodbye now!") + this_actor.info("Goodbye from waiter!") class Monitor: @@ -25,7 +32,7 @@ class Monitor: def __call__(self): computation_amount = this_actor.get_host().speed - this_actor.info("Execute {:.0f} flops, should take 1 second.".format(computation_amount)) + this_actor.info("Monitor executes {:.0f} flops, should take 1 second.".format(computation_amount)) activity = this_actor.exec_init(computation_amount).start() while not activity.test(): @@ -34,7 +41,7 @@ class Monitor: this_actor.sleep_for(0.3) activity.wait() - this_actor.info("Goodbye now!") + this_actor.info("Goodbye from monitor!") class Canceller: @@ -42,18 +49,20 @@ class Canceller: def __call__(self): computation_amount = this_actor.get_host().speed - this_actor.info("Execute {:.0f} flops, should take 1 second.".format(computation_amount)) - activity = this_actor.exec_init(computation_amount).start() + this_actor.info("Canceller executes {:.0f} flops, should take 1 second.".format(computation_amount)) + activity = this_actor.exec_async(computation_amount) this_actor.sleep_for(0.5) this_actor.info("I changed my mind, cancel!") activity.cancel() - this_actor.info("Goodbye now!") + this_actor.info("Goodbye from canceller!") if __name__ == '__main__': e = Engine(sys.argv) + if len(sys.argv) < 2: + raise AssertionError("Usage: exec-async.py platform_file [other parameters]") e.load_platform(sys.argv[1])