X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/429997d6c6c0bee1f8bba49be7277a17c3595318..debe4e5871c0c3d1c714bbb1bd28ba7147454aa5:/examples/s4u/README.rst diff --git a/examples/s4u/README.rst b/examples/s4u/README.rst index 48bded29fd..d7f8291f70 100644 --- a/examples/s4u/README.rst +++ b/examples/s4u/README.rst @@ -38,14 +38,31 @@ Starting and Stoping Actors - **Creating actors:** Most actors are started from the deployment XML file, but there is other methods. This example show them all. - |br| |cpp| `examples/s4u/actor-create/s4u-actor-create.cpp `_ - |br| |py| `examples/python/actor-create/actor-create.py `_ + `examples/python/actor-create/actor-create_d.xml `_ + - |cpp| `examples/s4u/actor-create/s4u-actor-create.cpp `_ + - |py| `examples/python/actor-create/actor-create.py `_ + + - **React to the end of actors:** + You can attach a callback to the end of actors. There is two ways + of doing so, depending of whether you want your callback to be + executed when a specific actor ends (with ```this_actor::on_exit()```) + or whether it should be executed when any actor ends (with + ```Actor::on_destruction()```) + + - |cpp| `examples/s4u/actor-exiting/s4u-actor-exiting.cpp `_ + - **Kill actors:** - Actors can forcefully stop other actors with the - :cpp:func:`void simgrid::s4u::Actor::kill(void)` or the - :cpp:func:`void simgrid::s4u::Actor::kill(aid_t)` methods. - |br| `examples/s4u/actor-kill/s4u-actor-kill.cpp `_ + Actors can forcefully stop other actors. + + - |cpp| `examples/s4u/actor-kill/s4u-actor-kill.cpp `_ + :cpp:func:`void simgrid::s4u::Actor::kill(void)`, + :cpp:func:`void simgrid::s4u::Actor::kill_all()`, + :cpp:func:`simgrid::s4u::this_actor::exit`. + - |py| `examples/python/actor-kill/actor-kill.py `_ + :py:func:`simgrid.Actor.kill`, + :py:func:`simgrid.Actor.kill_all`, + :py:func:`simgrid.this_actor.exit`. - **Controling the actor life cycle from the XML:** You can specify a start time and a kill time in the deployment @@ -56,39 +73,48 @@ Starting and Stoping Actors - **Daemonize actors:** Some actors may be intended to simulate daemons that run in background. This example show how to transform a regular actor into a daemon that will be automatically killed once the simulation is over. - |br| `examples/s4u/actor-daemon/s4u-actor-daemon.cpp `_ + + - |cpp| `examples/s4u/actor-daemon/s4u-actor-daemon.cpp `_ + - |py| `examples/python/actor-daemon/actor-daemon.py `_ Inter-Actors Interactions ------------------------- - **Suspend and Resume actors:** - Actors can be suspended and resumed during their executions thanks - to :cpp:func:`simgrid::s4u::Actor::suspend()` and - :cpp:func:`simgrid::s4u::Actor::resume()`. - |br| `examples/s4u/actor-suspend/s4u-actor-suspend.cpp `_ + Actors can be suspended and resumed during their executions. + + - |cpp| `examples/s4u/actor-suspend/s4u-actor-suspend.cpp `_ + :cpp:func:`simgrid::s4u::this_actor::suspend()`, + :cpp:func:`simgrid::s4u::Actor::suspend()`, :cpp:func:`simgrid::s4u::Actor::resume()`, :cpp:func:`simgrid::s4u::Actor::is_suspended()`. + - |py| `examples/python/actor-suspend/actor-suspend.py `_ + :py:func:`simgrid.this_actor.suspend()`, + :py:func:`simgrid.Actor.suspend()`, :py:func:`simgrid.Actor.resume()`, :py:func:`simgrid.Actor.is_suspended()`. - **Migrating Actors:** Actors can move or be moved from a host to another very easily. - |br| |cpp| `examples/s4u/actor-migration/s4u-actor-migration.cpp `_ - :cpp:func:`simgrid::s4u::this_actor::migrate()` |cpp| - |br| |py| `examples/python/actor-migration/actor-migration.py `_ - :py:func:`simgrid.this_actor.migrate()` |py| + + - |cpp| `examples/s4u/actor-migrate/s4u-actor-migrate.cpp `_ + :cpp:func:`simgrid::s4u::this_actor::migrate()` + - |py| `examples/python/actor-migrate/actor-migrate.py `_ + :py:func:`simgrid.this_actor.migrate()` - **Waiting for the termination of an actor:** (joining on it) You can block the current actor until the end of another actor. - |br| |cpp| `examples/s4u/actor-join/s4u-actor-join.cpp `_ - :cpp:func:`simgrid::s4u::Actor::join()` |cpp| - |br| |py| `examples/python/actor-join/actor-join.py `_ - :cpp:func:`simgrid.Actor.join()` |py| + + - |cpp| `examples/s4u/actor-join/s4u-actor-join.cpp `_ + :cpp:func:`simgrid::s4u::Actor::join()` + - |py| `examples/python/actor-join/actor-join.py `_ + :py:func:`simgrid.Actor.join()` - **Yielding to other actors**. The ```yield()``` function interrupts the execution of the current actor, leaving a chance to the other actors that are ready to run - at this timestamp. - |br| |cpp| `examples/s4u/actor-yield/s4u-actor-yield.cpp `_ - :cpp:func:`simgrid::s4u::this_actor::yield()` |cpp| - |br| |py| `examples/python/actor-yield/actor-yield.py `_ - :py:func:`simgrid.this_actor.yield_()` |py| + at this timestamp. + + - |cpp| `examples/s4u/actor-yield/s4u-actor-yield.cpp `_ + :cpp:func:`simgrid::s4u::this_actor::yield()` + - |py| `examples/python/actor-yield/actor-yield.py `_ + :py:func:`simgrid.this_actor.yield_()` Traces Replay as a Workload --------------------------- @@ -159,8 +185,9 @@ Executions on the CPU the actor until a given amount of flops gets computed on its simulated host. Some executions can be given an higher priority so that they get more resources. - |br| |cpp| `examples/s4u/exec-basic/s4u-exec-basic.cpp `_ - |br| |py| `examples/python/exec-basic/exec-basic.py `_ + + - |cpp| `examples/s4u/exec-basic/s4u-exec-basic.cpp `_ + - |py| `examples/python/exec-basic/exec-basic.py `_ - **Asynchronous execution:** You can start asynchronous executions, just like you would fire @@ -254,6 +281,19 @@ Interacting with the Platform |br| `examples/s4u/platform-properties/s4u-platform-properties_d.xml `_ |br| `examples/platforms/prop.xml `_ + - **Specifying state profiles:** shows how to specify when the + resources must be turned off and on again, and how to react to such + failures in your code. + + |br| `examples/platforms/small_platform_with_failure.xml `_ + |br| The state profiles in `examples/platforms/profiles `_ + + - **Specifying speed profiles:** shows how to specify an external + load to resources, variating their peak speed over time. + + |br| `examples/platforms/small_platform_profile.xml `_ + |br| The speed, bandwidth and latency profiles in `examples/platforms/profiles `_ + ================= Energy Simulation =================