Wygday 2008

586 vues

Publié le

Publié dans : Technologie, Business
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
586
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Agents are “parallel by construction”
  • 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 />

    ×