Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
make-up
[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 \htmlinclude index.toc
10
11 \section hot_news HOT NEWS
12
13 <b>SimGrid 3.0.1 was released on 22st of October 2005. Get it from
14 <a href="https://gforge.inria.fr/frs/?group_id=12">here</a>.</b> 
15
16 \section quick Quick start
17
18 SimGrid is a toolkit that provides core functionalities for the simulation
19 of distributed applications in heterogeneous distributed environments.
20 The specific goal of the project is to facilitate research in the area of
21 distributed and parallel application scheduling on distributed computing
22 platforms ranging from simple network of workstations to Computational
23 Grids.
24
25 \subsection quick_dl Getting and installing the software
26
27   - The official webpage is <a href="http://simgrid.gforge.inria.fr/">simgrid.gforge.inria.fr</a>. 
28   - The development webpage is <a href="https://gforge.inria.fr/projects/simgrid//">gforge.inria.fr/projects/simgrid</a>. 
29   - The user mailing list is <simgrid-user@lists.gforge.inria.fr>
30   - The SimGrid software package can be downloaded from <a href="https://gforge.inria.fr/frs/?group_id=12">here</a>. 
31
32 To compile and install it, simply type the following. If you are not
33 familiar with compiling C files under UNIX and using libraries, please check
34 the \ref faq. SimGrid also works under Windows, but we do not distribute any
35 pre-compiled binaries [yet].
36
37 \verbatim $ ./configure
38  $ make all
39  [become root]
40  # make install\endverbatim
41  
42 \subsection quick_more More information
43
44 The API (along with some example of
45 use) is described in \ref SimGrid_API.
46
47 For more information about the SimGrid toolkit, please simply keep reading
48 this page. It is organized as follow:
49
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.
55
56 <hr>
57
58 \section overview Overview of the toolkit components
59
60 As depicted by the following diagram, the SimGrid toolkit is basically
61 three-layered (click on the picture to jump to a specific component).
62
63
64 \htmlonly
65 <center>
66 \endhtmlonly
67 \htmlinclude simgrid_modules.map
68 \htmlonly
69 <br><b>Relationships between the SimGrid components</b>
70 </center>
71 \endhtmlonly
72
73 \subsection overview_fondation Base layer
74
75 The base of the whole toolkit is constituted by the <b>\ref XBT_API
76 (eXtended Bundle of Tools)</b>.
77
78 It is a portable library providing some grounding features such as \ref
79 XBT_log, \ref XBT_ex and \ref XBT_config. XBT also encompass
80 the following convenient datastructures: \ref XBT_dynar, \ref XBT_fifo, \ref
81 XBT_dict, \ref XBT_heap, \ref XBT_set and \ref XBT_swag.
82
83 See the \ref XBT_API section for more details.
84
85 \subsection overview_kernel Simulation kernel layer
86
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.
91
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.
95
96 See the \ref SURF_API section for more details.
97
98 \subsection overview_envs Programmation environments layer
99
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. 
104
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.
112
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. 
117    
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. 
121    \n\n
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
126    efficient).
127    \n\n
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).
131    \n\n
132    See the \ref GRAS_API section for more details.
133
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.
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 <hr>
145
146 \section people People
147
148 SimGrid is a joint project between University of Hawai at Manoa, ID
149 Laboratory (Grenoble, France) and University of Nancy (France). The
150 authors of SimGrid are:
151
152  - Henri Casanova <casanova#cs.ucsd.edu> (Information and Computer Sciences Department, University of Hawai`i at Manoa)
153  - Arnaud Legrand <arnaud.legrand#imag.fr> ("Informatique et Distribution" Laboratory (Grenoble, France), MESCal project)
154  - Martin Quinson <martin.quinson#loria.fr> (University of Nancy (Nancy, France), LORIA Laboratory, Algorille project)
155
156 \subsection contributers Contributers and alumni project members
157
158  - Loris Marchal: wrote the algorithm for simulation TCP bandwidth-sharing.
159  - Julien Lerouge : wrote a XML parser for ENV descriptions and helped for
160    the general design during a 4 month period (march-june 2002) 
161    in the LIP.
162  - ClĂ©ment Menier and Marc Perache : wrote a first prototype of the MSG
163    interface during a project at ENS-Lyon (jan 2002). 
164  - Dmitrii Zagorodnov : wrote some parts of the first version of SimGrid
165    (1999). 
166
167 <hr>
168
169 */