Loi de Moore, et le logiciel ?

Bref rappel sur la loi de Moore

Depuis un demi siècle le numérique suit une croissance quasi exponentielle, quantifiée par Gordon Moore dans les années 60. En faisant vite, cette loi dit que l’on peut mettre 2 fois plus de composants sur une surface donnée tous les 18 mois. C’est ce que montre le graphique en provenance de Wikimedia ci dessous.

Croissance du nombre de transistors dans les microprocesseurs Intel par rapport à la loi de Moore. En vert, la prédiction initiale voulant que ce nombre double tous les 18 mois. Source Wikimedia

En faisant encore plus vite, trop vite même, elle dirait que la puissance des ordinateurs double tous les ans. Comme ça fait vraiment beaucoup, depuis le début ses détracteurs disent que c’est la dernière année qu’elle est vérifiée. Mais comme l’industrie des composant se livre une concurrence acharnée, tout le monde essaie de la suivre et c’est devenu une de ces prédictions auto-réalisatrices.

Vérification faite

La loi de Moore, qu’en est-il pour nous simple utilisateur d’un ordinateur ?

En fait, c’est le processeur dont la puissance suit une croissance exponentielle, la taille du disque dur aussi mais si cela reste un disque, lié aux lois de la mécanique, sa vitesse n’évolue que peu. C’est pour cette raison que nos ordinateurs ne progressent pas à la vitesse de la loi de Moore, parce que tout leurs composants n’y sont pas assujettis et certains évoluent plus lentement.

Ou alors on change de technologie et en passant à un stockage SSD, on s’aperçoit que la vitesse d’accès aux données a plus d’impact que la vitesse de traitement des données. Donc certains composants ou services peuvent être accomplis de manière différente, par une autre technologie, et tout à coup les performances font un grand saut, pour rattraper les évolutions du processeur.

Ou alors on fait du traitement vidéo et on s’aperçoit que la vitesse de traitement des données a aussi son importance.

Bref, le problème n’est pas simple et cela mérite de se poser un peu pour y réfléchir.

Le temps passe

Gardons comme postulat que tout ça évolue vite, très vite. Mais alors, pourquoi est-ce que ce n’est pas si flagrant ? Certes, si vous ressortez le vieux PC 286 (voir https://www.youtube.com/watch?v=mksB3v3ciq0 pour ceux qui n’étaient pas nés) du garage de Pépé, vous allez voir que les progrès qui ont été faits en une trentaine d’années.

Donc, première chose, on a oublié. Mais si on a oublié, c’est parce qu’il s’est passé du temps et Moore nous disait que ça irait très vite. Alors ?

La nature a horreur du vide

D’une part, la nature a horreur du vide, ce qui fait que quand la vitesse de traitement augmente, on cherche rapidement à en faire plus que ce qu’on arrivait à faire avant. Ce qui absorbe la puissance et les bénéfices tirés de la nouvelle architecture. On fait toujours plus ou moins pareil, plus ou moins à la même vitesse. Mais toujours un peu plus, toujours aux limites de l’architecture du moment.

Cela me rappelle quelques anecdotes.

Jeune ingénieur logiciel chez IBM, je me souviens d’une conversation avec un ingénieur système qui me vantait les vertus de son ordinateur Amdhal. Une fonction qu’il appréciait était de pouvoir régler la puissance de la machine. Étonné, je lui demandait pourquoi brider son mainframe et ne pas l’utiliser à pleine puissance ? Sa réponse était pourtant très logique et avec le recul, elle donne du sens à ce qui vient d’être dit. Au changement de machine, les utilisateurs enthousiastes de l’amélioration des performances vont trouver mille et un usage pour mettre à profit ce surplus. En quelques semaines leur sur-utilisation aura absorbé l’accroissement des performances et ils seront à nouveau en demande d’amélioration. En ne mettant à disposition la nouvelle puissance que graduellement, ils sont heureux de voir les temps de réponse s’améliorer. Ce qui les incitera à accroitre l’utilisation du système, ce qui finira par dégrader les temps de réponse. Mais alors, l’équipe système pourra déverrouiller un peu plus et ainsi de suite pendant des mois. Dans le pire des cas, il pouvait redistribuer le nouveau potentiel sur une année et garder des utilisateurs satisfaits pendant tout ce temps.

Le deuxième exemple est la situation inverse et il rappellera des souvenirs à plusieurs d’entre vous. Pendant des années, chaque changement de version de Windows demandait de changer également son ordinateur personnel, sous peine de se trouver avec une machine  épouvantablement lente. Le logiciel, par anticipation, demandait une puissance qui devenait disponible grâce aux progrès du matériel en général et à ceux dérivant de la loi de Moore en particulier. Qu’est-ce qu’aurait été le développement logiciel sans la loi de Moore ?

Loi de non-Moore

Nous pourrions conclure, temporairement, qu’il y a une loi de non-Moore. Elle serait quelque chose comme : chaque 18 mois, un service qui peut être rendu par un logiciel de 1 Mo sera rendu par un logiciel de 10 Mo. Parce que j’ai l’impression que pour certains logiciels, ce n’est pas juste un doublement mais un décuplement qui se produit.

Cela donne envie de chercher des données pour pouvoir établir plus précisément ce qui se passe du côté du logiciel. Il serait intéressant de retrouver la taille d’un traitement de texte ou d’un tableur, voir comment elle a évolué au cours du temps. Avec la suite Office par exemple ce ne devrait pas être trop difficile, elle est sur le marché depuis plusieurs décennies, ce qui constitue un marqueur relativement fiable.

Si vous avez des idées ou des données là dessus, merci de me laisser un commentaire  !

Marc Augier

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.