source: presentations/09-20-2006_CMT_JI06/Index.htm@ 176

Last change on this file since 176 was 176, checked in by garonne, 19 years ago

correctio mise en page mineurs

File size: 18.6 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="fr">
3
4<head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta http-equiv="Content-Language" content="ja"/>
7 <meta http-equiv="Content-Style-Type" content="text/css"/>
8 <meta http-equiv="Content-Script-Type" content="text/javascript"/>
9 <title>JI'06: CMT</title>
10
11 <meta name="author" content="Vincent Garonne"/>
12 <meta name="description" content="description€‚"/>
13 <meta name="keywords" content="XHTML, CSS, HTML, (X)HTML"/>
14 <link rev="made" href="mailto:garonne@lal.in2p3.fr">
15 <link rel="stylesheet" href="../Tools/v2/css/screen.css" type="text/css" media="screen, projection, tv, print">
16 <link rel="stylesheet" href="..Tools/v2/Slidy/slidy-toc.css" type="text/css" media="screen, projection, print">
17
18 <script src="../Tools/v2/Slidy/slidy.js" type="text/javascript"></script>
19 <script src="../Tools/v2/Slidy/slidy-toc.js" type="text/javascript"></script>
20</head>
21
22
23<body style="font-size: 18pt;">
24
25<!-- Cover -->
26<div class="slide" id="cover">
27
28 <div class="callout">
29 <p id="title">L'outil de gestion de configuration:<br> <a href="http://www.cmtsite.org/">CMT</a></p>
30 <p>&Eacute;tat actuel et futures &eacute;volutions</p>
31 </div>
32 <!--<q></q>-->
33 <p>Christian Arnault,
34 &lt;<a href="mailto:arnault@lal.in2p3.fr">arnault@lal.in2p3.fr</a>&gt;</p>
35 <p><a href="http://www.lal.in2p3.fr/~garonne">Vincent Garonne</a>,
36 &lt;<a href="mailto:garonne@lal.in2p3.fr">garonne@lal.in2p3.fr</a>&gt;</p>
37
38 <br>
39 <p id="date">20 Septembre 2006<br></p>
40 <p id="event"><a href="http://ji.in2p3.fr/">Journées Informatique IN2P3-DAPNIA</a>, Lyon-Valpr&#233;</p>
41</div>
42
43<!--<div class="slide toc"> <h1>Table of contents</h1> </div> -->
44<!-- Diapo -->
45<div class="slide">
46 <h1>CMT en moins d'une minute</h1>
47 <div class="callout">
48 <h2><span style="color: #ff0000;">C</span>onfiguration <span style="color: #ff0000;">M</span>anagement <span style="color: #ff0000;">T</span>ool</h2>
49 <div style="padding-left: 2em;">
50 <li>Outil pour la configuration logicielle</li>
51 <li>D&eacute;velopp&eacute; par le LAL depuis 1996</li>
52 <li>Approche <q>Open source</q> (Licence <a href="http://www.cecill.info/licences/Licence_CeCILL_V2-en.html">CeCILL v2</a>)</li>
53 <li>En production:</li>
54 <div style="padding-left: 1em;">
55 <li>LHC: ATLAS, LHCb</li>
56 <li>Virgo, Planck, GLAST</li>
57 <li>Etc.</li>
58 </div>
59 </div>
60 </div>
61</div>
62
63<!-- Introduction [Start] -->
64<div class="slide">
65 <br>
66 <div class="callout">
67 <h2>Sommaire</h2>
68 <ol>
69 <li><a href="#(4)">Rappel</a></li>
70 <li><a href="#(5)">Principes et illustration</a></li>
71 <li><a href="#(9)">Implication de son utilisation</a></li>
72 <li><a href="#(10)">Quelques outils associ&eacute;s</a></li>
73 <li><a href="#(12)">R&eacute;f&eacute;rences</a></li>
74 </ol>
75 </div>
76</div>
77<!-- -->
78
79<!-- Introduction [Start] -->
80<div class="slide">
81 <h1>La gestion de configuration logicielle</h1>
82 <ul>
83 <li>Identifier les composants d'un logiciel
84 <ul>
85 <li>Code, param&egrave;tres de fabrication et d'utilisation</li>
86 <li>M&eacute;thodes et strat&eacute;gies de gestion: construction, tests, d&eacute;ploiement, documentation</li>
87 </ul>
88 </li>
89 <li>Contr&ocirc;ler leur &eacute;volution
90 <ul>
91 <li>Liaison avec un outil de contr&ocirc;le de version (CVS/Svn)</li>
92 <li>Gestion du cycle de vie</li>
93 </ul>
94 </li>
95 <li>Structurer la base logicielle
96 <ul>
97 <li>D&eacute;composition en packages et projets</li>
98 <li>Affectation des responsabilit&eacute;s</li>
99 <li>Communication entre projets collaboratifs</li>
100 </ul>
101 </li>
102 </ul>
103</div>
104
105<!-- Introduction [1] -->
106<div class="slide">
107 <h1>Principes</h1>
108 <ul>
109 <li>CMT utilise <em>une base logicielle</em></li>
110 <li>La base logicielle est d&eacute;compos&eacute;e en projets
111 <ul>
112 <li>Un projet fournit une zone d'acc&egrave;s aux packages
113 <ul>
114 <li>Un package est une entit&eacute; minimale de structuration/composant de la base logicielle</li>
115 </ul>
116 </li>
117 <li>Zone d'acc&egrave;s sp&eacute;cifiable par variable d'environnement
118 <ul>
119 <li><pre>CMTPATH = zone1:zone2:zone3 ou CMTPROJECTPATH = zone1:zone2:zone3</pre></li>
120 </ul>
121 </li>
122 </ul>
123 </li>
124 <li>CMT g&egrave;re les d&eacute;pendances actives entre projets et packages
125 <ul>
126 <li>Transmission (h&eacute;ritage) des propri&eacute;t&eacute;s de configuration</li>
127 <li>Fichiers de sp&eacute;cifications formant une base de donn&eacute;es</li>
128 <li>Gestion du graphe de d&eacute;pendance par CMT
129 <ul>
130 <li>Navigation, requ&ecirc;tes dans la base de donn&eacute;es</li>
131 </ul>
132 </li>
133 <li>Sp&eacute;cification des contraintes de version</l
134 </ul>
135 </li>
136 </ul>
137</div>
138
139<!-- Diapo -->
140<div class="slide">
141 <h1>Illustration</h1>
142 <div class="incremental" style="margin-left: 4em; position: relative;">
143 <img src="Images/illustration3.png" style="position: static;" />
144 <img src="Images/illustration4.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
145 <img src="Images/illustration5.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
146 <img src="Images/illustration.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
147 <img src="Images/illustration6.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
148 <img src="Images/illustration7.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
149 <img src="Images/illustration8.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
150 <img src="Images/illustration2.png" style="background: white; position: absolute; left: 0pt; top: 0pt;" />
151 </div>
152</div>
153
154<div class="slide">
155 <h1>Sp&eacute;cification d'un package</h1>
156 <ul class="outline">
157 <li>D&eacute;crire les &eacute;l&eacute;ments de la configuration du package
158 <ul>
159 <li>Un package peut contenir
160 <ul>
161 <li>Des librairies, des applications (tous langages)</li>
162 <li>Des scripts (shell, python, Root, ...)</li>
163 <li>Des documents (documentation, XML, GUI, ...)</li>
164 <li>Des param&egrave;tres de configuration, des m&eacute;thodes de gestion</li>
165 <li>Sp&eacute;cification des contraintes de version pour les d&eacute;pendances</li>
166 </ul>
167 </li>
168 </ul>
169 <li>Un package doit contenir un fichier <em>cmt/requirements</em>
170 <ul>
171 <li>E.g:
172 <pre><em><font color="red">package</font></em> A <i><font color="green"># nom du package</font></i>
173<em><font color="red">author</font></em> garonne@lal.in2p3.fr <i><font color="green"># responsable du package</font></i>
174<em><font color="red">use</font></em> B v0r33 <i><font color="green"># d&eacute;pendances</font></i>
175<em><font color="red">application</font></em> A A.cxx B.cxx C.cxx <i><font color="green"># constituants</font></i>
176<em><font color="red">path_prepend</font></em> PATH $(bin) <i><font color="green"># param&egrave;tres</font></i>
177
178<i><font color="green"># m&eacute;thodes de gestion et conventions</font></i>
179<em><font color="red">apply_pattern</font></em> unit_tests
180<em><font color="red">action</font></em> install 'do_install'\
181 WIN32 ''</pre>
182 </li>
183 </ul>
184 </li>
185 </ul>
186</div>
187
188<div class="slide">
189 <h1>Sp&eacute;cification d'un projet</h1>
190 <ul class="outline">
191 <li>Un projet contient des packages
192 <ul>
193 <li>E.g. arborescence:
194 <pre>/area1/ProjectA/1.0/cmt/project.cmt
195 /PackageA/v1/cmt/requirements
196 /PackageA/v1/src
197 /PackageA/v1/include
198 ...
199 /PackageB/v1/cmt/requirements
200 /PackageB/v1/src
201 /PackageB/v1/include
202 ...</pre>
203 </li>
204 </ul>
205 </li>
206 <li>Un projet doit contenir un fichier <em>cmt/project.cmt</em>
207 <ul>
208 <li>E.g:
209 <pre><pr><em><font color="red">project</font></em> Atlas <i><font color="green"># Nom de projet</font></em>
210<i><font color="green"># d&eacute;pendances</font></em>
211<em><font color="red">use</font></em> Simulation 1.0
212<em><font color="red">use</font></em> reconstruction
213
214<em><font color="red">container</font></em> AtlasRelease v1 <i><font color="green"># Conteneur</font></em>
215
216<i><font color="green"># Strat&eacute;gies applicables aux packages du projet</font></em>
217<em><font color="red">build_strategy</font></em> ...
218<em><font color="red">setup_strategy</font></em> ...
219</pre>
220 </li>
221 </ul>
222 </li>
223 </ul>
224</div>
225
226<!-- Diapo -->
227<div class="slide" >
228 <h1>Implication</h1>
229 <ul>
230 <li>Automatisation compl&egrave;te des &eacute;tapes de production
231 <ul>
232 <li>Compilation, liens, tests, g&eacute;n&eacute;ration de la doc, installation</li>
233 </ul>
234 </li>
235 <li>Configurations multi-plateformes automatis&eacute;es
236 <ul>
237 <li>Tout &eacute;l&eacute;ment de la configuration peut &ecirc;tre sp&eacute;cialis&eacute; selon</li>
238 <li>La plate-forme (Linux, Windows, MacOSX, LynxOS, RH, RHEL, Debian, ...)</li>
239 <li>Le site (LAL, CERN, LBL, ...)</li>
240 <li>Le contexte du projet (Atlas, LHCb, Virgo, ...)</li>
241 <li>Le contexte de production (debug, opt, ...)</li>
242 <li>Des choix de technologie (MySQL vs Oracle, Qt vs Gtk, etc...)</li>
243 </ul>
244 </li>
245 <li>Compr&eacute;hension &agrave; priori de tout &eacute;l&eacute;ment de la configuration
246 <ul>
247 <pre>>cmt show &lt;macro&gt;|&lt;tags&gt;|&lt;uses&gt;|...</pre></li>
248 </ul>
249 </li>
250 </ul>
251</div>
252
253<!-- Diapo -->
254<div class="slide">
255 <h1>Quelques outils associ&eacute;s</h1>
256 <ul>
257 <li>Visualisation de graphes de d&eacute;pendance: <a href="">cmtgrapher</a></li>
258 <br>
259 <li>Interface avec CVS: <a href="http://www.cmtsite.org/cmtcvs/cmtcvs.html">plugin cmtcvs</a></li>
260 <br>
261 <li>Documentation: <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a></li>
262 <br>
263 <ul class="outline">
264 <li>D&eacute;ploiement: <a href="http://physics.bu.edu/~youssef/pacman/">PACMAN</a>
265 <ul>
266 <li>Pacman g&egrave;re un parc distribu&eacute; de packages structur&eacute;s en kit (kit=fichier de sp&eacute;cification, archive)</li>
267 <li>D&eacute;finit des concepts tr&egrave;s riches de caches virtuels</li>
268 <li>Base de connaissance de CMT est utilis&eacute;e pour
269 <ul>
270 <li>fabriquer les kits Pacman</li>
271 <li>Remplir les caches Pacman</li>
272 </ul>
273 </li>
274 </ul>
275 </li>
276 <br>
277 <li>Ex&eacute;cution multi-thread&eacute;: <a href="http://www.lal.in2p3.fr/~garonne/presentations/09-06-2006_SIT_CMT/Index.htm">tbroadcast</a>
278 <ul>
279 <li>Ex&eacute;cution en parall&egrave;le de commande dans les packages en respectant les d&eacute;pendances</li>
280 <li>Utile pour la compilation (<a href="#(11)">Test&eacute; avec ATLAS/LHCb</a>)</li>
281 </ul>
282 </li>
283 </ul>
284</div>
285
286<!-- Diapo -->
287 <div class="slide">
288 <h1>Exemple: Compilation multi-thread&eacute;</h1>
289 <table class="noborder">
290 <tbody>
291 <tr>
292 <td class="noborder">
293 <ul>
294 <li> Soit les packages A, B, C, D, E</li>
295 </ul>
296 </td>
297 <td class="noborder">
298 <ul>
299 <li>Graphe d'ex&eacute;cution:</li>
300 </ul>
301 </td>
302 </tr>
303 <tr>
304 <td class="noborder">
305 <ul>
306 <li> Soit les d&eacute;pendances:
307 <ul>
308 <li>A utilise {B, C}</li>
309 <li>C utilise {D, E}</li>
310 </ul>
311 </li>
312 </ul>
313 </td>
314 <td class="noborder">
315 <img src="Images/graph.png" height="150" width="280" alt="Dependency graph"/>
316 <!--
317 height="" width="50%" left: 700px; top:150px;position:relative;top:0px;left: 0px;
318 <img src="Images/graph.png" style="margin-top:1em" alt="Dependency graph"/>
319 -->
320 </td>
321 </tr>
322 <tr>
323 <td class="noborder">
324 <ul>
325 <li>Diagramme de Gantt:</li>
326 </ul>
327 </td>
328 </tr>
329 <tr>
330 <td class="noborder">
331 <ul class="incremental">
332 <ul style="margin-left:1em">1) Mode s&eacute;quentiel:</ul>
333 </ul>
334 <div class="incremental" style="position: relative;">
335 <img src="Images/Gantt.png" height="210" width="400"/>
336 <img src="Images/Gantt1.png" style="position: absolute; left: 0pt; top: 0pt;" height="210" width="400">
337 </div>
338 <!-- -->
339 </td>
340 <td class="noborder">
341 <ul class="incremental">
342 <ul>2)Mode multi-threaded:</ul>
343 <img src="Images/Gantt2.png" height="210" width="400"/>
344 </ul>
345 <!-- -->
346 </td>
347 </tr>
348 </tbody>
349 </table>
350</div>
351
352<!-- Diapo -->
353<div class="slide">
354 <h1>Les projets d'ATLAS</h1>
355 <div>
356 <img src="Images/atlasgraph.png" width="60%" height="60%"/>
357 </div>
358 <div class="sidebar" style="position: absolute; left: 58%;top: 40%; font-size:0.7em;">
359 <li>~2 Million de lignes</li>
360 <li>~9 projets</li>
361 <li>~1000 packages</li>
362 <li>~500 d&eacute;veloppeurs</li>
363 <li>~10 h. de compilation</li>
364 <li>~10 giga</li>
365 </div>
366</div>
367
368<!-- Diapo -->
369<div class="slide">
370<h1>Compilation multi-thread&eacute; et ATLAS</h1>
371<h3>Nombre de threads=60, un projet de 136 packages<br>
372gain =~ facteur 2 avec <a href="http://distcc.samba.org/">distcc</a></h3>
373 <div style="text-align: center;">
374 <img src="Images/paw.png" width="55%" height="55%"/>
375 </div>
376
377<!--<div class="hfill"> </div>
378 <div style="text-align: center;">
379 <object data="paw.svg" type="image/svg+xml" title="Indian Office logo" height="100%" width="100%">
380 </object>
381 </div>-->
382</div>
383
384
385<div class="slide">
386 <h1>Tout l'apanage d'un projet <q>open source</q></h1>
387 <ul>
388 <li>Version courante: <em>v1r18p20060606</em>
389 <ul>
390 <li>Source, OSF1-alpha, Linux-xxx, SunOS, AIX, VisualC, CYGWIN, PowerMacintosh</li>
391 <li>Install&eacute;s automatiquement au CERN et LAL</li>
392 <li>Disponible aussi par des caches Pacman</li>
393 </ul>
394 </li>
395 <li>Site Web: <a href="http://www.cmtsite.org">www.cmtsite.org</a></li>
396 <li>Release note: <a href="http://www.cmtsite.org/ReleaseNotes.html">www.cmtsite.org/ReleaseNotes.html</a></li>
397 <li>Serveur Trac: <a href="http://trac.lal.in2p3.fr/CMT">trac.lal.in2p3.fr/CMT</a>
398 <ul>
399 <li>Soumission de ticket, etc. (voir pr&eacute;sentation <a href="">Trac</a>)</li>
400 </ul>
401 </li>
402 <li>Repository Svn:<em>http://svn.lal.in2p3.fr:/projects/CMT/</em></li>
403 <li><a href="">Documentation</a>, <a href="">FAQs</a>, <a href="">Tutoriels</a>, <a href="">exemples</a>,
404 <a href="http://www.cmtsite.org/Doxygen/html/index.html">Documentation du code (doxygen)</a></li>
405 <li>Mailing list archiv&eacute;e:&lt;<a href="mailto:CMT-L@in2p3.fr">CMT-L@in2p3.fr</a>&gt;
406 <ul>
407 <li>63 abonn&eacute;s &agrave; ce jour</li>
408 </ul>
409 </li>
410 <li>Bient&ocirc;t flux rss pour les annonces</li>
411 </ul>
412</div>
413
414
415<!-- Diapo
416<div class="slide" >
417 <h1>Conclusions & perspectives</h1>
418</div>
419-->
420
421<!-- [End] -->
422</body>
423</html>
Note: See TracBrowser for help on using the repository browser.