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