Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[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 SURF_API       SURF
12     \ingroup SimGrid_API
13     \brief Kernel of all the simulators used in SimGrid, and associated models.
14  
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.
20
21       It is where platform models are encoded. If you need a model that is not 
22       encoded yet, please tell me (<arnaud.legrand@imag.fr>) and we'll
23       see if it is feasible or not (hopefully it should be but who knows).
24
25       Please note that as it is not really intended for public use,
26       this module is only partially documented.
27 */
28
29 /** \defgroup MSG_API      MSG
30     \ingroup SimGrid_API
31     \brief Simple programming environment 
32   
33       MSG was the first distributed programming environment provided within
34       SimGrid. While almost realistic, it remains quite simple (simplistic?).
35
36       \section MSG_who Who should use this (and who shouldn't)
37       
38       You should use this module if you want to study some heuristics for a
39       given problem you don't really want to implement.
40       If you want to use DAGs, have a look at the \ref SD_API programming
41       environment.
42       If you want to get a real (but experimental) implementation of your solution, have a look
43       at the \ref GRAS_API one. If you want to study an existing MPI program,
44       have a look at the \ref SMPI_API one. If none of those programming
45       environments fits your needs, you may consider implementing your own 
46       directly on top of \ref SURF_API (but you probably want to contact us
47       before). 
48 */
49
50
51 /** \defgroup GRAS_API      GRAS
52     \ingroup SimGrid_API
53     \brief Realistic programming environment (Grid Reality And Simulation)
54   
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). It may still contain rought corners as
61     GRAS is not the most used part of SimGrid, however.
62   
63     GRAS thus constitute a complete grid application developement framework,
64     encompassing both developer helping tools (the simulator and associated
65     tools) and an efficient while portable execution runtime.
66   
67     \section GRAS_who Who should use this (and who shouldn't)
68     
69     You should use this programming environment if you want to develop real
70     applications, ie if the final result of your work is a program which 
71     may eventually be distributed. Rember however that GRAS is
72     considered as experimental at this point. Help would be welcomed
73     to improve this sorry situation...
74     
75     If you just want to study some heuristics for a given problem you don't
76     want to implement really (ie, if your result would be a theorem), have a
77     look at the \ref MSG_API one, or the \ref SD_API one if you need to use DAGs.
78     If you want to study an existing MPI program, have a look at the 
79     \ref SMPI_API one. 
80     If none of those programming environments fits your needs, you may
81     consider implementing your own directly on top of \ref SURF_API (but you
82     probably want to contact us before).
83 */
84
85 /** \defgroup AMOK_API AMOK
86     \ingroup SimGrid_API
87     \brief Distributed toolkit built over \ref GRAS_API (Advanced Metacomputing Overlay Kit)
88
89     AMOK provides several tools useful to most applications built on top of GRAS, 
90     but yet not belonging to GRAS itself. It is planned that those modules will be 
91     changed to real plugins one day, allowing users to load only the needed parts at
92     run time. For now, they live in another library against which you should link your 
93     programs explicitly.
94 */
95
96 /** \defgroup SMPI_API      SMPI
97     \ingroup SimGrid_API
98     \brief Programming environment for the simulation of MPI applications
99   
100     Once implemented, this programming environment will allow you to study
101     within the simulator any MPI application without having to modify them
102     for that. In other words, it will constitute an emulation solution for
103     parallel codes.
104     
105     \section SMPI_who Who should use this (and who shouldn't)
106     
107     You should use this programming environment of the SimGrid suite if you
108     want to study existing MPI applications.
109     If you want to work on a distributed application, have a look at the 
110     \ref GRAS_API environment. 
111     If you want to study some heuristics for a given problem (and if your
112     goal is to produce theorems, not code), have a look at the \ref MSG_API
113     environment, or the \ref SD_API one if you need to use DAGs.
114     If none of those programming environments fits your needs, you may
115     consider implementing your own directly on top of \ref SURF_API (but you
116     probably want to contact us before).
117   
118  */
119
120
121 /** \defgroup SD_API      SimDag
122     \ingroup SimGrid_API
123     \brief Programming environment for DAG applications
124    
125     SimDag provides some functionnalities to simulate parallel task scheduling
126     with DAGs models (Direct Acyclic Graphs).
127     The old versions of SimGrid were based on DAGs. But the DAG part (named SG)
128     was removed in SimGrid 3 because the new kernel (\ref SURF_API) was implemented. \ref SURF_API
129     was much faster and more flexible than SG and did not use DAGs.
130     SimDag is a new implementation of DAGs handling and it is built on top of \ref SURF_API.
131     
132     \section SD_who Who should use this (and who shouldn't)
133     
134     You should use this programming environment of the SimGrid suite if you want
135     to study algorithms and heuristics with DAGs of parallel tasks.
136     If you don't need to use DAGs for your simulation, have a look at the
137     \ref MSG_API programming environment.
138     If you want to implement a real distributed application, have a look at the
139     \ref GRAS_API programming environment.
140     If you want to study an existing MPI program, have a look at the 
141     \ref SMPI_API one. 
142     If none of those programming environments fits your needs, you may
143     consider implementing your own directly on top of \ref SURF_API (but you
144     probably want to contact us before).
145
146 */