Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
convert cloud-migration
[simgrid.git] / examples / README.rst
index 7fe1a36..cf357fa 100644 (file)
@@ -54,6 +54,13 @@ Starting and Stoping Actors
           - Directly with :py:func:`simgrid.Actor.create()`
           - From XML with :py:func:`simgrid.Engine.register_actor()` and then :py:func:`simgrid.Engine.load_deployment()`
              
+       .. example-tab:: examples/c/actor-create/actor-create.c
+       
+          You create actors either:
+            
+          - Directly with :cpp:func:`sg_actor_create()` followed by :cpp:func:`sg_actor_start`.
+          - From XML with :cpp:func:`simgrid_register_function` and then :cpp:func:`simgrid_load_deployment`.
+             
        .. example-tab:: examples/python/actor-create/actor-create_d.xml
        
           The following file is used in both C++ and Python.
@@ -75,19 +82,29 @@ Starting and Stoping Actors
           - the end of any actor: :cpp:member:`simgrid::s4u::Actor::on_termination()`
           - the destruction of any actor: :cpp:member:`simgrid::s4u::Actor::on_destruction()`
 
+       .. example-tab:: examples/c/actor-exiting/actor-exiting.c
+
+          This example shows how to attach a callback to the end of a specific actor with 
+          :cpp:func:`sg_actor_on_exit()`.
+
   - **Kill actors:**
     Actors can forcefully stop other actors.
-    
+
     .. tabs::
-    
+
        .. example-tab:: examples/s4u/actor-kill/s4u-actor-kill.cpp
-       
+
           See also :cpp:func:`void simgrid::s4u::Actor::kill(void)`, :cpp:func:`void simgrid::s4u::Actor::kill_all()`,
-          :cpp:func:`simgrid::s4u::this_actor::exit`.
+          :cpp:func:`simgrid::s4u::this_actor::exit`, :cpp:func:`simgrid::s4u::this_actor::on_exit`.
 
        .. 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
+
+          See also :cpp:func:`sg_actor_kill`, :cpp:func:`sg_actor_kill_all`, :cpp:func:`sg_actor_exit`, :cpp:func:`sg_actor_on_exit`.
 
   - **Controling the actor life cycle from the XML:**
     You can specify a start time and a kill time in the deployment file.
@@ -116,6 +133,10 @@ Starting and Stoping Actors
 
           See also :py:func:`simgrid.Actor.daemonize()` and :py:func:`simgrid.Actor.is_daemon()`.
 
+       .. example-tab:: examples/c/actor-daemon/actor-daemon.c
+
+          See also :cpp:func:`sg_actor_daemonize` and :cpp:func:`sg_actor_is_daemon`.
+
 Inter-Actors Interactions
 -------------------------
 
@@ -131,27 +152,36 @@ synchronization objects <s4u_ex_IPC>`.
        .. example-tab:: examples/s4u/actor-suspend/s4u-actor-suspend.cpp
 
           See also :cpp:func:`simgrid::s4u::this_actor::suspend()`,
-          :cpp:func:`simgrid::s4u::Actor::suspend()`, :cpp:func:`simgrid::s4u::Actor::resume()` and
+          :cpp:func:`simgrid::s4u::Actor::suspend()`, :cpp:func:`simgrid::s4u::Actor::resume()`, and
           :cpp:func:`simgrid::s4u::Actor::is_suspended()`.
 
        .. example-tab:: examples/python/actor-suspend/actor-suspend.py
 
           See also :py:func:`simgrid.this_actor.suspend()`,
-          :py:func:`simgrid.Actor.suspend()`, :py:func:`simgrid.Actor.resume()` and
+          :py:func:`simgrid.Actor.suspend()`, :py:func:`simgrid.Actor.resume()`, and
           :py:func:`simgrid.Actor.is_suspended()`.
 
+       .. example-tab:: examples/c/actor-suspend/actor-suspend.c
+
+          See also :cpp:func:`sg_actor_suspend()`, :cpp:func:`sg_actor_resume()`, and 
+          :cpp:func:`sg_actor_is_suspended()`.
+
   - **Migrating Actors:**
-    Actors can move or be moved from a host to another very easily.
+    Actors can move or be moved from a host to another very easily. It amount to setting them on a new host.
 
     .. tabs::
 
        .. example-tab:: examples/s4u/actor-migrate/s4u-actor-migrate.cpp
 
-          See also :cpp:func:`simgrid::s4u::this_actor::migrate()` and :cpp:func:`simgrid::s4u::Actor::migrate()`.
+          See also :cpp:func:`simgrid::s4u::this_actor::set_host()` and :cpp:func:`simgrid::s4u::Actor::set_host()`.
 
        .. example-tab:: examples/python/actor-migrate/actor-migrate.py
 
-          See also :py:func:`simgrid.this_actor.migrate()` and :py:func:`simgrid.Actor.migrate()`.
+          See also :py:func:`simgrid.this_actor.set_host()` and :py:func:`simgrid.Actor.set_host()`.
+
+       .. example-tab:: examples/c/actor-migrate/actor-migrate.c
+
+          See also :cpp:func:`sg_actor_set_host()`.
 
   - **Waiting for the termination of an actor:** (joining on it)
     You can block the current actor until the end of another actor.
@@ -166,6 +196,10 @@ synchronization objects <s4u_ex_IPC>`.
 
           See also :py:func:`simgrid.Actor.join()`.
 
+       .. example-tab:: examples/c/actor-join/actor-join.c
+
+          See also :cpp:func:`sg_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
@@ -181,6 +215,10 @@ synchronization objects <s4u_ex_IPC>`.
 
           See also :py:func:`simgrid.this_actor.yield_()`.
 
+       .. example-tab:: examples/c/actor-yield/actor-yield.c
+
+          See also :cpp:func:`sg_actor_yield()`.
+
 Traces Replay as a Workload
 ---------------------------
 
@@ -250,6 +288,10 @@ Communications on the Network
 
          See also :cpp:func:`simgrid::s4u::Comm::wait_all()`.
 
+      .. example-tab:: examples/c/async-waitall/async-waitall.c
+
+         See also :cpp:func:`sg_comm_wait_all()`.
+
       .. example-tab:: examples/python/async-waitall/async-waitall.py
 
          See also :py:func:`simgrid.Comm.wait_all()`.
@@ -268,6 +310,10 @@ Communications on the Network
       .. example-tab:: examples/python/async-waitany/async-waitany.py
 
          See also :py:func:`simgrid.Comm.wait_any()`.
+        
+      .. example-tab:: examples/c/async-waitany/async-waitany.c
+
+         See also :cpp:func:`sg_comm_wait_any`.
      
 .. _s4u_ex_execution:
 
@@ -354,6 +400,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`.
@@ -377,6 +427,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.
@@ -402,27 +454,36 @@ 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
 ---------------------------------
 
- - **Mutex:**
-   Shows how to use simgrid::s4u::Mutex synchronization objects.
+ - **Barrier:**
+   Shows how to use :cpp:type:`simgrid::s4u::Barrier` synchronization objects.
 
    .. tabs::
 
-      .. example-tab:: examples/s4u/synchro-mutex/s4u-synchro-mutex.cpp
+      .. example-tab:: examples/s4u/synchro-barrier/s4u-synchro-barrier.cpp
 
- - **Barrier:**
-   Shows how to use simgrid::s4u::Barrier synchronization objects.
+ - **Condition variable:**
+   Shows how to use :cpp:type:`simgrid::s4u::ConditionVariable` synchronization objects.
 
    .. tabs::
 
-      .. example-tab:: examples/s4u/synchro-barrier/s4u-synchro-barrier.cpp
+      .. example-tab:: examples/s4u/synchro-condition-variable/s4u-synchro-condition-variable.cpp
+
+ - **Mutex:**
+   Shows how to use :cpp:type:`simgrid::s4u::Mutex` synchronization objects.
+
+   .. tabs::
+
+      .. example-tab:: examples/s4u/synchro-mutex/s4u-synchro-mutex.cpp
 
  - **Semaphore:**
-   Shows how to use simgrid::s4u::Semaphore synchronization objects.
+   Shows how to use :cpp:type:`simgrid::s4u::Semaphore` synchronization objects.
 
    .. tabs::
 
@@ -534,6 +595,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.
@@ -588,6 +651,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.
@@ -596,6 +661,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.
@@ -642,6 +709,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)
 -----------------------------
 
@@ -690,6 +768,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.
 
@@ -697,6 +777,8 @@ Simulating Clouds
 
        .. example-tab:: examples/s4u/cloud-migration/s4u-cloud-migration.cpp
 
+       .. example-tab:: examples/c/cloud-migration/cloud-migration.c
+
 =======================
 Model-Checking Examples
 =======================