Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Wygday 2008

767 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Wygday 2008

  1. 1. Emplacement éventuel pour votre logo<br />
  2. 2. La loi de Moore et ses conséquences…<br />http://public.itrs.net/<br />
  3. 3. 10,000<br />Microprocesseur<br />2001<br />Réseau<br />1,000<br />Intel Cancels Top-Speed Pentium 4 Chip<br />Thu Oct 14, 6:50 PM ET Technology - Reuters <br />Intel …canceled plans to introduceitshighest-speed desktop computer chip, ending for now a 25-yearrunthat has seen the speeds of Intel&apos;smicroprocessorsincrease by more than 750 times.<br />1997<br />Disques<br />Architecture d’aujourd’hui :<br />Le temps d’accès mémoire ne soutient pas les progrès des vitesses d’horloge des CPU<br />Mémoire<br />100<br />Amélioration relative de la bande passante<br />1993<br />10,000<br />10<br />1,000<br />1989<br />L’amélioration en temps de latence équivaut à celle en bande passante<br />CPU Clock Speed<br />100<br />Vitesse (MHz)<br />1985<br />1<br />DRAM Access Speed<br />10<br />1982<br />1 10 100<br />1990 1997 2004<br />Amélioration relative du temps de latence<br />Jason Patterson, « Modern Microprocessors »<br />David Patterson, « LatencylagsBandwidth »<br />Hardware : au seuil d’un changement de paradigme<br />
  4. 4. L’architecture des CPU aujourd’huiLa chaleur devient un problème insurmontable<br />Surface du soleil<br />10,000<br />1,000<br />100<br />10<br />1<br />Jet de gaz d’une fusée<br />Réacteur nucléaire<br />Pentium®<br />Densité de puissance (W/cm2)<br />8086<br />Assiette chaude<br />4004<br />8085<br />8008<br />386<br />286<br />486<br />8080<br />1970 1980 1990 2000 2010<br />Intel Developer Forum, Printemps 2004 - Pat Gelsinger<br />
  5. 5. Evolutions des CPU : 2004 - 2010<br />Discontinuité ! <br />2008 : 8 cœurs, 16 processeurs logiques<br />2010 : 32 cœurs, 128 processeurs logiques<br />Doublement de la densité par unité de surface tous les 18 mois<br />128 processeurs logiques par chip dans moins de 48 mois<br />
  6. 6. Une vue à 5 ans…<br />Intel Developer Forum Fall 2006<br />
  7. 7. Etendue du spectre du parallélisme<br />Parallélisme inter-nœuds<br />Parallélisme intra-nœuds<br />
  8. 8. La programmation parallèle reste un art difficile…<br />Analyse des causes profondes des bogues<br />Hot fixes pour Windows 2000<br />Les erreurs de parallélisme constituent les défauts les plus communs parmi les « erreurs détectables »<br />26 % des défauts analysés étaient des race conditions ou des deadlocks (14 parmi 52)<br />Une synchronisation incorrecte et des erreurs de protocole constituent les défauts les plus communs parmi toutes les erreurs de codage<br />33 % des défauts analysés étaient dus à des erreurs de synchronisation ou de protocole (15 parmi 45)<br />Défauts de Windows Server 2003 (en fin de cycle de développement)<br />Les erreurs de synchronisation arrivent en second sur la liste, juste après les buffer overruns<br />13 % des défauts de fin de cycle de développement étaient dus à des erreurs de synchronisation<br />Initiative « No hangs »<br />12 % des blocages signalés d’IE sont dus à des bogues de synchronisation  <br />47% des blocages signalés de FrontPage sont dus à des bogues de synchronisation (XPSP1)<br />Etudes internes de Microsoft<br />Compilées par : Tony Andrews, James Larus, MadanMusuvathi, ShazQadeer, SriramK. Rajamani, Jakob Rehof<br />
  9. 9. 24 GHz, 1 Cœur <br />12 GHz, 1 cœur <br />6 GHz<br />1 Cœur <br />3 GHz, 4 Cœurs <br />3 GHz, 8 Cœurs<br />3 GHz<br />2 Cœurs <br />3GHz1 Cœur <br />Le changement est en marche<br />1 Cœur<br />Pas de progrès sans effort pour le logiciel traditionnel<br />(Sans un logiciel capable de fonctionner en parallèle, celui-ci n’ira pas plus vite !)<br />Progrès sans peine pour logiciel classique<br />(il s’exécute deux fois plus rapidement tous les 18 mois sans aucun changement !)<br />2 Cœurs<br />Operations par seconde pour un code exécuté en série<br />4 Cœurs <br />8 Cœurs <br />Opérations supplémentaires par seconde si l’on peut tirer partie du parallélisme<br />
  10. 10. Qu’est-ce qu’un processeur Many-Core ?Un System on a Chip, modulaire, hétégorène et multiprocesseur<br />Serveur : 350 mm2, 120 W, 2000 $<br />Desktop : 200 mm2, 100 W, 400 $<br />Ultra-Mobile : 40 mm2, 5 W, 50 $<br />(2008 45 nm process)<br />
  11. 11. Le Many-Core nécessite des ajustements à travers toute la pile<br />Applications<br />Construction d’applications parallèles<br />Librairies<br />Exécution d’applications parallèles à grain fin<br />Langages, Compilateurs et outils<br />ConcurrencyRuntime<br />Coordination des ressources système et des services<br />OS/Hyperviseur<br />Hardware<br />
  12. 12. Les impacts sur les modèles de développement<br />
  13. 13. Modèles de programmation<br />Agents asynchrones (composition)<br />Passages de message entre domaines isolés<br />Programmation standard impérative pour réagir aux messages<br />Tolérance à la latence par construction<br />La parallélisme est relié à la structure du programme<br />Collections parallèles (décomposition)<br />Parallélisme des données imbriquée<br />Utilisation opportuniste du parallélisme<br />Constructions structurées qui conviennent la complexité<br />Transactions (interactions)<br />Remplacer les verrous par des concepts plus intentionnels<br />Intégrer avec les actions distribuées au travers des agents<br />Support spécial pour les mises à jour en mémoire<br />
  14. 14. Le futur des outils de développement<br />DSL<br />
  15. 15. Les systèmes deviennent plus complexes<br />Volume croissant<br />Des données<br />Du code<br />Évolutivité croissante<br />De la partie métier (mondialisation, concentrations, restructurations, …)<br />De la partie plate-forme d’exécution<br />Hétérogénéité croissante<br />Des langages et des paradigmes<br />Des supports de données et des protocoles d’accès d’<br />Des systèmes et des plates-formes<br />Des technologies<br />Le rythme d’arrivée des nouvelles technologies s’accélère<br />Ce rythme ne se ralentira pas<br />Les vielles technologies ne meurent pas, elles se cachent<br />
  16. 16. Un exemple typique…<br />Un jeune ingénieur en sortie de Bac+5 et ayant des connaissances de base en Java, XML et UML se voit invité, lors de son arrivée en entreprise et avant de commencer son travail, à lire le lundi le rapport public J2EE v1.4 de 228 pages<br />Dans les six premières pages de ce rapport il est fait référence à : EJB, JSP, JMS, JMX, JCA, JAAS, JAXP, JDBC, JNDI<br />Cette nouvelle version de J2EE est la version Web services et on suppose donc connus les concepts SOAP, SAAJ, JAX-RPC et JAXR<br />Chacun des acronymes cités correspond à une spécification<br />La spécification de EJB 2.1 correspond à un document PDF de 640 pages qui sera lu le mardi<br />Le mercredi sera consacré à la lecture du document Servlet 2.4 PFD specification de 307 pages<br />Le jeudi il s’attaque à la lecture du document JSP 2.0 PFD spécification de 374 pages<br />Et ainsi de suite …<br />Au bout d’un mois de lectures, notre ingénieur est enfin prêt à commencer le travail productif …<br />D’après « Is complexityhurtingJava ? » de Jason Weiss, <br />dans Java Developer’sJournal, Vol. 7, Issue 10, Octobre 2002.<br />- 16 -<br />
  17. 17. Croissance de la complexité des spécifications<br />d’après Interactive-Objects<br />
  18. 18. La crise du logiciel en chiffres<br />Dépense de 250 milliards de $ par an sur du développement logiciel aux US (en moyenne 430 K$ à 2,3 M$ par projet)<br />16 % de ces projets sont terminés à temps tout en respectant leur budget <br />31 % de ces projets sont abandonnés principalement en raison de problèmes de qualité, pour une perte de 81 milliards de $ par an<br />53 % coûtent plus cher qu’attendu, dépassant leur budget de 189 % en moyenne, ce qui correspond à un perte de 59 milliards de $ par an<br />Les projets qui se terminent délivrent en moyenne seulement 42% des fonctionnalités planifiées initialement<br />Source : Standish Group 2004<br />
  19. 19. D’après « Kurzweil, Moore, and Accelerating Change », IlkkaTuomi, <br />http://www.jrc.es/~tuomiil/articles/Kurzweil.pdf<br />
  20. 20. Le développement logiciel comme un artisanat<br />Travail intensif<br />Outils génériques<br />Processus génériques<br />Applications uniques<br />« Cousu main » depuis le début<br />Réutilisation minime<br />Débordements, défauts, trous de sécurité, échecs des projets<br />
  21. 21. Que faire ?<br />(… sachant que de ne rien faire est une option de plus en plus coûteuse et dangereuse)<br />(… sachant que la complexité a atteint un tel niveau qu’il est hors de portée d’un seul individu d’avoir une vision globale sur un système en évolution)<br />Accélérer encore la course aux nouvelles technologies dans l’espoir qu’une nouvelle solution magique se présente ? Fuite en avant ?<br />Les technologies doivent être évaluées essentiellement pour leur capacité <br />d’intégration<br />de maîtrise de la complexité <br />
  22. 22. Usines à logiciel<br />Processus spécifiques au domaine<br />Outils & langages spécifique au domaine<br />Contenu spécifique au domaine<br />Automatise les tâches subalternes et machinales<br />S’améliore grâce à l’expérience et la mesure<br />Des IDE d’usage général deviennent des usines à logiciel spécifiques au domaine<br />
  23. 23. Augmenter le niveau d’abstraction<br />« The history of programmingis an exercise in hierarchical abstraction. In eachgeneration, language designers produceconstructs for lessonslearned in the previousgeneration, and thenarchitects use them to build more complex and powerful abstractions. » (Smith and Stotts)<br />
  24. 24. ¶C(x) h2¶ 2C(x)<br />¶ t 2m ¶ x2<br />ih = –<br />Call<br />Record<br />base rate: £/s<br /><br />call length<br />store<br />call<br />jo biscuits 24 green<br />pat cakes 32 pink<br />Employee<br />name<br />address<br />promote<br />Job<br />description<br />pay<br />assign<br />0..*<br />Domain Specific Languages<br />Déclaratif<br />a&gt;b && c==d<br />&lt;CallRecord&gt;<br /> &lt;caller&gt;&lt;number&gt;07713248&lt;/number&gt;<br />Textuel<br />Illustré<br />classMagnox : NuclearPowerStation{<br />public voiddropRods ()<br />Procedural<br />
  25. 25. Domain Specific Languages<br />Focalisé sur un seul aspect de la construction d’application<br />Succès significatif dans de larges domaines horizontaux : SQL, Windows Form Designer<br />Conçu pour supporté les concepts définis par un framework sous-jacent<br />Automatise les tâches machinales avec une génération efficace de code<br />Améliore l’agilité au visualisant les concepts, en générant du code et d’autres artéfacts, permettant ainsi des itérations rapides<br />Les construire doit être rapide, peu coûteux et facile<br />
  26. 26. Les éléments d’un DSL<br />Concepts et règles de bonne <br />formation<br />Notations et<br />mises en correspondance<br />Sérialisation XML<br />Artéfacts générés et reliés<br />
  27. 27. Implémenter un DSL<br />Concepteur du langage de modélisation (outil)<br />Alimente la conception dulangage / outil<br />Développeur<br />Ajoute des détails au design<br />c’est-à-dire des métadonnées supplémentaires pourconduire la génération du code<br />Générer le code<br />Concepteurde logiciels/<br />Systèmes<br />Ajoute du code (optionnel)<br />
  28. 28. Constuire une application<br />1. Créer des modèles<br />2. Stocker et partager ces modèles<br />4. Déployer, exécuter, gérer l’application<br />3. Ajouter des composants<br />
  29. 29. Oslo en bref<br />Services – étendre les services depuis le client à l’Internet<br />Modèles – Faire des modèles un élément clé du développement<br />APPLICATIONS<br />SERVICES<br />MODELES<br />Oslo<br />
  30. 30. Virtualisation du Datacenter aujourd&apos;hui<br />Gestion physique et virtuelle<br />.NET<br />IIS<br />.NET<br />Exchange<br />Oracle<br />Consolidation de serveur <br />Provisionnement accéléré<br />PRA/PCA<br />Dev/Test<br />
  31. 31. L&apos;émergence d&apos;un datacenter dynamique<br />Modèles<br />Management<br />Virtualisation d’applications<br />.NET<br />.NET<br />Virtualisationdu hardware <br />Datacenters Physiques<br />

×