X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/38e8d3ddd72972dcf7e3bd8c0218d52b25bdb5dd..447a95c2dd42863dc11b210dd1e1dd857017a954:/examples/README.rst diff --git a/examples/README.rst b/examples/README.rst index 8b453937f6..eff074bb03 100644 --- a/examples/README.rst +++ b/examples/README.rst @@ -32,6 +32,8 @@ Actors: the Active Entities Starting and Stopping Actors ---------------------------- +.. _s4u_ex_actors_create: + Creating actors ^^^^^^^^^^^^^^^ @@ -84,8 +86,8 @@ actors. This example shows how to attach a callback to: - the end of a specific actor: :cpp:func:`simgrid::s4u::Actor::on_exit()` - - the end of any actor: :cpp:member:`simgrid::s4u::Actor::on_termination()` - - the destruction of any actor: :cpp:member:`simgrid::s4u::Actor::on_destruction()` + - the end of any actor: :cpp:func:`simgrid::s4u::Actor::on_termination_cb` + - the destruction of any actor: :cpp:func:`simgrid::s4u::Actor::on_destruction_cb` .. example-tab:: examples/c/actor-exiting/actor-exiting.c @@ -106,7 +108,7 @@ Actors can forcefully stop other actors. .. example-tab:: examples/python/actor-kill/actor-kill.py - See also :py:func:`simgrid.Actor.kill`, :py:func:`simgrid.Actor.kill_all`, :py:func:`simgrid.this_actor.exit`, + See also :py:func:`simgrid.Actor.kill()`, :py:func:`simgrid.Actor.kill_all()`, :py:func:`simgrid.this_actor.exit()`, :py:func:`simgrid.this_actor.on_exit`. .. example-tab:: examples/c/actor-kill/actor-kill.c @@ -214,7 +216,7 @@ Actors can move or be moved from a host to another very easily. It amounts to se .. example-tab:: examples/python/actor-migrate/actor-migrate.py - See also :py:func:`simgrid.this_actor.set_host()` and :py:func:`simgrid.Actor.set_host()`. + See also :py:attr:`simgrid.Actor.host`. .. example-tab:: examples/c/actor-migrate/actor-migrate.c @@ -317,6 +319,8 @@ the simulators (as detailed in Section :ref:`options`). .. example-tab:: examples/cpp/comm-pingpong/s4u-comm-pingpong.cpp + .. example-tab:: examples/python/comm-pingpong/comm-pingpong.py + .. example-tab:: examples/c/comm-pingpong/comm-pingpong.c @@ -351,6 +355,10 @@ This example is very similar to the previous one, simply adding how to declare t See also :cpp:func:`simgrid::s4u::Activity::wait_until()` and :cpp:func:`simgrid::s4u::Comm::wait_for()`. + .. example-tab:: examples/python/comm-waituntil/comm-waituntil.py + + See also :py:func:`simgrid.Comm.wait_until()` + Suspending communications ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -365,6 +373,11 @@ The ``suspend()`` and ``resume()`` functions block the progression of a given co :cpp:func:`simgrid::s4u::Activity::resume()` and :cpp:func:`simgrid::s4u::Activity::is_suspended()`. + .. example-tab:: examples/python/comm-suspend/comm-suspend.py + + See also :py:func:`simgrid.Comm::suspend()` and + :py:func:`simgrid.Comm.resume()`. + Waiting for all communications in a set ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -387,7 +400,7 @@ The ``wait_all()`` function is useful when you want to block until all activitie Waiting for the first completed communication in a set ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The ``wait_any()`` function is useful when you want to block until one activity of the set completes, no matter which terminates first. +The ``wait_any()`` blocks until one activity of the set completes, no matter which terminates first. .. tabs:: @@ -403,6 +416,21 @@ The ``wait_any()`` function is useful when you want to block until one activity See also :cpp:func:`sg_comm_wait_any`. +Testing whether at least one communication completed +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ``test_any()`` returns whether at least one activity of the set has completed, or -1. + +.. tabs:: + + .. example-tab:: examples/cpp/comm-testany/s4u-comm-testany.cpp + + See also :cpp:func:`simgrid::s4u::Comm::test_any()`. + + .. example-tab:: examples/python/comm-testany/comm-testany.py + + See also :py:func:`simgrid.Comm.test_any()`. + .. _s4u_ex_execution: Executions on the CPU @@ -453,12 +481,12 @@ You can start asynchronous executions, just like you would fire background threa .. example-tab:: examples/python/exec-async/exec-async.py See also :py:func:`simgrid.this_actor.exec_init()`, - :py:func:`simgrid.Activity.start()`, - :py:func:`simgrid.Activity.wait()`, - :py:func:`simgrid.Activity.get_remaining()`, - :py:func:`simgrid.Exec.get_remaining_ratio()`, + :py:func:`simgrid.Exec.start()`, + :py:func:`simgrid.Exec.wait()`, + :py:attr:`simgrid.Exec.remaining`, + :py:attr:`simgrid.Exec.remaining_ratio`, :py:func:`simgrid.this_actor.exec_async()` and - :py:func:`simgrid.Activity.cancel()`. + :py:func:`simgrid.Exec.cancel()`. .. example-tab:: examples/c/exec-async/exec-async.c @@ -483,12 +511,14 @@ You can start executions on remote hosts, or even change the host on which they .. example-tab:: examples/python/exec-remote/exec-remote.py - See also :py:func:`simgrid.Exec.set_host()`. + See also :py:attr:`simgrid.Exec.host`. .. example-tab:: examples/c/exec-remote/exec-remote.c See also :cpp:func:`sg_exec_set_host()`. +.. _s4u_ex_ptasks: + Parallel executions ^^^^^^^^^^^^^^^^^^^ @@ -510,6 +540,10 @@ This allows simulating malleable tasks. See also :cpp:func:`simgrid::s4u::this_actor::parallel_execute()`. + .. example-tab:: examples/python/exec-ptask/exec-ptask.py + + See also :ref:`simgrid.this_actor.parallel_execute()` + DVFS and pstates ^^^^^^^^^^^^^^^^ @@ -528,7 +562,7 @@ of a host can then be accessed and changed from the program. .. example-tab:: examples/python/exec-dvfs/exec-dvfs.py - See also :py:func:`Host.get_pstate_speed` and :py:func:`Host.set_pstate`. + See also :py:func:`simgrid.Host.pstate_speed()` and :py:attr:`simgrid.Host.pstate`. .. example-tab:: examples/platforms/energy_platform.xml @@ -596,6 +630,8 @@ Shows how to use :cpp:type:`simgrid::s4u::Barrier` synchronization objects. .. example-tab:: examples/cpp/synchro-barrier/s4u-synchro-barrier.cpp + .. example-tab:: examples/python/synchro-barrier/synchro-barrier.py + Condition variable: basic usage ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -623,6 +659,8 @@ Shows how to use :cpp:type:`simgrid::s4u::Mutex` synchronization objects. .. example-tab:: examples/cpp/synchro-mutex/s4u-synchro-mutex.cpp + .. example-tab:: examples/python/synchro-mutex/synchro-mutex.py + Semaphore ^^^^^^^^^ @@ -632,6 +670,8 @@ Shows how to use :cpp:type:`simgrid::s4u::Semaphore` synchronization objects. .. example-tab:: examples/cpp/synchro-semaphore/s4u-synchro-semaphore.cpp + .. example-tab:: examples/python/synchro-semaphore/synchro-semaphore.py + .. example-tab:: examples/c/synchro-semaphore/synchro-semaphore.c ============================= @@ -703,6 +743,8 @@ failures in your code. See also :ref:`howto_churn`. .. example-tab:: examples/c/platform-failures/platform-failures.c + .. example-tab:: examples/python/platform-failures/platform-failures.py + .. group-tab:: XML .. showfile:: examples/platforms/small_platform_failures.xml @@ -721,6 +763,8 @@ Shows how to specify an external load to resources, variating their peak speed o .. example-tab:: examples/cpp/platform-profile/s4u-platform-profile.cpp + .. example-tab:: examples/python/platform-profile/platform-profile.py + .. group-tab:: XML .. showfile:: examples/platforms/small_platform_profile.xml @@ -770,6 +814,17 @@ This example shows how to retrieve the amount of energy consumed by the CPU duri .. example-tab:: examples/c/energy-exec/energy-exec.c +Virtual machines consumption +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This example is very similar to the previous one, adding VMs to the picture. + +.. tabs:: + + .. example-tab:: examples/cpp/energy-vm/s4u-energy-vm.cpp + + .. example-tab:: examples/c/energy-vm/energy-vm.c + Wired network energy consumption ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -918,7 +973,7 @@ Shows how to implement a classical communication pattern, where a token is excha Master Workers ^^^^^^^^^^^^^^ -Another good old example, where one Master acto$ has a bunch of tasks to dispatch to a set of several Worker actors. +Another good old example, where one Master actor has a bunch of tasks to dispatch to a set of several Worker actors. This example is used in the :ref:`SimGrid tutorial `. .. tabs:: @@ -942,6 +997,8 @@ This example is used in the :ref:`SimGrid tutorial `. .. showfile:: examples/c/app-masterworker/app-masterworker.c :language: cpp + .. example-tab:: examples/python/app-masterworkers/app-masterworkers.py + Data diffusion -------------- @@ -1050,6 +1107,15 @@ Another well-known DHT protocol. .. showfile:: examples/c/dht-kademlia/node.c :language: cpp +Pastry +^^^^^^ + +Yet another well-known DHT protocol. + +.. tabs:: + + .. example-tab:: examples/c/dht-pastry/dht-pastry.c + .. _s4u_ex_clouds: Simulating Clouds @@ -1132,6 +1198,8 @@ the first level is used. .. showfile:: examples/platforms/wifi.xml :language: xml + + =============== Plugin Examples =============== @@ -1170,7 +1238,7 @@ The model-checker can be used to exhaustively search for issues in the tested ap mode is rather experimental in SimGrid (as of v3.25). We are working on it :) Failing assert -^^^^^^^^^^^^^^ +-------------- In this example, two actors send some data to a central server, which asserts that the messages are always received in the same order. This is wrong, and the model-checker correctly finds a counter-example to that assertion.