X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d206cd555889b5f3e58d072e8f912ad74f6031da..cb1f41e17133f75d16ce09edee442cda1ae579b6:/examples/python/actor-migrate/actor-migrate.py diff --git a/examples/python/actor-migrate/actor-migrate.py b/examples/python/actor-migrate/actor-migrate.py index 7e84fc4e2b..c48a0eb569 100644 --- a/examples/python/actor-migrate/actor-migrate.py +++ b/examples/python/actor-migrate/actor-migrate.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017-2018. The SimGrid Team. All rights reserved. +# Copyright (c) 2017-2019. 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. @@ -15,46 +15,54 @@ # Note that worker() takes an uncommon set of parameters, # and that this is perfectly accepted by create(). -from simgrid import * +from simgrid import Actor, Engine, Host, this_actor import sys + def worker(first_host, second_host): flop_amount = first_host.speed * 5 + second_host.speed * 5 - this_actor.info("Let's move to {:s} to execute {:.2f} Mflops (5sec on {:s} and 5sec on {:s})".format(first_host.name, flop_amount / 1e6, first_host.name, second_host.name)) + this_actor.info("Let's move to {:s} to execute {:.2f} Mflops (5sec on {:s} and 5sec on {:s})".format( + first_host.name, flop_amount / 1e6, first_host.name, second_host.name)) - this_actor.migrate(first_host) + this_actor.set_host(first_host) this_actor.execute(flop_amount) - this_actor.info("I wake up on {:s}. Let's suspend a bit".format(this_actor.get_host().name)) + this_actor.info("I wake up on {:s}. Let's suspend a bit".format( + this_actor.get_host().name)) this_actor.suspend() this_actor.info("I wake up on {:s}".format(this_actor.get_host().name)) this_actor.info("Done") + def monitor(): - boivin = Host.by_name("Boivin") - jacquelin = Host.by_name("Jacquelin") - fafard = Host.by_name("Fafard") + boivin = Host.by_name("Boivin") + jacquelin = Host.by_name("Jacquelin") + fafard = Host.by_name("Fafard") - actor = Actor.create("worker", fafard, worker, boivin, jacquelin) + actor = Actor.create("worker", fafard, worker, boivin, jacquelin) - this_actor.sleep_for(5) + this_actor.sleep_for(5) - this_actor.info("After 5 seconds, move the process to {:s}".format(jacquelin.name)) - actor.migrate(jacquelin) + this_actor.info( + "After 5 seconds, move the process to {:s}".format(jacquelin.name)) + actor.host = jacquelin + + this_actor.sleep_until(15) + this_actor.info( + "At t=15, move the process to {:s} and resume it.".format(fafard.name)) + actor.host = fafard + actor.resume() - this_actor.sleep_until(15) - this_actor.info("At t=15, move the process to {:s} and resume it.".format(fafard.name)) - actor.migrate(fafard) - actor.resume() if __name__ == '__main__': e = Engine(sys.argv) - if len(sys.argv) < 2: raise AssertionError("Usage: actor-migration.py platform_file [other parameters]") - e.load_platform(sys.argv[1]) + if len(sys.argv) < 2: + raise AssertionError( + "Usage: actor-migration.py platform_file [other parameters]") + e.load_platform(sys.argv[1]) Actor.create("monitor", Host.by_name("Boivin"), monitor) e.run() -