Logo AND Algorithmique Numérique Distribuée

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