+SimGrid comes with many examples provided in the examples/ directory.
+Those examples are described in section \ref msg_examples. Those
+examples are commented and should be easy to understand. for a first
+step into SimGrid we also provide some more detailed examples in the
+sections below.
+
+\htmlonly
+You should also check our online <a href="http://simgrid.gforge.inria.fr/documentation.html"> tutorial section</a> that contains a generic tutorial about using SimGrid.
+\endhtmlonly
+
+\section using_msg Using MSG
+
+\htmlonly
+You should also check our online <a href="http://simgrid.gforge.inria.fr/documentation.html"> tutorial section</a> that contains a dedicated tutorial.
+\endhtmlonly
+
+Here are some examples on how to use MSG, the most used API.
+
+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.
+
+\subsection MSG_ex_basics Basic examples and features
+
+\subsubsection MSG_ex_master_worker Basic Master/Workers
+
+Simulation of a master-worker application using a realistic platform and an external description of the deployment.
+
+\paragraph MSG_ex_mw_TOC Table of contents:
+
+ - \ref MSG_ext_mw_preliminary
+ - \ref MSG_ext_mw_master
+ - \ref MSG_ext_mw_worker
+ - \ref MSG_ext_mw_core
+ - \ref MSG_ext_mw_platform
+ - \ref MSG_ext_mw_application
+
+<hr>
+
+\dontinclude msg/app-masterworker/app-masterworker.c
+
+\paragraph MSG_ext_mw_preliminary Preliminary declarations
+
+\skip include
+\until example");
+\skipline Master expects
+
+\paragraph MSG_ext_mw_master Master code
+
+This function has to be assigned to a #msg_process_t that will behave as the master. It should not be called directly
+but either given as a parameter to #MSG_process_create() or registered as a public function through
+#MSG_function_register() and then automatically assigned to a process through #MSG_launch_application().
+
+C style arguments (argc/argv) are interpreted as:
+ - the number of tasks to distribute
+ - the computational size of each task
+ - the communication size of each task
+ - the number of workers managed by the master.
+
+Tasks are evenly sent in a round-robin style.
+
+\until return 0;
+\until }
+\skipline Worker expects
+
+\paragraph MSG_ext_mw_worker Worker code
+
+This function has to be assigned to a #msg_process_t that has to behave as a worker. Just like the master function
+(described in \ref MSG_ext_mw_master), it should not be called directly.
+
+C style arguments (argc/argv) are interpreted as:
+ - a unique id used to build the mailbox name of the worker
+
+This function keeps waiting for tasks and executes them as it receives them. When a special task named 'finalize' is
+received from the master, the process ends its execution.
+
+\until return 0;
+\until }
+
+\paragraph MSG_ext_mw_core Main function
+
+This function is the core of the simulation and is divided only into 3 parts:
+ -# Simulation settings : #MSG_create_environment() creates a realistic
+ environment
+ -# Application deployment : create the processes on the right locations with
+ #MSG_launch_application()
+ -# The simulation is run with #MSG_main()
+
+Its arguments are:
+ - <i>platform_file</i>: the name of a file containing an valid platform description.
+ - <i>deployment_file</i>: the name of a file containing a valid application description
+\line main
+\until OK;
+\until }
+
+\paragraph MSG_ext_mw_platform Example of a platform file
+
+The following platform description can be found in \c examples/msg/platforms/small_platform.xml
+\include platforms/small_platform.xml
+
+\paragraph MSG_ext_mw_application Example of a deployment file
+
+The following application description can be found in \c examples/msg/app-masterworker/app-masterworker_d.xml:
+
+\include msg/app-masterworker/app-masterworker_d.xml