Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new doc: how to model multicores
[simgrid.git] / doc / doxygen / module-msg.doc
index 88bda8e..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 .
-
-Finding the right example in examples/msg is sometimes difficult. This list aims at helping you to find the example from which you can learn what you want to.
-
-\section msg_bsc_ex Basic examples
-
-*/
-
-
-
-
-
-