Logo AND Algorithmique Numérique Distribuée

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