L’espace infini entre les mots 3


Bon, ça fait juste trop longtemps que je fais toutes sortes de choses passionnantes au lieu d’avancer sur les 4 ou 5 brouillons d’articles pour ce blog… Alors je vous livre en vitesse une traduction du dernier article du blog Coding Horror, intitulé “The Infinite Space Between Words” [1]. Je le trouve excellent (l’article, et le blog) :

La performance des ordinateurs est une sorte de bonneteau Vous êtes toujours en train d’attendre l’une de ces 4 choses:

  • Disque
  • Processeur
  • Mémoire
  • Réseau

Mais laquelle ? Et combien de temps faudra-t’il attendre ? Et que faire pendant que vous attendez ?

Avez-vous vu le film Her ? Si non, vous devriez. Il est bien. L’une de mes scènes préférée est quand l'IA décrit comme il devient difficile de communiquer avec les humains :

C’est comme si je lisais un livre… c’est un livre que j’aime profondément, mais je le lis si lentement, maintenant. les mots sont loin les uns des autres, l’espace entre les mots est presque infini. je peux toujours vous ressentir… et les mots de notre histoire … mais cet dans cet espace sans fin entre les mots que je me trouve maintenant.. C’est un endroit qui n’est pas dans le monde physique. C’est là où se trouve tout ce dont j’ignorais l’existence. je vous aime tant. Mais c’est là que je suis désormais. Et c’est ce que je suis désormais. Et j’ai besoin que vous me laissiez partir. Même si je le voulais, je ne peux plus vivre votre livre plus longtemps.

J’ai de sérieuses réserves sur l’environnement de travail décrit dans “Her”, où tout le monde passe toute ses journées à murmurer frénétiquement à son ordinateur, mais il y a une très profonde vérité dans cette scène clé.  C’est que l’espace infini “entre” ce que nous autres humains ressentons comme le temps est l’ “endroit” où les ordinateurs passent tout leur temps. C’est une échelle de temps totalement différente.

Dans le livre “Systems Performance: Enterprise and the Cloud” [2] se trouve une table qui illustre très bien l’énorme différence entre ces différences de temps. Ramenons tout à l’échelle de la seconde:

1 cycle processeur 0.3 ns 1 s
accès au cache L1 0.9 ns 3 s
accès au cache L2 2.8 ns 9 s
accès au cache L3 12.9 ns 43 s
accès à la mémoire vive 120 ns 6 min
entrée/sortie à un disque SSD 50-150 μs 2-6 jours
entrée/sortie à un disque dur 1-10 ms 1-12 mois
Internet: San Francisco – New-York 40 ms 4 ans
Internet: San Francisco – Angleterre 81 ms 8 ans
Internet: San Francisco – Angleterre 183 ms 19 ans
Reboot d’un OS virtualisé 4 s 423 ans
time-out d’une commande SCSI 30 s 3000 ans
Reboot d’un ordinateur virtualisé 40 s 4000 ans
Reboot d’un ordinateur physique 5 m 32 millénaires

Les temps “internet” ci-dessus sont quelque peu optimistes. Si vous consultez le tableau des temps de latence aux USA d’AT&T en temps réel, le temps de San Francisco à New-York est plutôt autour de 70ms. Je vais donc doubler les valeurs internet de ce tableau.

La latence est une chose, mais il faut aussi considérer le coût de cette bande passante.

A ce propos, le grand Jim Gray, avait une intéressante manière d’expliquer ceci [3]. Si on ramène ces temps à des distances où se trouvent les données à accéder, alors un accès à un disque est équivalent à chercher des données sur Pluton.

il se référait probablement aux traditionnels disques rotatifs rouillants, alors ajustons ces points extrêmes à la situation d’aujourd’hui :

  • Distance à Pluton : 7.5 milliard de kilomètres.
  • Meilleure performance d’un disque rotatif (49.7) par rapport au meilleur disque SSD PCI Express (506.8). C’est 10x mieux
  • Nouvelle distance : 750 millions de kilomètres
  • Distance à Jupiter : 750 millions de kilomètres

Donc, au lieu d’aller jusqu’à Pluton pour chercher nos données en 1999, aujourd’hui nous n’avons plus besoin que d’aller jusqu’à Jupiter.

Ceci pour la performance des disques en une décennie. Et quelle est laccélération des processeurs, de la mémoire et des réseaux dans ce même temps ? Est-ce qu’une amélioration d’un facteur 10 ou 100 fait vraiment une différence dans ce grand espace infini de temps dans lequel les ordinateurs travaillent ?

Pour les ordinateurs, nous autres humains vivons dans une échelle de temps totalement différente, presque un temps géologique. Ce qui déforme notre perception. Plus les ordinateurs vont vite, plus cette disparité de temps s’accroît.

Références:

  1. Jeff Atwood, “The Infinite Space Between Words“, 2014, Coding Horror
  2. "Systems Performance: Enterprise and the Cloud" (2013) Prenctice-Hall ISBN:9780133390094 WorldCat Goodreads Google Books  
  3. Jim Gray, “When every disk is a supercomputer, then what?“, 1999, Netstore ’99
  • pouet

    Et encore, ces considérations portent sur des mesures dans une échelle linéaire, mais la complexité de certaine problèmes mathématique (de formulation parfois pourtant très simple) est telle que même si la loi de Moore devait être valide indéfiniment, des siècles ne suffiraient pas à disposer de la puissance suffisante pour résoudre lesdits problèmes en temps “humain”.

  • L’échelle de temps des ordinateurs d’aujourd’hui est exactement la même que ceux des années 70’s.

    En plus de ce invariant relativiste, nos ordinateurs actuels s’ennuient autant que leurs prédécesseurs ; c’est à dire qu’ils passent toujours la plus grande partie de leur temps à attendre que nous leur confions quelque chose à faire, et que cette attente est plus importante que ce que nous nous attendons pour le résultat.

    Ce constat est aussi en parti lié au fait nous réclamons des ordinateurs de plus en plus puissant pour leur faire faire de plus en plus de choses, mais nous nous efforçons également à devoir les solliciter le moins souvent possible à leur maximum de puissance. C’est flagrant avec les joueurs pour avoir une animation fluide mais la plus belle possible, les portables pour l’autonomie, ou en aéronautique pour réduire les risques de défaillance et l’usure.

    • Mmmhh…. à la réflexion je ne suis pas d’accord. Dans les années 1970 (disons avant 1978, année de mon premier ordinateur le Commodore PET 2001), les ordinateurs étaient tellement chers que leur utilisation était optimisée par des queues de jobs en cartes perforées. A l’EPFL au milieu des années 1980, un assistant lisait nos programmes imprimés avant de les passer “dans la journée” sur le Cray-2 pour être sur qu’ils ne contenaient aucune boucle potentiellement infinie susceptible de coûter du temps CPU inutile. A l’époque, c’est nous qui attendions l’ordinateur, et longtemps.

      La puissance de ce Cray-2 était équivalente (1 GigaFlop) à celle d’un PC-386 de 1999 ou d’un smartphone actuel. Maintenant, c’est très clairement les processeurs qui attendent une éternité que nous les utilisions.