Logo AND Algorithmique Numérique Distribuée

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