page. Most of them only demonstrate one single feature, with some
larger examplars listed below.
-Each of these examples can be found in a subdirectory under
-examples/s4u in the archive. It contains the source code (also listed
+The C++ examples can be found under examples/s4u while python examples
+are in examples/python. Each such directory contains the source code (also listed
from this page), and the so-called tesh file containing how to call
the binary obtained by compiling this example and also the expected
output. Tesh files are used to turn each of our examples into an
- **Creating actors:**
Most actors are started from the deployment XML file, but there is other methods.
This example show them all.
- |br| `examples/s4u/actor-create/s4u-actor-create.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/actor-create/s4u-actor-create.cpp>`_
+ |br| |cpp| `examples/s4u/actor-create/s4u-actor-create.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/actor-create/s4u-actor-create.cpp>`_
+ |br| |py| `examples/python/actor-create/actor-create.py <https://framagit.org/simgrid/simgrid/tree/master/examples/python/actor-create/actor-create.py>`_
- **Kill actors:**
Actors can forcefully stop other actors with the
actor until the end of the receiving actor.
|br| `examples/s4u/actor-join/s4u-actor-join.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/actor-join/s4u-actor-join.cpp>`_
- - **Yielding to other actor**.
- The :cpp:func:`simgrid::s4u::this_actor::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| `examples/s4u/actor-yield/s4u-actor-yield.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/actor-yield/s4u-actor-yield.cpp>`_
+ - **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 <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/actor-yield/s4u-actor-yield.cpp>`_
+ :cpp:func:`simgrid::s4u::this_actor::yield()`
+ |br| |py| `examples/python/actor-yield/actor-yield.py <https://framagit.org/simgrid/simgrid/tree/master/examples/python/actor-yield/actor-yield.py>`_
+ :py:func:`simgrid.this_actor.yield_()`
Traces Replay as a Workload
---------------------------
.. todo:: add the `ready` example here
+.. _s4u_ex_execution:
+
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| `examples/s4u/exec-basic/s4u-exec-basic.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/exec-basic/s4u-exec-basic.cpp>`_
+ |br| |cpp| `examples/s4u/exec-basic/s4u-exec-basic.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/exec-basic/s4u-exec-basic.cpp>`_
+ |br| |py| `examples/python/exec-basic/exec-basic.py <https://framagit.org/simgrid/simgrid/tree/master/examples/python/exec-basic/exec-basic.py>`_
- **Asynchronous execution:**
You can start asynchronous executions, just like you would fire
|br| `examples/s4u/exec-dvfs/s4u-exec-dvfs.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/exec-dvfs/s4u-exec-dvfs.cpp>`_
|br| `examples/platforms/energy_platform.xml <https://framagit.org/simgrid/simgrid/tree/master/examples/platforms/energy_platform.xml>`_
- - **Parallel tasks:**
+ - **Parallel executions:**
These objects are convenient abstractions of parallel
- computational kernels that span over several machines.
+ computational kernels that span over several machines, such as a
+ PDGEM and the other ScaLAPACK routines.
|br| `examples/s4u/exec-ptask/s4u-exec-ptask.cpp <https://framagit.org/simgrid/simgrid/tree/master/examples/s4u/exec-ptask/s4u-exec-ptask.cpp>`_
I/O on Disks and Files
.. |br| raw:: html
<br />
+
+.. |cpp| image:: /img/lang_cpp.png
+ :align: middle
+ :width: 12
+
+.. |py| image:: /img/lang_python.png
+ :align: middle
+ :width: 12