Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new doc: how to model multicores
[simgrid.git] / doc / doxygen / module-msg.doc
index dbe02f3..8f4ae03 100644 (file)
@@ -1,23 +1,20 @@
-/** \addtogroup MSG_API
-
-MSG was the first distributed programming environment provided within SimGrid,
-and is still the most commonly used nowadays. If you are unsure of the interface
-you should use, they you probably want to use MSG. It constitutes a convenient
-simplification of the reality of distributed systems. It can be used to build
-rather realistic simulations, but remains simple to use: most unpleasant
-technical elements can be abstracted away rather easily.  If you want to use the
-C programming language, your are in the right section. If you prefer not to use
-this venerable but demanding language, please refer to the @ref MSG_Java section.
+/**
+@defgroup MSG_API  MSG: Simulate CSP Algorithms
+@brief Simple programming environment
 
-If you think that MSG may not be the interface you need, please consider the
-other user interfaces provided by SimGrid: If you want to use DAGs, have a look
-at the \ref SD_API programming environment. If you want to study an existing MPI
-program, have a look at the \ref SMPI_API one. If none of those programming
-environments fits your needs, you may consider implementing your own directly on
-top of \ref SIMIX_API, or even on top of \ref SURF_API (but you want to contact
-us before digging into these badly documented internal modules).
+MSG is a simple API to write algorithms organized with Concurrent
+Sequential Processes (CSP) that interact by exchanging messages. It
+constitutes a convenient simplification of the reality of distributed
+systems. It can be used to build rather realistic simulations, but
+remains simple to use: most unpleasant technical elements can be
+abstracted away rather easily.
 
+If you are unsure, then you probably want to use MSG. Otherwise, you
+may want to use one of the following:
 
+ - MSG in Java instead of C: @ref MSG_Java.
+ - If you want to use DAGs: @ref SD_API.
+ - If you want to study a MPI application: @ref SMPI_API.
 
 \section MSG_funct Offered functionalities
    - \ref msg_simulation
@@ -25,25 +22,21 @@ us before digging into these badly documented internal modules).
    - \ref m_host_management
    - \ref m_task_management
    - \ref msg_mailbox_management
-   - \ref msg_file_management
+   - @ref msg_file
    - \ref msg_task_usage
    - \ref msg_VMs
    - \ref msg_synchro
    - \ref msg_trace_driven
-   - \ref MSG_examples
-
-
-  Also make sure to visit the page @ref MSG_examples.
-*/
-
+   - \ref msg_examples
 
+*/ 
 
 /**
 @defgroup msg_simulation   Main MSG simulation Functions
 @ingroup MSG_API
-@brief Describes how to setup and control your simulation.
+@brief How to setup and control your simulation.
 
-The basic workflow is the following (check the \ref MSG_examples for
+The basic workflow is the following (check the \ref msg_examples for
 details).
 
  -# Initialize the library with #MSG_init
@@ -53,8 +46,6 @@ details).
     #MSG_function_register (and maybe #MSG_function_register_default)
  -# Launch your processes from a deployment file with #MSG_launch_application
  -# Run the simulation with #MSG_main
-
-@htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation Control" --> @endhtmlonly
 */
 
 /** @defgroup m_process_management Process Management Functions
@@ -65,24 +56,18 @@ details).
 
 /** @defgroup m_host_management Host Management Functions
  *  @ingroup MSG_API
- *  @brief This section describes the host structure of MSG
+ *  @brief Host structure of MSG
  */
 
 /** @defgroup m_task_management Task Management Functions
  *  @ingroup MSG_API
- *  @brief This section describes the task structure of MSG
- *         (#msg_task_t) and the functions for managing it. See
+ *  @brief Task structure of MSG (#msg_task_t) and associated functions. See
  *         \ref msg_task_usage to see how to put the tasks in action.
- *
- * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Tasks" --> \endhtmlonly
  */
 
 /** @defgroup msg_mailbox_management Mailbox Management Functions
  *  @ingroup MSG_API
- *  @brief This section describes the mailbox structure of MSG
- *         (#msg_mailbox_t) and the functions for managing it.
- *
- * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Mailbox" --> \endhtmlonly
+ *  @brief Functions associated to mailboxes.
  */
 
 /** @defgroup msg_task_usage Task Actions
@@ -93,15 +78,14 @@ details).
 
 /** @defgroup msg_synchro Explicit Synchronization Functions
  *  @ingroup MSG_API
- *  @brief This section describes several explicit synchronization
- *         mechanisms existing in MSG: semaphores (#msg_sem_t) and friends.
+ *  @brief Explicit synchronization mechanisms: semaphores (#msg_sem_t) and friends.
  *
  * In some situations, these things are very helpful to synchronize processes without message exchanges.
  */
 
 /** @defgroup msg_VMs VMs
  *  @ingroup MSG_API
- *  @brief This section describes the interface created to mimic IaaS clouds.
+ *  @brief Interface created to mimic IaaS clouds.
  *
  *  With it, you can create virtual machines to put your processes
  *  into, and interact directly with the VMs to manage groups of
@@ -118,25 +102,19 @@ details).
 
 /** @defgroup msg_storage_management Storage Management Functions
  *  @ingroup MSG_API
- *  @brief This section describes the storage structure of MSG
- *         (#msg_storage_t) and the functions for managing it. It
- *   is based on POSIX functions.
+ *  @brief Storage structure of MSG (#msg_storage_t) and associated functions, inspired from POSIX.
  */
 
-/** @defgroup msg_file_management File Management Functions
- *  @ingroup MSG_API
- *  @brief This section describes the file structure of MSG
- *         (#msg_file_t) and the functions for managing it. It
- *   is based on POSIX functions.
- */
+/** @defgroup msg_file File Management Functions
+    @ingroup MSG_API
+    @brief MSG files (#msg_file_t) and associated functions, inspired from POSIX.
+*/
 
 /**
 @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
@@ -153,21 +131,3 @@ simulated process.
 Check the examples in <b>examples/msg/actions/actions.c</b> for details.
 
  */
-
-
-/**
-@defgroup MSG_examples MSG examples
-@ingroup MSG_API
-@brief MSG examples from examples directory examples/msg
-
-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.
-
-\section msg_bsc_ex Basic examples
-
-*/
-
-
-
-
-
-