Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Found how to ask doxygen to search the examples recursively
[simgrid.git] / doc / index.doc
1 /*! \page index
2
3 <center>
4 \htmlonly
5 <img align=center src="simgrid_logo.png" alt="SimGrid"><br>
6 \endhtmlonly
7 </center>
8
9 \section quick Quick start
10
11 SimGrid is a toolkit that provides core functionalities for the simulation
12 of distributed applications in heterogeneous distributed environments.
13 The specific goal of the project is to facilitate research in the area of
14 distributed and parallel application scheduling on distributed computing
15 platforms ranging from simple network of workstations to Computational
16 Grids.
17
18 \subsection quick_dl Getting and installing the software
19
20 The SimGrid software package can be downloaded from 
21 <a href="http://gcl.ucsd.edu/simgrid/dl/">here</a>.
22
23 To compile and install it, simply type the following. If you are not
24 familiar with compiling C files under UNIX and using libraries, please check
25 the \ref faq. SimGrid also works under Windows, but we do not distribute any
26 pre-compiled binaries [yet].
27
28 \verbatim $ ./configure
29  $ make all
30  [become root]
31  # make install\endverbatim
32  
33 \subsection quick_more More information
34
35 The API is described <a href="API/html/modules.html">here</a> while 
36 <a href="examples/html/modules.html">this page</a> presents some example of
37 use.
38
39 For more information about the SimGrid toolkit, please simply keep reading
40 this page. It is organized as follow:
41
42   - \ref overview: Presentation of the toolkit, of each of its components
43     and of their interactions.
44   - \ref people: Who is behind this project.
45   - \ref publications: Some articles providing more details about the
46     SimGrid toolkit or using and validating it.
47
48 <hr>
49
50 \section overview Overview of the toolkit components
51
52 As depicted by the following schema, the SimGrid toolkit is basically
53 three-layered.
54
55 \htmlonly
56 <center><img align=center src="simgrid_modules.jpg" alt="SimGrid"><br>
57 <b>Relationships between the SimGrid components</b>
58 </center>
59 \endhtmlonly
60
61 \subsection overview_fondation Basement layer
62
63 The basement of the whole toolkit is constituted by the <b>\ref XBT_API
64 (eXtended Bundle of Tools)</b>.
65
66 It is a portable library providing some grounding features such as \ref
67 XBT_log and \ref XBT_error. XBT also encompass the following convenient
68 datastructures: \ref XBT_dynar, \ref XBT_fifo, \ref XBT_dict, \ref XBT_heap,
69 \ref XBT_set and \ref XBT_swag.
70
71 See the \ref XBT_API section for more details.
72
73 \subsection overview_kernel Simulation kernel layer
74
75 The core functionnalities to simulate a virtual platform are provided by a
76 module called <b>\ref SURF_API</b> ("that's historical, my friend").  It is
77 very low-level and is not intended to be used as such by end-users. Instead,
78 it serve as a basis for the higher level layer.
79
80 SURF main features are a fast max-min linear solver and the ability to
81 change transparently the model used to describe the platform. This greatly
82 eases the comparison of the several models existing in the litterature.
83
84 See the \ref SURF_API section for more details.
85
86 \subsection overview_envs Programmation environments layer
87
88 This simulation kernel is used to build several programmation environments.
89 Each of them target a specific audiance and constitute a different paradigm.
90 To choose which of them you want to use, you have to think about what you
91 want to do and what would be the result of your work. 
92
93  - If you want to study a theoritical problem and compare several
94    heuristics, you probably want to try <b>\ref MSG_API</b> (yet another
95    historical name). It was designed exactly to that extend and should allow
96    you to build easily rather realistic multi-agents simulation. Yet,
97    realism is not the main goal of this environment and the most annoying
98    technical issues of real platforms are masked here. Check the \ref
99    MSG_API section for more information.
100
101  - If you want to study the behaviour of a MPI application using emulation
102    technics, you should have a look at the <b>\ref SMPI_API</b> (Simulated
103    MPI) programming environment. Unfortunately, this work is still underway.
104    Check the \ref SMPI_API section for more information. 
105    
106  - If you want to develop a real distributed application, then you may find
107    <b>\ref GRAS_API</b> (Grid Reality And Simulation) useful. This is an API
108    for the realization of distributed applications. 
109    \n\n
110    Moreover, there is two implementations of this API: one on top of the
111    SURF (allowing to develop and test your application within the comfort of
112    the simulator) and another suited for deployment on real platforms
113    (allowing the resulting application to be highly portable and extremely
114    efficient).
115    \n\n
116    Even if you do not plan to run your code for real, you may want to switch
117    to GRAS if you intend to use MSG in a very intensive way (e.g. for
118    simulating a peer-to-peer environment).
119    \n\n
120    See the \ref GRAS_API section for more details.
121
122 If your favorite programming environment/model is not there (BSP,
123 components, etc.) is not represented in the SimGrid toolkit yet, you may
124 consider adding it. You should contact us first, though.
125
126 Any question, remark or suggestion are welcome on the 
127 <a href=https://listes.ens-lyon.fr/wws/info/simgrid2-users>SimGrid users
128 mailing list</a>.
129
130 <hr>
131
132 \section people People
133
134 The authors of SimGrid are:
135
136  - Henri Casanova <casanova#cs.ucsd.edu>
137  - Arnaud Legrand <arnaud.legrand#imag.fr>
138  - Martin Quinson <mquinson#debian.org>
139
140 \subsection contributers Contributers and alumni project members
141
142  - Loris Marchal: wrote the new algorithm for simulation TCP
143    bandwidth-sharing.
144  - Julien Lerouge : wrote a XML parser for ENV descriptions and helped for
145    the general design during a 4 month period (march-june 2002) 
146    in the <LIP.
147  - ClĂ©ment Menier and Marc Perache : wrote a first prototype of the MSG
148    interface during a project at ENS-Lyon (jan 2002). 
149  - Dmitrii Zagorodnov : wrote some parts of the first version of SimGrid
150    (1999). 
151
152 <hr>
153
154 \section publications Selected publications
155
156 When citing SimGrid, the prefered reference paper is still <i>SimGrid: A
157 Toolkit for the Simulation of Application Scheduling</i> by Henri Casanova,
158 even if it's a bit old now. We are activly working on improving this.
159
160 \subsection simulation About simulation
161
162 \li <b>Scheduling Distributed Applications: the
163        SimGrid Simulation Framework</b>\n
164     by <em>Henri Casanova and Arnaud Legrand and Loris Marchal</em>\n
165     Proceedings of the third IEEE International Symposium
166     on Cluster Computing and the Grid (CCGrid'03)\n
167     Since the advent of distributed computer systems an active field
168     of research has been the investigation of scheduling strategies
169     for parallel applications.  The common approach is to employ
170     scheduling heuristics that approximate an optimal
171     schedule. Unfortunately, it is often impossible to obtain
172     analytical results to compare the efficacy of these heuristics.
173     One possibility is to conducts large numbers of back-to-back
174     experiments on real platforms.  While this is possible on
175     tightly-coupled platforms, it is infeasible on modern distributed
176     platforms (i.e. Grids) as it is labor-intensive and does not
177     enable repeatable results. The solution is to resort to
178     simulations. Simulations not only enables repeatable results but
179     also make it possible to explore wide ranges of platform and
180     application scenarios.\n
181     In this paper we present the SimGrid framework which enables the
182     simulation of distributed applications in distributed computing
183     environments for the specific purpose of developing and evaluating
184     scheduling algorithms.  This paper focuses on SimGrid v2, which
185     greatly improves on the first version of the software with more
186     realistic network models and topologies.  SimGrid v2 also enables
187     the simulation of distributed scheduling agents, which has become
188     critical for current scheduling research in large-scale platforms.
189     After describing and validating these features, we present a case
190     study by which we demonstrate the usefulness of SimGrid for
191     conducting scheduling research.
192
193
194 \li <b>A Network Model for Simulation of Grid Application</b>\n
195     by <em>Henri Casanova and Loris Marchal</em>\n
196     \anchor paper_tcp
197     In this work we investigate network models that can be
198     potentially employed in the simulation of scheduling algorithms for
199     distributed computing applications. We seek to develop a model of TCP
200     communication which is both high-level and realistic. Previous research
201     works show that accurate and global modeling of wide-area networks, such
202     as the Internet, faces a number of challenging issues. However, some
203     global models of fairness and bandwidth-sharing exist, and can be link
204     withthe behavior of TCP. Using both previous results and simulation (with
205     NS), we attempt to understand the macroscopic behavior of
206     TCP communications. We then propose a global model of the network for the
207     Grid platform. We perform partial validation of this model in
208     simulation. The model leads to an algorithm for computing
209     bandwidth-sharing. This algorithm can then be implemented as part of Grid
210     application simulations. We provide such an implementation for the
211     SimGrid simulation toolkit.\n
212     ftp://ftp.ens-lyon.fr/pub/LIP/Rapports/RR/RR2002/RR2002-40.ps.gz
213
214
215 \li <b>MetaSimGrid : Towards realistic scheduling simulation of
216         distributed applications</b>\n
217     by <em>Arnaud Legrand and Julien Lerouge</em>\n
218     Most scheduling problems are already hard on homogeneous
219     platforms, they become quite intractable in an heterogeneous
220     framework such as a metacomputing grid. In the best cases, a
221     guaranteed heuristic can be found, but most of the time, it is
222     not possible. Real experiments or simulations are often
223     involved to test or to compare heuristics. However, on a
224     distributed heterogeneous platform, such experiments are
225     technically difficult to drive, because of the genuine
226     instability of the platform. It is almost impossible to
227     guarantee that a platform which is not dedicated to the
228     experiment, will remain exactly the same between two tests,
229     thereby forbidding any meaningful comparison. Simulations are
230     then used to replace real experiments, so as to ensure the
231     reproducibility of measured data. A key issue is the
232     possibility to run the simulations against a realistic
233     environment. The main idea of trace-based simulation is to
234     record the platform parameters today, and to simulate the
235     algorithms tomorrow, against the recorded data: even though it
236     is not the current load of the platform, it is realistic,
237     because it represents a fair summary of what happened
238     previously. A good example of a trace-based simulation tool is
239     SimGrid, a toolkit providing a set of core abstractions and
240     functionalities that can be used to easily build simulators for
241     specific application domains and/or computing environment
242     topologies. Nevertheless, SimGrid lacks a number of convenient
243     features to craft simulations of a distributed application
244     where scheduling decisions are not taken by a single
245     process. Furthermore, modeling a complex platform by hand is
246     fastidious for a few hosts and is almost impossible for a real
247     grid. This report is a survey on simulation for scheduling
248     evaluation purposes and present MetaSimGrid, a simulator built
249     on top of SimGrid.\n
250     ftp://ftp.ens-lyon.fr/pub/LIP/Rapports/RR/RR2002/RR2002-28.ps.gz
251
252 \li <b>SimGrid: A Toolkit for the Simulation of Application
253         Scheduling</b>\n
254     by <em>Henri Casanova</em>\n
255     Advances in hardware and software technologies have made it
256     possible to deploy parallel applications over increasingly large
257     sets of distributed resources. Consequently, the study of
258     scheduling algorithms for such applications has been an active area
259     of research. Given the nature of most scheduling problems one must
260     resort to simulation to effectively evaluate and compare their
261     efficacy over a wide range of scenarios. It has thus become
262     necessary to simulate those algorithms for increasingly complex
263     distributed, dynamic, heterogeneous environments. In this paper we
264     present SimGrid, a simulation toolkit for the study of scheduling
265     algorithms for distributed application. This paper gives the main
266     concepts and models behind SimGrid, describes its API and
267     highlights current implementation issues. We also give some
268     experimental results and describe work that builds on SimGrid's
269     functionalities.\n
270     http://grail.sdsc.edu/papers/simgrid_ccgrid01.ps.gz
271
272 \subsection research Papers using SimGrid results
273
274 \li <b>Optimal algorithms for scheduling divisible workloads on
275        heterogeneous systems</b>\n
276     by <em>Olivier Beaumont and Arnaud Legrand and Yves Robert</em>\n
277    In this paper, we discuss several algorithms for scheduling
278    divisible loads on heterogeneous systems. Our main contributions
279    are (i) new optimality results for single-round algorithms and (ii)
280    the design of an asymptotically optimal multi-round algorithm. This
281    multi-round algorithm automatically performs resource selection, a
282    difficult task that was previously left to the user. Because it is
283    periodic, it is simpler to implement, and more robust to changes in
284    the speeds of processors or communication links. On the theoretical
285    side, to the best of our knowledge, this is the first published
286    result assessing the absolute performance of a multi-round
287    algorithm.  On the practical side, extensive simulations reveal
288    that our multi-round algorithm outperforms existing solutions on a
289    large variety of platforms, especially when the
290    communication-to-computation ratio is not very high (the difficult
291    case).\n
292    ftp://ftp.ens-lyon.fr/pub/LIP/Rapports/RR/RR2002/RR2002-36.ps.gz
293 \li <b>On-line Parallel Tomography</b>\n
294     by <em>Shava Smallen</em>\n
295     Masters Thesis, UCSD, May 2001
296 \li <b>Applying Scheduling and Tuning to On-line Parallel Tomography </b>\n
297      by <em>Shava Smallen, Henri Casanova, Francine Berman</em>\n
298      in Proceedings of Supercomputing 2001
299 \li <b>Heuristics for Scheduling Parameter Sweep applications in
300          Grid environments</b>\n
301     by <em>Henri Casanova, Arnaud Legrand, Dmitrii Zagorodnov and 
302             Francine Berman</em>\n
303     in Proceedings of the 9th Heterogeneous Computing workshop 
304     (HCW'2000), pp349-363.
305 */