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