2 \defgroup SimGrid_API SimGrid modules */
4 /** \defgroup XBT_API XBT
6 \brief The core toolbox of SimGrid, containing usefull datatypes,
7 portability support and so on.
11 /** \defgroup MSG_API MSG
13 \brief Simple programming environment
15 MSG was the first distributed programming environment provided within
16 SimGrid. While almost realistic, it remains quite simple (simplistic?).
18 \section MSG_who Who should use this (and who shouldn't)
20 You should use this module if you want to study some heuristics for a
21 given problem you don't really want to implement.
22 If you want to use DAGs, have a look at the \ref SD_API programming
24 If you want to get a real (but experimental) implementation of your solution, have a look
25 at the \ref GRAS_API one. If you want to study an existing MPI program,
26 have a look at the \ref SMPI_API one. If none of those programming
27 environments fits your needs, you may consider implementing your own
28 directly on top of \ref SURF_API (but you probably want to contact us
33 /** \defgroup GRAS_API GRAS
35 \brief Realistic programming environment (Grid Reality And Simulation)
37 GRAS provides a complete API to implement distributed application on top
38 of heterogeneous plateforms. In addition to the SimGrid implementation
39 of this interface (allowing you to work on your application within the
40 comfort of the simulator), an implementation suited to real platforms is
41 also provided (allowing you to really use your application once you're
42 done with developing it). It may still contain rought corners as
43 GRAS is not the most used part of SimGrid, however.
45 GRAS thus constitute a complete grid application developement framework,
46 encompassing both developer helping tools (the simulator and associated
47 tools) and an efficient while portable execution runtime.
49 \section GRAS_who Who should use this (and who shouldn't)
51 You should use this programming environment if you want to develop real
52 applications, ie if the final result of your work is a program which
53 may eventually be distributed. Rember however that GRAS is
54 considered as experimental at this point. Help would be welcomed
55 to improve this sorry situation...
57 If you just want to study some heuristics for a given problem you don't
58 want to implement really (ie, if your result would be a theorem), have a
59 look at the \ref MSG_API one, or the \ref SD_API one if you need to use DAGs.
60 If you want to study an existing MPI program, have a look at the
62 If none of those programming environments fits your needs, you may
63 consider implementing your own directly on top of \ref SURF_API (but you
64 probably want to contact us before).
67 /** \defgroup AMOK_API AMOK
69 \brief Distributed toolkit built over \ref GRAS_API (Advanced Metacomputing Overlay Kit)
71 AMOK provides several tools useful to most applications built on top of GRAS,
72 but yet not belonging to GRAS itself. It is planned that those modules will be
73 changed to real plugins one day, allowing users to load only the needed parts at
74 run time. For now, they live in another library against which you should link your
78 /** \defgroup SMPI_API SMPI
80 \brief Programming environment for the simulation of MPI applications
82 Once implemented, this programming environment will allow you to study
83 within the simulator any MPI application without having to modify them
84 for that. In other words, it will constitute an emulation solution for
87 \section SMPI_who Who should use this (and who shouldn't)
89 You should use this programming environment of the SimGrid suite if you
90 want to study existing MPI applications.
91 If you want to work on a distributed application, have a look at the
92 \ref GRAS_API environment.
93 If you want to study some heuristics for a given problem (and if your
94 goal is to produce theorems, not code), have a look at the \ref MSG_API
95 environment, or the \ref SD_API one if you need to use DAGs.
96 If none of those programming environments fits your needs, you may
97 consider implementing your own directly on top of \ref SURF_API (but you
98 probably want to contact us before).
103 /** \defgroup SD_API SimDag
105 \brief Programming environment for DAG applications
107 SimDag provides some functionnalities to simulate parallel task scheduling
108 with DAGs models (Direct Acyclic Graphs).
109 The old versions of SimGrid were based on DAGs. But the DAG part (named SG)
110 was removed in SimGrid 3 because the new kernel (\ref SURF_API) was implemented. \ref SURF_API
111 was much faster and more flexible than SG and did not use DAGs.
112 SimDag is a new implementation of DAGs handling and it is built on top of \ref SURF_API.
114 \section SD_who Who should use this (and who shouldn't)
116 You should use this programming environment of the SimGrid suite if you want
117 to study algorithms and heuristics with DAGs of parallel tasks.
118 If you don't need to use DAGs for your simulation, have a look at the
119 \ref MSG_API programming environment.
120 If you want to implement a real distributed application, have a look at the
121 \ref GRAS_API programming environment.
122 If you want to study an existing MPI program, have a look at the
124 If none of those programming environments fits your needs, you may
125 consider implementing your own directly on top of \ref SURF_API (but you
126 probably want to contact us before).
131 @defgroup SURF_API SURF
133 @brief Internal kernel of all the simulators used in SimGrid, and associated models.
135 SURF provides the core functionnalities to simulate a virtual
136 platform. It is very low-level and is not intended to be used by end
137 users, but rather to serve as a basis for higher-level simulators. Its
138 interface are not frozen (and will probably never be), and the
139 structure emphasis on performance over ease of use. This module
140 contains the platform models. If you need a model that is not encoded
141 yet, please come to the devel mailing list so that we can discuss on
142 the feasibility of your idea.
144 Please note that as it is not really intended for public use, this
145 module is only partially documented.
150 @defgroup TRACE_API TRACE
152 @brief Tracing mechanism and its functions.
154 SimGrid can trace the resource (of hosts and links) utilization using
155 any of its programming interfaces (MSG, SimDAG and SMPI). This means
156 that the tracing will register how much power is used for each host
157 and how much bandwidth is used for each link of the platform.
159 The idea of the tracing facilities is to give SimGrid users to
160 possibility to classify MSG and SimDAG tasks by category, tracing the
161 platform utilization (hosts and links) for each of the categories.
162 The API enables the declaration of categories and a function to
163 associate them to the tasks (MSG and SD). The tasks that are not
164 classified according to a category are not traced. If no categories
165 are specified, simulations can still be traced using a special
166 parameter in the command line (see \ref tracing_tracing for details).