Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change links in doc
[simgrid.git] / doc / ref_guide / doxygen / main.doc
1 /*! 
2 @mainpage SimGrid Reference Manual
3
4 <center>
5 \htmlonly
6 <table width="100%">
7         <tr>
8                 <td valign="middle" align="left">
9                                 <img src="simgrid_logo_2011.png" alt="SimGrid - Scalable simulation of distributed systems, ranging from grids to peer-to-peer systems" />
10                 </td>
11                 <td valign="middle" align="left">
12 \endhtmlonly
13 \htmlonly
14                 </td>
15         </tr>
16 </table>
17 \endhtmlonly
18 </center>
19
20 \section ref_guide_welcome SimGrid Reference Guide
21
22 Welcome to the SimGrid Reference Guide. This guide contains a detailed list of functions, macros and structs provided by SimGrid. This guide is supposed to help you to code your simulator using SimGrid primitives, so it means that you already know the basics of SimGrid, have it installed and so on. If not, please refer either to the SimGrid user guide or to the various tutorials available either online or in the relevant doc section.
23
24 \section a_quick_glance SimGrid ?
25
26 SimGrid is a toolkit that provides core functionalities for the simulation
27 of distributed applications in heterogeneous distributed environments.
28
29 The specific goal of the project is to facilitate research in the area of
30 distributed and parallel application scheduling on distributed computing
31 platforms ranging from simple network of workstations to Computational
32 Grids.
33
34
35   - The official webpage is <a href="http://simgrid.gforge.inria.fr/">simgrid.gforge.inria.fr</a>.
36   - The Frequently Asked Questions are <a href="http://simgrid.gforge.inria.fr/faq.html">here</a>.
37   - The development webpage is <a href="https://gforge.inria.fr/projects/simgrid//">gforge.inria.fr/projects/simgrid</a>.
38   - The user mailing list is <simgrid-user@lists.gforge.inria.fr>
39   - The SimGrid software package can be downloaded from <a href="http://simgrid.gforge.inria.fr/download.html">here</a>.
40 <br>
41
42 <hr>
43
44 \section overview Overview of the toolkit components
45
46 As depicted by the following diagram, the SimGrid toolkit is basically
47 three-layered (click on the picture to jump to a specific component).
48
49
50 \htmlonly
51 <center>
52 \endhtmlonly
53 \htmlinclude simgrid_modules.map
54
55 \htmlonly
56 <br><b>Relationships between the SimGrid components (click to jump to API)</b>
57 </center>
58 \endhtmlonly
59
60 \subsection overview_envs Programmation environments layer
61
62 SimGrid provides several programmation environments built on top of a unique
63 simulation kernel. Each environment targets a specific audiance and
64 constitutes a different paradigm. To choose which of them you want to use,
65 you have to think about what you want to do and what would be the result of
66 your work.
67
68  - If you want to study a theoritical problem and compare several
69    heuristics, you probably want to try <b>\ref MSG_API</b> (yet another
70    historical name). It was designed exactly to that extend and should allow
71    you to build easily rather realistic multi-agents simulation. Yet,
72    realism is not the main goal of this environment and the most annoying
73    technical issues of real platforms are masked here. Check the \ref
74    MSG_API section for more information.
75
76  - If you want to study the behaviour of a MPI application using emulation
77    technics, you should have a look at the <b>\ref SMPI_API</b> (Simulated
78    MPI) programming environment. Unfortunately, this work is still underway.
79    Check the \ref SMPI_API section for more information.
80
81  - If you want to develop a real distributed application, then you may find
82    <b>\ref GRAS_API</b> (Grid Reality And Simulation) useful. This is an API
83    for the realization of distributed applications.
84    \n\n
85    Moreover, there is two implementations of this API: one on top of the
86    SURF (allowing to develop and test your application within the comfort of
87    the simulator) and another suited for deployment on real platforms
88    (allowing the resulting application to be highly portable and extremely
89    efficient).
90    \n\n
91    Even if you do not plan to run your code for real, you may want to switch
92    to GRAS if you intend to use MSG in a very intensive way (e.g. for
93    simulating a peer-to-peer environment).
94    \n\n
95    See the \ref GRAS_API section for more details.
96
97 If your favorite programming environment/model is not there (BSP,
98 components, OpenMP, etc.) is not represented in the SimGrid toolkit yet, you may
99 consider adding it. You should contact us first on the
100 <a href=http://lists.gforge.inria.fr/mailman/listinfo/simgrid-devel>SimGrid
101 developers mailing list</a>, though.
102
103 \subsection overview_kernel Simulation kernel layer
104
105 The core functionnalities to simulate a virtual platform are provided by a
106 module called <b>\ref SURF_API</b>.  It is
107 very low-level and is not intended to be used as such by end-users. Instead,
108 it serve as a basis for the higher level layer.
109
110 SURF main features are a fast max-min linear solver and the ability to
111 change transparently the model used to describe the platform. This greatly
112 eases the comparison of the several models existing in the litterature.
113
114 See the \ref SURF_API section for more details.
115
116 \subsection overview_fondation Base layer
117
118 The base of the whole toolkit is constituted by the <b>\ref XBT_API
119 (eXtended Bundle of Tools)</b>.
120
121 It is a portable library providing some grounding features such as \ref
122 XBT_log, \ref XBT_ex and \ref XBT_config. XBT also encompass
123 the following convenient datastructures: \ref XBT_dynar, \ref XBT_fifo, \ref
124 XBT_dict, \ref XBT_heap, \ref XBT_set and \ref XBT_swag.
125
126 See the \ref XBT_API section for more details.
127
128
129 \subsection lucas_layer Tracing simulation
130 Finally, a transversal module allows you to trace your simulation. More documentation in the section \ref TRACE_doc
131
132 \htmlonly
133 <br>
134 The SimGrid software package can be downloaded from
135 <a href="http://simgrid.gforge.inria.fr/download.html">here</a>.<br>
136
137 If you are interested in the history of SimGrid and in current and planned development,
138 you can find out more <a href="http://simgrid.gforge.inria.fr/history.html">here</a>.
139
140 Any question, remark or suggestion are welcome on the
141 <a href="http://lists.gforge.inria.fr/mailman/listinfo/simgrid-user">SimGrid users
142 mailing list</a>.
143
144 \endhtmlonly
145
146 <hr>
147 \htmlonly
148 <center>
149 <a href="http://creativecommons.org/licenses/LGPL/2.1/"><img alt="CC-GNU LGPL" border="0" src="http://creativecommons.org/images/public/cc-LGPL-a.png" /></a>
150 </center>
151 \endhtmlonly
152
153 */