Quelques réflexions sur le futur de l’informatique Bernard Ourghanlian Directeur Technique et Sécurité – Microsoft France Pour que les choses soient claires… Le présent est indéfini, le futur n’a de réalité qu’en tant qu’espoir présent, le passé n’a de réalité qu’en tant que souvenir présent. Jorge Luis Borges Extrait de Fictions Le rapport ops/s/$ a eu trois phases de croissance 1890-1945 Mécanique Relais Doublement en 7,5 ans 1945-1985 Tube, transistor,.. Doublement en 2,3 ans 1.E+09 ops par seconde/$ 1.E+06 double tous les ans 1.E+03 1985-2000 Microprocesseur Doublement en 1 an 1.E+00 1.E-03 Larry Roberts, 1969 double tous les 7,5 ans double tous les 2,3 ans 1.E-06 1880 1900 1920 1940 1960 1980 2000 La loi de Moore et ses conséquences • Le rapport prix/performance double tous les 18 mois • Un facteur 100 par décennie • Progression dans les 18 prochains mois = la somme de TOUS les progrès précédents – Nouveau stockage = la somme de tout l’ancien stockage (depuis l’origine des temps) – Nouvelles capacités de traitement = la somme de toutes les anciennes capacités de traitement (depuis l’origine des temps) • Escherichia coli double toutes les 20 minutes ! 15 ans auparavant Évolution du graphique • Amélioration par un facteur 100 en 3 ans 100 000 000 90 000 000 80 000 000 70 000 000 60 000 000 50 000 000 40 000 000 30 000 000 20 000 000 10 000 000 0 Triangles/ seconde 1998 1999 2000 2001 Performances graphiques temps réel Évolution du stockage de masse • Amélioration par un facteur 8 en 4 ans 160 140 120 100 80 60 40 20 0 Gigaoctets par disque 1998 1999 2000 2001 Augmentation de la densité des disques durs des PC Réseaux : la loi de Gilder 3 fois la bande passante/an pour les 25 prochaines années • Aujourd’hui : – 40 Gb/s par canal (λ) – 12 canaux par fibre (wdm) = 500 Gb/s – Groupe de 32 fibres = 16 Tb/s/groupe • Dans les laboratoires : 3 Tb/s/fibre (400 x WDM) • En théorie 25 Tb/s par fibre • 1 Tb/s = la totalité de la bande passante WAN aux • USA en 1996 ! La bande passante agrégée double tous les 8 mois! 1 fibre = 25 Tb/s Il y a donc quelques tendances favorables de l’industrie… • La loi de Moore continue de se vérifier – La plupart des experts s’accordent pour penser que la loi de Moore pourrait continuer d’exercer ses effets jusqu’à 16 nm, c’est-à-dire jusqu’à 2018 ou 2020 – Après cela, il se probablement nécessaire de recourir à une sorte de molecular computing ou à d’autres types de paradigmes qui restent à définir • Les capacités de traitement en parallèle augmentent à tous les niveaux : – Au sein d’un seul chip (plusieurs CPU / composant aujourd’hui) – Au sein d’un seul nœud (des dizaines de CPU / PC dès 2006) – Au travers la multiplicité de périphériques de plus petite taille (cartes à puce, RFID,…) Il y a donc quelques tendances favorables de l’industrie… • Les bus et interfaces hardware continueront de faire face aux évolutions de la loi de Moore en passant de plus en plus du « parallèle » au « série » ce qui aura l’effet de bord inattendu d’accélérer la « désagrégation des moyens de traitements » • La bande passante des réseaux locaux continuera d’augmenter : – Ethernet 20 Gb sera standard sur les PC dans les 5 ans • D’ici 3 ans, il sera moins cher d’ajouter une interface radio à un périphérique plutôt qu’une interface USB : – Les radios ont l’avantage de suivre la loi de Moore, ce que ne permettent pas les câbles de cuivre… – Ces deux courbes de coûts vont bientôt se croiser et il sera plus économique d’ajouter une interface radio plutôt qu’une interface USB D’autres tendances favorables de l’industrie… • De nombreux transistors seront utilisés sur les NIC afin de remplacer le logiciel qui s’exécute aujourd’hui dans les CPU : – – – – – RDMA (Remote DMA) et TCP Offload Chiffrement RAID Codec Audio et Video Parsing XML et SOAP • A partir de la fin de l’année, tous les PC seront 64 bits – L’année prochaine pour les portables • Tous les PC seront équipés de DSP en standard D’autres tendances favorables de l’industrie… • Les capacités de stockage et la puissance des cartes graphiques évoluent plus rapidement que la loi de Moore : – Les capacités disque doublent tous les 12 mois – Le débit des processeurs graphiques au sein de leur pipeline double tous les 12 mois D’autres tendances favorables de l’industrie… • Disques durs – La densité par unité de surface des plateaux des disques durs qui a crû d’environ 100 % par an, continuera d’évoluer sur la base de 50 à 60 % par an, ralentissant éventuellement à 30 % en 2008 – Un PC typique aura 1 TO en 2008 – En 2008, la seconde génération de disques SATA (Serial ATA) aura un taux de transfert (séquentiel) de 300 MO/s • Il faudra quand même de 4 à 5 heures pour sauvegarder un disque d’un TO (disque à disque) D’autres tendances favorables de l’industrie… • Disques amovibles – La capacité de stockage des CD et des DVD réinscriptibles augmentera à travers les technologies Blu-Ray (50 GO) ou HD-DVD (30 GO) ; ces technologies seront largement disponibles en 2006 – Il sera possible d’aller jusqu’à 1 TO par disque en 2012, à travers des techniques telles que le stockage holographique ou les MODS (multiplexed optical disk storage) – Il faudra trouver cependant un moyen d’accélérer les taux de transfert vers ces disques D’autres tendances favorables de l’industrie… • Mémoire flash – La mémoire flash doublera en densité chaque année pendant les années à venir – Le coût de ces mémoire qui approchera les 10$ par GO en 2008 (ou avant) restera cependant infiniment plus cher que son équivalent en disque dur Quelques points d’inflexion… • La densité des transistors augmente mais l’écart avec le temps d’accès à la mémoire se creuse : – La densité des transistors sur un CPU augmente d’environ 60 % par an (loi de Moore) – Les vitesses d’accès à la mémoire augmentent seulement de 3 % par an – Cela représente aujourd’hui plus de cycles d’horloge pour accéder la mémoire centrale depuis un Pentium IV de 2004 que cela ne prenait à un 80386 en 1988 pour aller récupérer des données depuis un disque dur (lent) Quelques points d’inflexion… Temps d’accès CPU/mémoire 1000 Intel CPU Cycle Time Memory Access Time nanoseconds 100 10 1 0 2003 2001 1999 1997 1995 1993 1991 1989 1987 1985 1984 1982 Source : Dean Klein, Micron Corporation Quelques points d’inflexion… • Intel a atteint la « barrière thermique » et a annoncé que tous les prochains CPU auraient au moins deux CPU ou plus par composant – Dans le futur, une diminution du temps de cycle sera difficile – La densité des transistors continuera cependant d’augmenter mais avec plus de CPU par composant plutôt que sous la forme de processeurs uniques plus rapides – Les nouveaux processeurs n’exhiberons PAS d’augmentation des GHz ou de bien meilleurs nombres de cycle par instruction (CPI) comme dans les années passées ; au lieu de cela, on utilisera la loi de Moore pour augmenter le niveau de parallélisme – On parle ici de CPU multi-cœurs et multithreads (Intel les appelle hyper-threads ; en fait prolongation de la notion de SMT – Simutaneous Multithread) Quelques points d’inflexion… • Cette tendance aura d’énormes conséquences sur l’industrie du logiciel : – Un code séquentiel qui s’exécute à une vitesse donnée « x » tournera toujours à la vitesse « x » 18 mois plus tard sur la prochaine génération de CPU – Un code bien conçu capable de s’exécuter en mode parallèle en utilisant les modèles de threading actuels reste très coûteux à écrire, à déboguer et à maintenir au cours du temps • L’effet de la loi de Moore (effet de second ordre sur la vitesse du logiciel) peut désormais être considéré comme marginal pour tous les codes séquentiels existants – Nous allons devoir être capables de créer du code parallèle (concurrent code) si l’on veut rejoindre la courbe performance/coût du hardware Quelques points d’inflexion… • Continuation de la prolifération des périphériques embarqués – Les périphériques embarqués de tous types auront des processeurs capables d’exécuter des applications « riches » pour une très faible consommation de courant – Par exemple, les téléphones portables en 2007 seront équivalents, en capacité de traitement, à un portable typique d’aujourd’hui, avec un processeur ARM 7 multi-cœur à 1,6 GHz (ou équivalent) Quelques points d’inflexion… • Reconfigurable Computing – Un certain nombre de nouvelles méthodologies de conception émergentes permettant la mise en œuvre de hardware reconfigurable à la volée bénéficieront essentiellement à l’embarqué – Les solutions de Tensilica et Stretch de type SOC (System On a Chip) permettront d’instancier des fonctions hardware nouvelles instantanément dans le hardware (DCT, conversion d’espace de couleurs), en temps réel – On peut donc imaginer ce type de hardware capable d’instancier « JIT » de nouvelles capacités en temps réel en fonction de la charge : DSP, ou d’autres types de coprocesseurs Quelques points d’inflexion… • GPU – Les GPU deviennent des entités de calcul et de traitement extrêmement conséquentes – on peut même imaginer que certains traitement vectoriels puissent utiliser l’énorme quantité de transistors des GPU, leur architecture naturellement parallèle et leur grande bande passante mémoire – En raison de l’apparition d’environnements graphiques PCI Express, cela sera la première fois qu’il puisse être envisagé de placer un package GPU en dehors d’un PC (on peut imaginer d’augmenter les capacités limitées de traitement graphique d’un portable par une extension située dans la station d’accueil) – Une éventualité plus spéculative pourrait être de faire migrer le GPU dans l’écran – Vers 2010, on pourra imaginer de distribuer les processeurs graphiques afin de gérer les besoins haute résolution des moyens d’affichage composites Quelques points d’inflexion… • Généralisation de la mise en place de machines virtuelles – Intel (Vanderpool), AMD (Pacifica) vont introduire une assistance matérielle à la virtualisation dans très peu de temps – Microsoft a annoncé lors de WinHEC sa volonté de mettre sur le marché un hyperviseur (bénéficiant également des capacités d’isolation de la mémoire dont NGSCB dotera potentiellement les nouveaux modèles de PC) Quelques points d’inflexion… • UFD (USB Flash Devices) – Les UFD vont devenir omniprésents, approchant les 100 millions d’unité livrées en 2006 – En 2010, les UFD pourront détenir jusqu’à 16 GO – Les UFD commencent à ce différencier pour attaquer plusieurs segments fonctionnels ; exemples : • UFD transportant des profils personnels, paramétrages réseau, « lettres de créance » réseau • UFD contenant des applications • UFD transportant et « cachant » des données et des applications d’entreprise (chiffrées), synchronisées lors de la connexion à l’Internet • Music players (tel que l’Ipod mini-shuffle d’Apple). Quelques points d’inflexion… • Périphériques portables • Les périphériques portables (tels que les téléphones portables) auront plusieurs mémoires flash qui pourront transporter chacun 2 GO (chip de 16 Gb) en 2008 ; en utilisant plusieurs de ces flashes, 4 à 8 GO par téléphone devient imaginable • Les périphériques portables (tels que les téléphones portables) auront potentiellement des disques durs (1” ou 0,8”) capables de supporter 8 GO à la fin 2005 et potentiellement 32 GO en 2008 Quelques points d’inflexion… • Mémoire non volatile – De nouvelles technologies de NVM entreront probablement sur le marché entre 2006 et 2010, tout d’abord pour répondre aux besoins des téléphones portables et d’autres périphériques portables Quelques points d’inflexion… • UWB (Ultra-Wide Band) – Permet la création de PC réellement sans fil (y compris pour les accès disques) ; Intel et d’autres « poussent » les protocoles USB sans fil (au-dessus d’USB) pour en accélérer l’adoption – Les chipsets UWB seront disponibles en 2006 (les versions beta sont disponibles aujourd’hui) ; leur vitesse d’adoption dépendra de la stabilisation du standard UWB • DS-UWB (Direct Sequence) poussé par Motorola • MBOA (Multi Band OFDM) poussé par Intel Quelques points d’inflexion… • RFID, NFD et Senseurs – Nouvelles « races » d’application sans fil et d’interaction homme – machine en cours d’émergence dans un contexte de proximité immédiate (< 30 cm), grâce à l’apparition de technologies de type NFC (Near Field Communications), incluant des transactions périphérique à périphérique, l’authentification, l’appairage des périphériques,… – De très petits Smart Dust sensor chips qui contiennent un processeur, de la mémoire et une radio sans fil ainsi qu’un senseur vont arriver sur le marché très rapidement (Dust Networks (http://www.dust-inc.com) pour des prx très attractifs (moins de 2$) avec une batterie utilsable pendant 10 ans • Ce type de technologie peut parfaitement s’intégrer dans un réseau P2P • avec de réelles capacités d’auto-configuration, autoréparation, sans besoin de serveurs centraux (DNS, sécurité) Ce type de technologie ouvre la perspective de la notion « d’intelligence ambiante » Le PC des années 2010… • En 2010, on peut imaginer qu’un PC soit constitué de : – Un processeur à 8 ou 16 cœurs • Stockage • Un disque dur hybride de 3 TO avec une composante rotative classique et 1-2 GO de cache en mémoire flash • Un périphérique USB chiffré et amovible contenant le paramétrage de l’environnement de l’utilisateur et les applications de l’entreprise • Connectivité • • • • Une interface Ethernet filaire de 20 GO/s Une interface sans fil de type MIMO de 100 Mb/s Une connexion WAN de 1 Mb/s UWB pour les périphériques • Interface homme – machine • Navigation par souris ou voix • Entrée de données par clavier • Ecran OLED 30 pouces • Batterie de 8 heures Le téléphone portable des années 2010… • Un processeur ARM doté de 4 cœurs ou plus • Stockage • Un micro disque dur de 32 GO ou de 8 GO en flash • Un périphérique USB chiffré et amovible contenant le paramétrage de l’environnement de l’utilisateur et les applications de l’entreprise • Connectivité • Une interface sans fil de type MIMO de 100 Mb/s • Une connectivité WAN de 1 Mo/s • Une interface UWB pour la connexion d’autre périphériques et d’écrans de grande taille • Interface homme – machine • Navigation par clavier, voix et joystick • Entrées de données par clavier, voix et potentiellement de nouvelles interfaces homme – machine telle que X-nav • Ecran OLED portable 2-3 pouces • Projection de l’affichage pour des images 32 pouces en utilisant des LED blanches Le téléphone portable des années 2010… • Une batterie qui dure typiquement de 3 à 5 • jours Autres fonctionnalités • Player MP3 • Géo-localisation • Caméra de 10+ millions de pixels avec une bonne optique • Camara vidéo avec des capacités d’enregistrement haute définition directement sur disque • Télévision (via DVB-H) – 8 heures de visualisation • Taille ~ 100 cc Quelques tendances moins favorables de l’industrie… • On a déjà vu la problématique de la « barrière thermique » et de ses conséquences fondamentales sur le monde du logiciel • Mais ce n’est pas tout… Quelques tendances moins favorables de l’industrie… • La complexité du développement et du test du logiciel est en augmentation constante : – Les conceptions de logiciels de grande taille (Windows est un bon exemple) font face à la « barrière de la complexité », conceptions qui se complexifient encore en raison de l’augmentation de la taille de la matrice de tests (compatibilité ascendante) – Il n’y a pas d’équivalent à la loi de Moore pour les développements logiciels • Les nouvelles possibilités du logiciel ne doublent pas tous les 18 mois… • Ceci est un problème partagé par toute l’industrie (même si peu s’en rendent compte pour l’instant) qui est encore exacerbé par les tendances à la décentralisation et à la connectivité permanente : – Envisager des tests d’exécution exhaustifs dans un système distribué devient impraticable car tous les composants ne peuvent : • Jamais être dans un bon état connu en même temps • Jamais être entièrement sous votre contrôle administratif local • On ne peut tester tout l’Internet à la fois • On ne peut rebooter l’Internet Quelques tendances moins favorables de l’industrie… • Il y a plus de capacité de calcul à la « périphérie » qu’au « centre » : – Le centre est effectivement en ralentissement par rapport à la périphérie – Il y a plus de capacité de stockage à la périphérie qu’au centre – La gestion du temps de latence devient le point focal de la conception à tous les niveaux : • Entre le CPU et la mémoire centrale • Entre les PC clients et les datacenters • La décentralisation des périphériques continue d’être une tendance lourde • La tendance à la généralisation du sans-fil entraîne une plus grande mobilité de tous les périphériques – Davantage de topologies dynamiques ; plus grands besoins en sécurité • La complexité du logiciel est en augmentation rapide dans 2 dimensions : la quantité de code interconnecté et le besoin de plus en plus pressant pour du code plus parallèle • Il continue d’y avoir abondance de transistors et un déficit d’idées sur la façon de mieux tirer parti du hardware – On ne peut construire et tester du logiciel en utilisant des méthodologies traditionnelles suffisamment rapidement pour utiliser toute cette puissance de traitement Conclusions provisoires • L’informatique doit faire face à un certain nombre de problèmes fondamentaux… Et si l’on devait réfléchir à la conception d’un nouveau système d’exploitation… • Dans les années 70, Xerox au PARC a développé le premier « PC » en se posant la question suivante : – « Que se passerait-il si la puissance informatique était gratuite ? » • Il faut se poser une question assez semblable : – « Que se passerait-il si les transistors étaient gratuits et la bande passante illimitée ? » – Comment une telle hypothèse permettrait-elle de repenser la notion d’ordinateur ? • Que pourrait-on faire avec des milliards de transistors partout en dehors d’augmenter la taille des caches de niveau 2 sur de coûteux composants CPU ? • Que pourrait-on faire si l’on avait 65 535 processeurs sur un seul chip avec un TO de mémoire locale ? Les programmes séquentiels actuels ne peuvent raisonnablement pas tirer parti d’un tel futur (tout à fait envisageable…) Et si l’on devait réfléchir à la conception d’un nouveau système d’exploitation… • Si le calcul était gratuit et que la bande passante était illimitée, les modèles de programmation et les systèmes d’exploitation seraient bien mal équipés pour une telle réalité – Le parallélisme et la complexité présentent un challenge majeur pour les développeurs de logiciel à tous les niveaux – Puisque la bande passante vient de l’imagination des ingénieurs mais que le temps de latence est la conséquence des lois de base de la physique, l’écart en terme de temps de latence n’a aucune chance de changer – Tout développeur de logiciel devient un développeur de systèmes distribués en raison des tendances hardware évoquées précédemment • Y a-t-il un modèle de programmation qui permet d’adresser ces problèmes ? Nous pensons que la réponse est oui – Utilisation de variantes du π-calcul (algèbres des processus mobiles) – Systèmes de type et contrôle de modèle pour administrer la preuve de justesse lors de la compilation pour créer des services composés Π-calcul • Le π-calcul est le modèle de référence pour le calcul distribué introduit par Robin Miller – Ce modèle est fondé sur l’émission de messages sur des canaux nommés et fait le pendant du λ-calcul (qui permet de formaliser le calcul séquentiel) – Ce modèle abstrait général concentre toutes les caractéristiques des systèmes de processus mobiles dans un formalisme simple – Le π-calcul est, par exemple, à la base de la sémantique du langage Erlang – La sémantique classique du π-calcul est fondée sur la réécriture de termes où la communication consiste en une substitution de noms tout comme en λcalcul • Le renommage implicite des noms de canaux par alpha-conversion et l'équivalence structurelle destinée à rapprocher les termes communicants rendent impossible l'identification précise des processus et des canaux créés lors de l'évolution du système – Le π-calcul typé est le noyau de langages expérimentaux parallèles ou distribués comme Pict, Join et Facile • Le système Coq est un système basé sur une théorie des types, dans lequel il est • relativement aisé de faire des preuves par induction Utilisation Coq par Georges Gonthier, chercheur au MSRC, en collaboration avec Benjamin Werner, chercheur à l’INRIA, pour la démonstration du théorème des quatre couleurs Et si l’on devait réfléchir à la conception d’un nouveau système d’exploitation… • Développement simultané d’un nouveau langage de programmation et d’un système d’exploitation pour tenter de faire face aux problèmes de parallélisme et de complexité dont on vient de parler – Semblable au processus de co-évolution d’Unix et du langage C – La conception de l’un serait utilisé pour influer le développement de l’autre (et vice versa) – Les deux pouvant exister séparément ou ensemble Quel langage pour un tel environnement ? • Probablement un langage de programmation conçu pour embrasser les problématiques de parallélisme et d’asynchronisme – Fondé sur un ensemble de formalismes mathématiques • Algèbres des processus mobiles • Systèmes de type et contrôle de modèle – Le parallélisme serait implicite, non exprimé • Chaque déclaration, par défaut, s’exécute effectivement en parallèle avec d’autres déclarations • Le compilateur arrive à trouver la bonne séquence d’exécution plutôt que le développeur • Pas de threads ! – La seule façon d’interagir avec un processus se ferait via des messages – Les messages verraient leur type contrôlé ainsi que les processus afin de pouvoir détecter la plupart des bogues liés au parallélisme ou à l’asynchronisme lors de la compilation • Deadlocks, livelocks • Race conditions • Fuite de ressources ou de secrets entre les services • Les services seraient de manière intrinsèques des boîtes noires que l’on assemble, comme le hardware Pour quel système d’exploitation ? • Un système d’exploitation décentralisé qui serait orchestré au travers de différents nœuds distribués et parallèles – Fourniratt un modèle de programmation cohérent pour toutes les ressources (services, fichiers, périphériques, streams, utilisateurs) – Tous les composants du système seraient construits comme des services Web faiblement couplés – Tous les services exhiberaient : • Un URI pour les rendre adressables • Un contrat qui spécifie un comportement vérifiable lors de l’assemblage • Un ensemble cohérent de sémantiques et de schémas pour décrire la façon d’interagir avec le service • Présupposerait un monde où : – Les ressources sont faiblement couplées et hétérogènes – Les services qui ne se font pas confiance mutuellement communiquent sur un réseau non sécurisé et non fiable – Il y a plusieurs domaines de confiance avec plusieurs administrateurs – La topologie réseau est hautement dynamique – La coordination locale des services intervient sans recourir à une autorité centrale Est-ce un rêve… ou une réalité potentielle future ? L’industrie à la croisée des chemins… Les progrès du hardware sont-ils de mauvaises choses ? IT Doesn’t Matter? La fin de l’innovation? L’informatique comme une « utilité » ? Quelques enjeux du 21ème sciècle S’affranchir des barrières • La barrière de la « réalité » – Graphique, vision, traitement du signal • Barrières entre les hommes – Collaboration et outils de communication • Barrières entre les hommes et les ordinateurs – Interface, langage, parole, vision • Barrières entre les hommes et l’information – Bases de données, data mining, scalable computing • Barrières entre les ordinateurs – Réseaux hauts débits • Barrières entre le travail, la maison, la voiture,… – Systèmes adaptatifs, sans-fil En guise de conclusion… • Comme je me suis attaché à le démontrer, les territoires à défricher, les « terres inconnues » de l’informatique n’ont jamais été aussi nombreuses qu’aujourd’hui, assez pour qu’il soit possible de définir ce que j’appelle « les douze travaux d’Hercule de l’informatique » (référence au discours de Jim Gray lors de la cérémonie de son Turing Award) • Cette exploration ne pourra se faire qu’en unissant les moyens de la recherche publique et privée car le chemin à parcourir sera long et semé d’embûches – Microsoft en tant qu’acteur engagé dans la recherche en Europe, se doit d’assumer ses responsabilités et donc de jouer un rôle moteur dans ce domaine • Pour autant, l’exploration de ces nouveaux territoires devra se faire avec la volonté modeste de réaliser des progrès dans un périmètre défini, impliquant la libre évaluation des options et le libre choix parmi les possibles, dans le cadre d’une discussion publique continue réunissant tous les citoyens sans exclusion En guise de conclusion… • Dans cette perspective, il sera possible de repenser le progrès informatique, non pas dans le sens du « plus qu’humain » mais, Puisse cet outil êtredans et demeurer au«service tout simplement, le sens du plus de l’homme humain ». et de l’humanité toute entière. – Car l’informatique est et restera un outil. Questions ?