Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
update surf doc to kill some more doc warnings
[simgrid.git] / doc / modules.doc
1 /** 
2   \defgroup SimGrid_API  SimGrid modules */
3
4 /** \defgroup XBT_API      XBT
5     \ingroup SimGrid_API
6     \brief The core toolbox of SimGrid, containing usefull datatypes,
7            portability support and so on.
8
9 */
10
11 /** \defgroup MSG_API      MSG
12     \ingroup SimGrid_API
13     \brief Simple programming environment 
14   
15       MSG was the first distributed programming environment provided within
16       SimGrid. While almost realistic, it remains quite simple (simplistic?).
17
18       \section MSG_who Who should use this (and who shouldn't)
19       
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
23       environment.
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
29       before). 
30 */
31
32
33 /** \defgroup GRAS_API      GRAS
34     \ingroup SimGrid_API
35     \brief Realistic programming environment (Grid Reality And Simulation)
36   
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.
44   
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.
48   
49     \section GRAS_who Who should use this (and who shouldn't)
50     
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...
56     
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 
61     \ref SMPI_API one. 
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).
65 */
66
67 /** \defgroup AMOK_API AMOK
68     \ingroup SimGrid_API
69     \brief Distributed toolkit built over \ref GRAS_API (Advanced Metacomputing Overlay Kit)
70
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 
75     programs explicitly.
76 */
77
78 /** \defgroup SMPI_API      SMPI
79     \ingroup SimGrid_API
80     \brief Programming environment for the simulation of MPI applications
81   
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
85     parallel codes.
86     
87     \section SMPI_who Who should use this (and who shouldn't)
88     
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).
99   
100  */
101
102
103 /** \defgroup SD_API      SimDag
104     \ingroup SimGrid_API
105     \brief Programming environment for DAG applications
106    
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.
113     
114     \section SD_who Who should use this (and who shouldn't)
115     
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 
123     \ref SMPI_API one. 
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).
127
128 */
129
130 /** 
131 @defgroup SURF_API SURF
132 @ingroup SimGrid_API
133 @brief Internal kernel of all the simulators used in SimGrid, and associated models.
134  
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.
143
144 Please note that as it is not really intended for public use, this
145 module is only partially documented. 
146 */
147