X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/770734ce35e8192d32599abb713476b17bf87f90..839e2fb8eb9378e4603161aef6caf6169d4bd788:/examples/README.rst diff --git a/examples/README.rst b/examples/README.rst index 551ae7f195..0420a65377 100644 --- a/examples/README.rst +++ b/examples/README.rst @@ -119,6 +119,14 @@ Starting and Stoping Actors This demonstrates the ``start_time`` and ``kill_time`` attribute of the :ref:`pf_tag_actor` tag. + .. example-tab:: examples/python/actor-lifetime/actor-lifetime.py + + This file is not really interesting: the important matter is in the XML file. + + .. example-tab:: examples/c/actor-lifetime/actor-lifetime.c + + This file is not really interesting: the important matter is in the XML file. + - **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. @@ -137,6 +145,17 @@ Starting and Stoping Actors See also :cpp:func:`sg_actor_daemonize` and :cpp:func:`sg_actor_is_daemon`. + - **Specify the stack size to use** + The stack size can be specified by default on the command line, + globally by changing the configuration with :cpp:func:`simgrid::s4u::Engine::set_config(std::string)`, + or for a specific actor using :cpp:func:`simgrid::s4u::Actor::set_stacksize` before its start. + + .. tabs:: + + .. example-tab:: examples/s4u/actor-stacksize/s4u-actor-stacksize.cpp + + .. example-tab:: examples/c/actor-stacksize/actor-stacksize.c + Inter-Actors Interactions ------------------------- @@ -278,6 +297,10 @@ Communications on the Network See also :py:func:`simgrid.Mailbox.put_async()` and :py:func:`simgrid.Comm.wait()`. + .. example-tab:: examples/c/async-wait/async-wait.c + + See also :cpp:func:`sg_mailbox_put_async()` and :cpp:func:`sg_comm__wait()`. + - **Waiting for all communications in a set:** The ``wait_all()`` function is useful when you want to block until all activities in a given set have completed. @@ -292,6 +315,10 @@ Communications on the Network See also :py:func:`simgrid.Comm.wait_all()`. + .. example-tab:: examples/c/async-waitall/async-waitall.c + + See also :cpp:func:`sg_comm_wait_all()`. + - **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 @@ -334,6 +361,11 @@ Executions on the CPU See also :py:func:`simgrid.this_actor.execute()`. + .. example-tab:: examples/c/exec-basic/exec-basic.c + + See also :cpp:func:`void sg_actor_execute(double)` + and :cpp:func:`void sg_actor_execute_with_priority(double, double)`. + - **Asynchronous execution:** You can start asynchronous executions, just like you would fire background threads. @@ -359,7 +391,17 @@ Executions on the CPU :py:func:`simgrid.Exec.get_remaining_ratio()`, :py:func:`simgrid.this_actor.exec_async()` and :py:func:`simgrid.Activity.cancel()`. - + + .. example-tab:: examples/c/exec-async/exec-async.c + + See also :cpp:func:`sg_actor_exec_init()`, + :cpp:func:`sg_exec_start()`, + :cpp:func:`sg_exec_wait()`, + :cpp:func:`sg_exec_get_remaining()`, + :cpp:func:`sg_exec_get_remaining_ratio()`, + :cpp:func:`sg_actor_exec_async()` and + :cpp:func:`sg_exec_cancel()`, + - **Remote execution:** You can start executions on remote hosts, or even change the host on which they occur during their execution. @@ -374,6 +416,10 @@ Executions on the CPU See also :py:func:`simgrid.Exec.set_host()`. + .. example-tab:: examples/c/exec-remote/exec-remote.c + + See also :cpp:func:`sg_exec_set_host()`. + - **Parallel executions:** These objects are convenient abstractions of parallel computational kernels that span over several machines, such as a @@ -396,6 +442,10 @@ Executions on the CPU See also :cpp:func:`simgrid::s4u::Host::get_pstate_speed` and :cpp:func:`simgrid::s4u::Host::set_pstate`. + .. example-tab:: examples/c/exec-dvfs/exec-dvfs.c + + See also :cpp:func:`sg_host_get_pstate_speed` and :cpp:func:`sg_host_set_pstate`. + .. example-tab:: examples/python/exec-dvfs/exec-dvfs.py See also :py:func:`Host.get_pstate_speed` and :py:func:`Host.set_pstate`. @@ -419,6 +469,8 @@ write actions on the disk resources. .. example-tab:: examples/s4u/io-disk-raw/s4u-io-disk-raw.cpp + .. example-tab:: examples/c/io-disk-raw/io-disk-raw.c + .. example-tab:: examples/platforms/hosts_with_disks.xml This shows how to declare disks in XML. @@ -444,6 +496,8 @@ result in short reads and short write, as in reality. .. example-tab:: examples/s4u/io-file-remote/s4u-io-file-remote.cpp + .. example-tab:: examples/c/io-file-remote/io-file-remote.c + .. _s4u_ex_IPC: Classical synchronization objects @@ -497,6 +551,13 @@ Interacting with the Platform - :cpp:func:`simgrid::s4u::Link::get_property()` and :cpp:func:`simgrid::s4u::Link::set_property()` - :cpp:func:`simgrid::s4u::NetZone::get_property()` and :cpp:func:`simgrid::s4u::NetZone::set_property()` + .. example-tab:: examples/c/platform-properties/platform-properties.c + + - :cpp:func:`sg_actor_get_property()` and :cpp:func:`sg_actor_set_property()` + - :cpp:func:`sg_host_get_property()` and :cpp:func:sg_host_set_property()` + - :cpp:func:`sg_link_get_property()` and :cpp:func:`sg_link_set_property()` + - :cpp:func:`sg_link_get_property()` and :cpp:func:`sg_link_set_property()` + .. group-tab:: XML **Deployment file:** @@ -532,6 +593,8 @@ Interacting with the Platform .. example-tab:: examples/s4u/platform-failures/s4u-platform-failures.cpp + .. example-tab:: examples/c/platform-failures/platform-failures.c + .. group-tab:: XML .. showfile:: examples/platforms/small_platform_failures.xml @@ -583,6 +646,8 @@ Energy Simulation .. example-tab:: examples/s4u/energy-exec/s4u-energy-exec.cpp + .. example-tab:: examples/c/energy-exec/energy-exec.c + - **Consumption due to the network:** This example shows how to retrieve and display the energy consumed by the network during communications. @@ -637,6 +702,8 @@ than the previous examples. .. example-tab:: examples/s4u/app-pingpong/s4u-app-pingpong.cpp + .. example-tab:: examples/c/app-pingpong/app-pingpong.c + - **Token ring:** Shows how to implement a classical communication pattern, where a token is exchanged along a ring to reach every participant. @@ -645,6 +712,8 @@ than the previous examples. .. example-tab:: examples/s4u/app-token-ring/s4u-app-token-ring.cpp + .. example-tab:: examples/c/app-token-ring/app-token-ring.c + - **Master Workers:** Another good old example, where one Master process has a bunch of task to dispatch to a set of several Worker processes. @@ -664,6 +733,11 @@ than the previous examples. .. showfile:: examples/s4u/app-masterworkers/s4u-app-masterworkers-fun.cpp :language: cpp + + .. group-tab:: C + + .. showfile:: examples/c/app-masterworker/app-masterworker.c + :language: cpp Data diffusion -------------- @@ -684,6 +758,17 @@ Data diffusion .. showfile:: examples/s4u/app-bittorrent/s4u-tracker.cpp :language: cpp + .. group-tab:: C + + .. showfile:: examples/c/app-bittorrent/app-bittorrent.c + :language: cpp + + .. showfile:: examples/c/app-bittorrent/bittorrent-peer.c + :language: cpp + + .. showfile:: examples/c/app-bittorrent/tracker.c + :language: cpp + - **Chained Send:** Data broadcast over a ring of processes. @@ -691,6 +776,17 @@ Data diffusion .. example-tab:: examples/s4u/app-chainsend/s4u-app-chainsend.cpp + .. group-tab:: C + + .. showfile:: examples/c/app-chainsend/chainsend.c + :language: c + + .. showfile:: examples/c/app-chainsend/broadcaster.c + :language: c + + .. showfile:: examples/c/app-chainsend/peer.c + :language: c + Distributed Hash Tables (DHT) ----------------------------- @@ -726,6 +822,23 @@ Distributed Hash Tables (DHT) .. showfile:: examples/s4u/dht-kademlia/node.cpp :language: cpp + .. group-tab:: C + + .. showfile:: examples/c/dht-kademlia/dht-kademlia.c + :language: cpp + + .. showfile:: examples/c/dht-kademlia/routing_table.c + :language: cpp + + .. showfile:: examples/c/dht-kademlia/answer.c + :language: cpp + + .. showfile:: examples/c/dht-kademlia/message.c + :language: cpp + + .. showfile:: examples/c/dht-kademlia/node.c + :language: cpp + .. _s4u_ex_clouds: Simulating Clouds @@ -739,6 +852,8 @@ Simulating Clouds .. example-tab:: examples/s4u/cloud-simple/s4u-cloud-simple.cpp + .. example-tab:: examples/c/cloud-simple/cloud-simple.c + - **Migrating VMs** This example shows how to migrate VMs between PMs. @@ -746,6 +861,29 @@ Simulating Clouds .. example-tab:: examples/s4u/cloud-migration/s4u-cloud-migration.cpp + .. example-tab:: examples/c/cloud-migration/cloud-migration.c + +======================= +Model-Related Examples +======================= + + - **ns-3 as a SimGrid Network Model** + This simple ping-pong example demonstrates how to use the bindings to the Network + Simulator. The most interesting is probably not the C++ files since + they are unchanged from the other simulations, but the associated files, + such as the platform file to see how to declare a platform to be used + with the ns-3 bindings of SimGrid and the tesh file to see how to actually + start a simulation in these settings. + + .. example-tab:: examples/s4u/network-ns3/s4u-network-ns3.cpp + + .. group-tab:: XML + + **Platform files:** + + .. showfile:: examples/platforms/small_platform_one_link_routes.xml + :language: xml + ======================= Model-Checking Examples =======================