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 SURF_API SURF
13 \brief Kernel of all the simulators used in SimGrid, and associated models.
15 SURF provides the core functionnalities to simulate a virtual
16 platform. It is very low-level and is not intended to be used as
17 such but rather to serve as a basis for higher-level simulators.
18 We're still working on it and the structure is a little bit
19 complex. So we'll document it only when we'll be completely satisfied of
20 the way it is organized.
22 It is where platform models are encoded. If you need a model that is not
23 encoded yet, please tell me (<arnaud.legrand@imag.fr>) and we'll
24 see if it is feasible or not (hopefully it should be but who knows).
26 Please note that as it is not really intended for public use,
27 this module is only partially documented.
30 /** \defgroup MSG_API MSG
32 \brief Simple programming environment
34 MSG was the first distributed programming environment provided within
35 SimGrid. While almost realistic, it remains quite simple (simplistic?).
37 \section MSG_who Who should use this (and who shouldn't)
39 You should use this module if you want to study some heuristics for a
40 given problem you don't really want to implement.
41 If you want to use DAGs, have a look at the \ref SD_API programming
43 If you want to get a real implementation of your solution, have a look
44 at the \ref GRAS_API one. If you want to study an existing MPI program,
45 have a look at the \ref SMPI_API one. If none of those programming
46 environments fits your needs, you may consider implementing your own
47 directly on top of \ref SURF_API (but you probably want to contact us
51 /** \defgroup GRAS_API GRAS
53 \brief Realistic programming environment (Grid Reality And Simulation)
55 GRAS provides a complete API to implement distributed application on top
56 of heterogeneous plateforms. In addition to the SimGrid implementation
57 of this interface (allowing you to work on your application within the
58 comfort of the simulator), an implementation suited to real platforms is
59 also provided (allowing you to really use your application once you're
60 done with developing it).
62 GRAS thus constitute a complete grid application developement framework,
63 encompassing both developer helping tools (the simulator and associated
64 tools) and an efficient while portable execution runtime.
66 \section GRAS_who Who should use this (and who shouldn't)
68 You should use this programming environment if you want to develop real
69 applications, ie if the final result of your work is a program which
70 may eventually be distributed.
71 If you just want to study some heuristics for a given problem you don't
72 want to implement really (ie, if your result would be a theorem), have a
73 look at the \ref MSG_API one, or the \ref SD_API one if you need to use DAGs.
74 If you want to study an existing MPI program, have a look at the
76 If none of those programming environments fits your needs, you may
77 consider implementing your own directly on top of \ref SURF_API (but you
78 probably want to contact us before).
81 /** \defgroup AMOK_API AMOK
83 \brief Distributed toolkit built over \ref GRAS_API (Advanced Metacomputing Overlay Kit)
85 AMOK provides several tools useful to most applications built on top of GRAS,
86 but yet not belonging to GRAS itself. It is planned that those modules will be
87 changed to real plugins one day, allowing users to load only the needed parts at
88 run time. For now, they live in another library against which you should link your
92 /** \defgroup SMPI_API SMPI
94 \brief Programming environment for the simulation of MPI applications
96 Once implemented, this programming environment will allow you to study
97 within the simulator any MPI application without having to modify them
98 for that. In other words, it will constitute an emulation solution for
101 \section SMPI_who Who should use this (and who shouldn't)
103 You should use this programming environment of the SimGrid suite if you
104 want to study existing MPI applications.
105 If you want to work on a distributed application, have a look at the
106 \ref GRAS_API environment.
107 If you want to study some heuristics for a given problem (and if your
108 goal is to produce theorems, not code), have a look at the \ref MSG_API
109 environment, or the \ref SD_API one if you need to use DAGs.
110 If none of those programming environments fits your needs, you may
111 consider implementing your own directly on top of \ref SURF_API (but you
112 probably want to contact us before).
117 /** \defgroup SD_API SimDag
119 \brief Programming environment for DAG applications
121 SimDag provides some functionnalities to simulate parallel task scheduling
122 with DAGs models (Direct Acyclic Graphs).
123 The old versions of SimGrid were based on DAGs. But the DAG part (named SG)
124 was removed in SimGrid 3 because the new kernel (\ref SURF_API) was implemented. \ref SURF_API
125 was much faster and more flexible than SG and did not use DAGs.
126 SimDag is a new implementation of DAGs handling and it is built on top of \ref SURF_API.
128 \section SD_who Who should use this (and who shouldn't)
130 You should use this programming environment of the SimGrid suite if you want
131 to study algorithms and heuristics with DAGs of parallel tasks.
132 If you don't need to use DAGs for your simulation, have a look at the
133 \ref MSG_API programming environment.
134 If you want to implement a real distributed application, have a look at the
135 \ref GRAS_API programming environment.
136 If you want to study an existing MPI program, have a look at the
138 If none of those programming environments fits your needs, you may
139 consider implementing your own directly on top of \ref SURF_API (but you
140 probably want to contact us before).