Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
use a nice va_copy if none was provided by the system
[simgrid.git] / doc / module-msg.doc
1 /** @addtogroup MSG_API 
2
3   \section MSG_funct Offered functionnalities
4    - \ref m_process_management
5    - \ref m_datatypes_management
6    - \ref m_host_management
7    - \ref m_task_management
8    - \ref msg_gos_functions
9    - \ref m_channel_management
10    - \ref msg_easier_life
11    - \ref msg_simulation
12
13   \section MSG_examples Examples of use
14  
15    - \ref MSG_ex_master_slave
16 */
17
18 /** @defgroup m_datatypes_management MSG Data Types 
19     @brief This section describes the different datatypes provided by MSG.
20 */
21 /**     \addtogroup m_process_management
22         \ingroup MSG_API  */
23 /**     \addtogroup m_host_management
24         \ingroup MSG_API  */
25 /**     \addtogroup m_task_management
26         \ingroup MSG_API  */
27 /**     \addtogroup msg_gos_functions
28         \ingroup MSG_API  */
29 /**     \addtogroup m_channel_management
30         \ingroup MSG_API  */
31 /**     \addtogroup msg_easier_life
32         \ingroup MSG_API  */
33 /**     \addtogroup msg_simulation
34         \ingroup MSG_API  */
35
36 /** \page MSG_ex_master_slave Master/slave application
37
38     <center>[\ref MSG_API]</center>
39     
40     Simulation of a master-slave application using a realistic platform and
41     an external description of the deployment. 
42
43     \section MSG_ex_ms_TOC Table of contents:
44     
45      - \ref MSG_ext_ms_code
46        - \ref MSG_ext_ms_preliminary
47        - \ref MSG_ext_ms_master
48        - \ref MSG_ext_ms_slave
49        - \ref MSG_ext_ms_forwarder
50        - \ref MSG_ext_ms_core
51        - \ref MSG_ext_ms_main
52      - \ref MSG_ext_ms_helping
53        - \ref MSG_ext_ms_application 
54        - \ref MSG_ext_ms_platform
55      
56     <hr> 
57     
58     \dontinclude msg/msg_test.c
59     
60     \section MSG_ext_ms_code Code of the application
61     
62     \subsection MSG_ext_ms_preliminary Preliminary declarations
63     
64     \skip include
65     \until printf
66     \until }
67     
68     \subsection MSG_ext_ms_master Master code
69     
70       This function has to be assigned to a m_process_t that will behave as the master.
71       It should not be called directly but either given as a parameter to
72       #MSG_process_create() or registered as a public function through 
73       #MSG_function_register() and then automatically assigned to a process through
74       #MSG_launch_application().
75  
76       C style arguments (argc/argv) are interpreted as:
77        - the number of tasks to distribute
78        - the computation size of each task
79        - the size of the files associated to each task
80        - a list of host that will accept those tasks.
81
82       Tasks are dumbly sent in a round-robin style.
83       
84       \until end_of_master
85     
86     \subsection MSG_ext_ms_slave Slave code
87     
88       This function has to be assigned to a #m_process_t that has to behave as a slave.
89       Just like #master(), it should not be called directly.
90
91       This function keeps waiting for tasks and executes them as it receives them.
92       
93       \until end_of_slave
94
95    \subsection MSG_ext_ms_forwarder Forwarder code
96    
97       This function has to be assigned to a #m_process_t that has to behave as a forwarder.
98       Just like #master(), it should not be called directly.
99
100       C style arguments (argc/argv) are interpreted as a list of host
101       that will accept those tasks.
102
103       This function keeps waiting for tasks and dispathes them to its slaves.
104
105    \subsection MSG_ext_ms_core Simulation core
106
107       This function is the core of the simulation and is divided only into 3 parts
108       thanks to MSG_create_environment() and MSG_launch_application().
109          -# Simulation settings : MSG_create_environment() creates a realistic 
110             environment
111          -# Application deployment : create the agents on the right locations with  
112             MSG_launch_application()
113          -# The simulation is run with #MSG_main()
114          
115       Its arguments are:
116         - <i>platform_file</i>: the name of a file containing an valid surfxml platform description.
117         - <i>application_file</i>: the name of a file containing a valid surfxml application description
118         
119       \until end_of_test_all
120       
121    \subsection MSG_ext_ms_main Main() function
122    
123       This initializes MSG, runs a simulation, and free all data-structures created by MSG.
124       
125       \until end_of_main
126
127    \section MSG_ext_ms_helping Helping files
128
129    \subsection MSG_ext_ms_application Example of application file
130
131    \include msg/small_deployment.xml
132
133    \subsection MSG_ext_ms_platform Example of platform file
134    
135    \include msg/small_platform.xml
136    
137 */