Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / doc / module-msg.doc
index cd7ae3a..ab70142 100644 (file)
       the documentation provided in the relevant packages.
 
   \section MSG_funct Offered functionnalities
+   - \ref msg_simulation
    - \ref m_process_management
-   - \ref m_datatypes_management
    - \ref m_host_management
    - \ref m_task_management
-   - \ref m_file_management
-   - \ref msg_actions_functions
-   - \ref msg_gos_functions
+   - \ref msg_file_management
+   - \ref msg_task_usage
+   - \ref msg_VMs
+   - \ref msg_trace_driven
    - \ref msg_deprecated_functions
-   - \ref msg_simulation
+
 
   Also make sure to visit the page @ref MSG_examples.
 */
@@ -30,6 +31,8 @@
 @defgroup MSG_examples MSG Examples
 @ingroup MSG_API
  
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Examples" --> @endhtmlonly
+
 MSG comes with an extensive set of examples. It is sometimes difficult
 to find the one you need. This list aims at helping you finding the
 example from which you can learn what you want to.
@@ -56,15 +59,7 @@ details).
  -# Cleanup the library with #MSG_clean before ending your program
     (optional).
 
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation control" --> @endhtmlonly
-*/
-
-
-/** @defgroup m_datatypes_management MSG Data Types 
-    @ingroup MSG_API
-    @brief This section describes the different datatypes provided by MSG.
-    
-    \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Data types" --> \endhtmlonly
+@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation Control" --> @endhtmlonly
 */
 
 /** @defgroup m_process_management Process Management Functions 
@@ -81,26 +76,67 @@ details).
 /** @defgroup m_task_management Task Management Functions
  *  @ingroup MSG_API
  *  @brief This section describes the task structure of MSG
- *         (#m_task_t) and the functions for managing it.
+ *         (#m_task_t) and the functions for managing it. See
+ *         \ref msg_task_usage to see how to put the tasks in action.
+ *
+ * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Tasks" --> \endhtmlonly
  */
  
- /** @defgroup m_file_management File Management Functions
+/** @defgroup msg_task_usage Task Actions
+ *  @ingroup MSG_API
+ *  @brief This section describes the functions that can be used
+ *         by a process to execute, communicate or otherwise handle some task.
+ */
+
+/** @defgroup msg_VMs VMs
+ *  @ingroup MSG_API
+ *  @brief This section describes the interface created to mimick IaaS clouds.
+ *
+ *  With it, you can create virtual machines to put your processes
+ *  into, and interact directly with the VMs to manage groups of
+ *  processes. 
+ *
+ *  This interface is highly experimental at this point. Testing is
+ *  welcomed, but do not expect too much of it right now. Even the
+ *  interfaces may be changed in future releases of SimGrid (although
+ *  things are expected to stabilize nicely before SimGrid v3.8).
+ *  There is no guaranty on the rest of SimGrid, and there is less
+ *  than that on this part.
+ *
+ */
+
+/** @defgroup msg_file_management File Management Functions
  *  @ingroup MSG_API
  *  @brief This section describes the file structure of MSG
- *         (#m_file_t) and the functions for managing it. It
+ *         (#msg_file_t) and the functions for managing it. It
  *   is based on POSIX functions.
  */ 
+
+
+/** 
+@defgroup msg_trace_driven Trace-driven simulations
+@ingroup MSG_API
+@brief This section describes the functions allowing to build trace-driven simulations.
+
+\htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Trace-Driven" --> \endhtmlonly
+
+This is very handy when you want to test an algorithm or protocol that
+does nothing unless it receives some events from outside. For example,
+a P2P protocol reacts to requests from the user, but does nothing if
+there is no such event. 
+      
+In such situations, SimGrid allows to write your protocol in your C
+file, and the events to react to in a separate text file. Declare a
+function handling each of the events that you want to accept in your
+trace files, register them using #MSG_action_register in your main,
+and then use #MSG_action_trace_run to launch the simulation. You can
+either have one trace file containing all your events, or a file per
+simulated process. 
+        
+Check the examples in <b>examples/msg/actions/actions.c</b> for details.
  
-/** @defgroup msg_actions_functions Managing actions
- *  @ingroup MSG_API
- *  @brief This section describes functions for managing actions.
  */ 
 
-/** @defgroup msg_gos_functions MSG Operating System Functions
- *  @ingroup MSG_API
- *  @brief This section describes the functions that can be used
- *         by a process for handling some task.
- */
  
  
 /**
@@ -173,7 +209,7 @@ an external description of the deployment.
 
 <hr> 
 
-\dontinclude msg/icomms/peer.c
+\don'tinclude msg/icomms/peer.c
 
 \section MSG_ext_icomms_code Code of the application
 
@@ -236,7 +272,7 @@ This initializes MSG, runs a simulation, and free all data-structures created by
 
 \until end_of_main
 
-\dontinclude msg/icomms/peer2.c
+\don'tinclude msg/icomms/peer2.c
 
 \section MSG_ext_icomms_fct_Waitall Waitall function for sender
 
@@ -251,13 +287,13 @@ The MSG_comm_waitany() function return the place of the first message send or re
 
 \subsection MSG_ext_icomms_fct_Waitany_sender From a sender
 We can use this function to wait all sent messages.
-\dontinclude msg/icomms/peer3.c
+\don'tinclude msg/icomms/peer3.c
 \skipline Sender function
 \until end_of_sender
 
 \subsection MSG_ext_icomms_fct_Waitany_receiver From a receiver
 We can also wait for the arrival of all messages.
-\dontinclude msg/icomms/peer3.c
+\don'tinclude msg/icomms/peer3.c
 \skipline Receiver function
 \until end_of_receiver
 
@@ -285,7 +321,7 @@ and an external description of the deployment.
  
 <hr> 
 
-\dontinclude msg/masterslave/masterslave_forwarder.c
+\don'tinclude msg/masterslave/masterslave_forwarder.c
 
 \section MSG_ext_ms_code Code of the application
 
@@ -383,7 +419,7 @@ This initializes MSG, runs a simulation, and free all data-structures created by
        - \ref MSG_ext_ms_platform
        
        
-      \dontinclude lua/masterslave/master_slave.lua
+      \don'tinclude lua/masterslave/master_slave.lua
       
       \section MSG_ext_ms_code_lua Code of the application
       
@@ -436,7 +472,7 @@ This initializes MSG, runs a simulation, and free all data-structures created by
        - \ref MSG_ext_ms_core_lua
        
        
-      \dontinclude lua/console/master_slave_bypass.lua
+      \don'tinclude lua/console/master_slave_bypass.lua
       
       \section MSG_ext_ms_code_lua Code of the application