• samedi 26 mai 2012
  • Agoravox France Agoravox Italia Agoravox TV Naturavox
  • Agoravox en page d'accueil
  • Newsletter
  • Contact
AgoraVox le média citoyen
La fondation Agoravox
  Accueil du site > Actualités > Technologies > Du PC à la Voie Lactée : les performances de nos ordinateurs
14%
D'accord avec l'article ?
 
86%
(67 votes) Votez cet article
  • Faire un don
  • Imprimer cet article
  • Marquer et partager

Du PC à la Voie Lactée : les performances de nos ordinateurs

L’augmentation vertigineuse des performances de nos ordinateurs est difficile à concevoir, à visualiser.
Pourtant, elle est réelle, et bien au-delà de ce qu’on pourrait imaginer.
En effet, la lenteur et la lourdeur des logiciels d’aujourd’hui, s’aggravant constamment, fait qu’il est souvent difficile de s’en apercevoir…

La Galaxie dans un PC

JPEG - 378.2 ko
La Voie Lactée
Cliquer pour agrandir

Prenons un exemple concret : notre galaxie, la Voie Lactée.
La Voie Lactée fait 80.000 Années-lumière de diamètre, soit environ 800.000.000.000.000.000 km, ou 800 millions de milliards de kilomètres, et elle comporte environ 300 milliards d’étoiles.
Ce sont des valeurs… astronomiques.

Supposons que l’on veuille stocker la position de toutes les étoiles de la Voie Lactée (par rapport au centre), ainsi que le type spectral (la couleur) et la classe de luminosité (la taille, de hypergéante à naine blanche), quel volume cela prendra-t-il ?

En informatique, on utilise habituellement le type "Double" pour les nombres réels (non entiers). Le "Double", occupant 64 bits (8 octets) de mémoire, offre 16 chiffres significatifs.
Avec cette précision (de -9.000.000.000.000.000 à +9.000.000.000.000.000), on peut mémoriser des distances à 100 km près dans toute la galaxie.
Sachant qu'une étoile comme le Soleil fait 1.4 millions de km de diamètre, la précision de 100 km est largement suffisante.
Les types spectral et classe de luminosité tiennent sur un octet chacun (255 valeurs possibles par octet).

Chaque étoile aura donc 3 coordonnées (x, y, z) de type Double de 8 octets, et 2 valeurs (type et luminosité) de 1 octet, soit au total 3 * 8 + 2 * 1 = 26 octets par étoile.
A raison de 300.000.000.000 d'étoiles, le volume de données sera de
26 * 300.000.000.000
= 7.800.000.000.000 octets
= 7.617.187.500 Ko
= 7.438.660 Mo
= 7.265 Go
= 7 To.

Avec 4 disques Western Digital de 2 To à 130€, vous pouvez donc stocker la position, la couleur et la taille de toutes les étoiles de la galaxie.
Et votre PC gérera sans mal ces 4 disques.

Tout votre ADN dans votre PC

Prenons un autre exemple amusant.
En 1990 sortait le livre "Jurassic Park". Il y est question de recréer les dinosaures à partir de leur ADN, en utilisant massivement des ordinateurs pour aider à la reconstitution des brins d'ADN abimés par le temps.

La chaîne d'ADN, présente dans les cellules vivantes, est un programme permettant de recréer à l'identique la créature qui les possède, et est composée d'une suite de 4 bases : A (adénine), T (thymine), C (cytosine) et G (guanine).
C'est comparable, en informatique, à l'encodage sur 2 bases (0 et 1).

Selon les êtres vivants cette chaîne est de longueur variable, mais, pour les grands vertébrés, elle tourne autour de 3.000.000.000 de bases (pour l'homme, comme, sûrement, pour les dinosaures).


En 1989, époque de Jurassic Park, c'était un volume incroyablement grand à gérer : il faut plusieurs superordinateur Cray X-MP (dans le livre) pour traiter une telle masse de données.

JPEG - 183.3 ko
Cray X-MP
Cliquer pour agrandir

Le Cray X-MP/416, sorti en 1984, est le summum de la série, et le plus rapide et plus puissant ordinateur du monde à l'époque.
Il possède 4 processeurs à 117 Mhz, et une mémoire centrale de 128 Mo. On peut lui adjoindre des SSD, sorte de grandes armoires de mémoire additionnelle de 1 Go chacune, et il offre une puissance de calcul de 800 Mflops (millions d'opérations par seconde).
Ce jouet coûte, à l'époque, 15 millions de dollars.

Brochure technique sur le Cray X-MP.
Jurassic Park possède donc 3 superordinateur Cray X-MP/416 dotés chacun d'un SSD de 1 Go, soit 45 millions de dollars.

En enregistrant de façon un peu simpliste la chaîne d'ADN dans un fichier, en réservant un octet par base (c'est bien plus qu'il ne faut, mais ça facilite la lecture du fichier), la chaîne complète d'ADN pèsera 3 Go.

C'est-à-dire que la totalité de la chaîne d'ADN d'une de nos, de vos cellules, tient directement dans la mémoire vive du PC qui vous sert à lire cet article.
C'est-à-dire qu'on peut mettre deux programmes génétiques complets sur un DVD.
Et sur votre disque dur, vous pourrez stocker entre 10 et 100 fois votre génome. Rien que ça.

En 2011, vous avez entre les mains la puissance de 3 superordinateurs Cray de 1989 à 15 millions de dollars.

La lenteur croissante des applications.

Malgré les performances inimaginables de nos PC, on remarquera sans mal la lenteur extrême de nombreux programmes, particulièrement les suites bureautique.
Il est intéressant à ce sujet de faire le parallèle avec Word 5.1 sur Macintosh Plus.

PNG - 5.5 ko
JPEG - 59.1 ko

Soyons clairs : 90% des fonctionnalités de Word 2003 existaient déjà dans Word 5.1, y compris l'éditeur de graphiques, l'éditeur d'images, l'éditeur de tableaux, les correcteurs grammaticaux et orthographiques, le catalogue des synonymes, les styles, la possibilité de mise en page, etc.

JPEG - 39.5 ko
Macintosh Plus
Cliquer pour agrandir

Le Macintosh Plus est sorti en 1986, avec un processeur Motorola MC68000 à 8Mhz et 1 Mo de mémoire vive, extensible à 4 Mo.
Word 5.1, sorti en 1992, n'est pas très véloce sur Mac Plus, mais il est parfaitement utilisable, et l'on profite de toute la puissance de ses outils sans problèmes.

20 ans plus tard, sur des machines au moins 400 fois plus rapides que le Mac Plus, Word 2010 n'est pas plus rapide ou réactif, en n'offrant que très peu de fonctions supplémentaires (et essentiellement des fonctions inutiles).

Tout le monde connait la "loi de Moore", inventée par Gordon Moore, cofondateur d'Intel, en 1975  :
« Le nombre de transistors des microprocesseurs sur une puce de silicium double tous les deux ans. »
Il ne s'agit pas d'une étude sérieuse, statistique, mais d'une prédiction empirique, qui s'est révélé jusqu'à présent exacte.

La Loi de Wirth

Et bien, la loi de Moore a son corollaire, concernant la lenteur permanente des programmes !
Cette autre loi à été formalisée par Niklaus Wirth en 1995, et nommée donc "Loi de Wirth" :
 « Le logiciel ralentit plus vite que le matériel accélère. »

Le matériel a beau doubler en performance tous les 24 mois, les programmes n'accélèrent pas pour autant : au contraire, ils deviennent plus gros et plus lent, les développeurs justifiant cette lenteur excessive comme compensée par la loi de Moore !

Il faut dire qu'un grand nombre de choix très malheureux a été fait ces 20 dernières années dans le domaine de la programmation, allié à une situation de manque de développeurs.

D'un côté, l'informatique a envahi le quotidien, nécessitant une armée inexistante de développeurs : actuellement, en France, par exemple, en pleine crise, l'informatique est le seul domaine où il y a plus de postes disponibles que de candidats (offrant alors des situations particulièrement favorables pour les développeurs).
La conséquence de cette situation, c'est que pour pallier le manque de développeur, on est envahi de développeurs médiocres ou franchement mauvais, incapable de coder correctement quelques lignes (et l'on est entouré de développeurs capables de noircir 50 lignes de code pour faire une action réalisable en 5 lignes).

D'un autre côté, dans l'idée de vouloir toujours tout révolutionner, de faire différent des "vieux", et à un rythme effréné, on a cédé à de nombreuses technologies spécialement mauvaises, comme les langages interprétés (Java tout particulièrement, .net, Javascript, Python, etc), les langages massivement objets, menant à des pertes de performances souvent sensibles, et à une augmentation de la mémoire utilisée sans rapport avec la mémoire vraiment nécessaire.

Si l'on codait aujourd'hui les applications, en C ou en Pascal, comme on le faisait dans les années 80, nos ordinateurs donneraient une impression de vitesse et de fluidité dont on n'a pas idée.

par Akwa mardi 20 décembre 2011 - 129 réactions
yahoo
14%
D'accord avec l'article ?
 
86%
(67 votes) Votez cet article

2 moyens pour donner

Don défiscalisé 10€ ou plus

Obtenez une réduction fiscale de 66% avec un e-reçu. Un don de 10 € ne vous coûte que 3€40.

Grâce à votre aide, AgoraVox peut continuer à publier plus de 1000 articles par mois. En donnant à la Fondation AgoraVox, vous offrez un soutien à la liberté d'expression et d'information.

Les réactions les plus appréciées

  • Par spartacus1 (xxx.xxx.xxx.207) 20 décembre 2011 18:28
    spartacus1

    Je ne peux qu’abonder dans le sens de votre article.

    En 1965, j’ai écrit, dans le cadre de ma thèse, en FORTRAN, une petite chaîne de programmes qui calculait, à partir d’observations terrestres, la trajectoire des satellites artificiels. Le but étant de mettre en évidence les irrégularités de trajectoire, c’est à dire, in fino, la forme et/ou* la masse spécifique en chaque point de l’écorce terrestre.
    Il y avait une dizaine de programmes tenant dans 20 Koctets (en fait, à l’époque, il s’agissait de mots de 4 bits). Le toute écrit. par une seule personne, en moins d’un mois.
    J’imagine que maintenant, plusieurs mois et des Mo seraient nécessaire à des programmeurs actuels.

    En fait, en plus de 40 ans, je n’ai pas vu de progrès vraiment significatifs, de réels changement de paradigme, en programmation, si, peut-être, des avancées dans le domaine de la programmation parallèle.
    On ne fait que rajouter des gadgets, on pare de mots ronflants (raffinement graduel, objets, réutilisation, fonctionnel, ...) des pratiques que les bons programmeurs ont d’instinct.
    Je suis effaré de voir que chaque jour on redécouvre des choses qui existent de puis longtemps.
    Par exemple, le "cloud computing" s’appelait "time-sharing" il y a une trentaine d’années.
    Simplement, les progrès du matériel, permettent de mettre effectivement en œuvre des techniques existantes, mais il n’y a pas vraiment de progrès conceptuels.

    Lorsque je regarde certains code source, je partage totalement votre avis quant à la médiocrité voire la nullité de certains développeurs. 

    * Le et/ou demanderait trop de développements pour être analysé ici et serait, de toute façon, HS.

  • Par Akwa (xxx.xxx.xxx.9) 21 décembre 2011 01:04
    Akwa

    Exactement !

    Ce que vous dite rejoins ce que je pense : au lieu d’être entre techniciens chevronnés, on est coincé entre des commerciaux incompétents imposant des solutions "à la mode", et des ingénieurs médiocres qui se prennent pour des artistes, qui n’en font qu’à leur tête, et tout cela absolument pas dans l’intérêt de l’utilisateur.

    Les langages, comme les logiciels, sont devenus obscurs, complexes, et peu performants.
    C’est la loi de Wirth.

    Et tous les posteurs précédents soutenant les POO, Java et consorts ne sont que les artisans de la loi de Wirth. Les utilisateurs en sont les victimes.

  • Par Marc Bruxman (xxx.xxx.xxx.123) 20 décembre 2011 19:13

    Du bon et du mauvais dans cet article.

    Je suis d’accord avec vous sur un point : Le manque de développeurs qualifiés nuit grandement à l’industrie informatique.

    Mais ceci me donne envie de hurler :
    "Si l’on codait aujourd’hui les applications, en C ou en Pascal, comme on le faisait dans les années 80, nos ordinateurs donneraient une impression de vitesse et de fluidité dont on n’a pas idée."

    Et bien non. Pourquoi ne codez vous plus en C ou Pascal ? Parce que les applications se sont complexifiées De l’interface graphique kikoolol (plus en noir et blanc) à des fonctionalités nouvelles comme la correction ortographique qui se fait au fur et à mesure que vous tapez, le ’smart art’ pour faire à la volée des dessins sans se prendre la tête, le lissage des polices, et ne l’oublions pas l’augmentation de la résolution de votre écran etc, etc, ...

    Or, il y a une limite à ce que le cerveau humain peut encaisser en terme de complexité. Il y a donc deux solutions, soit se limiter en termes fonctionnels, soit faire évoluer nos langages et outils pour pouvoir travailler plus efficacement. L’évolution des langages correspond à ce besoin : Modulo une perte en performance (qui est réelle mais peut être maitrisée si le développeur est compétent), vous diminuez la complexité du code et donc vous pouvez écrire un code plus gros sans bugs.

    Lorsque les premiers gestionnaires de mémoire virtuelle sont apparus (il y a fort longtemps), c’était un jouet couteux et certains informaticiens trouvaient que c’était inutile et qu’un vrai développeur pouvait tout à fait s’en passer. Or, aucun système multi-tache ne serait fiable sans cette évolution (qui reste couteuse). La même chose pour le C qui fut un truc pour les "tafioles" car les vrais hommes codaient en assembleur ;) Mais essayez d’écrire Microsoft Word en 100% Assembleur et vous allez voir le résultat.

    Après les jérémiades sur les performances de l’objet et même de langages décriées pour leur perf comme le java sont une histoire de mauvais développeurs qui éssaient de coder en Java comme ils codent en C ce qui donne des performances merdiques. Un bon développeur java (c’est rare et cher) approche les perfos d’un bon développeur C++ à quelques pourcent près. Dans certains cas, il peut même les dépasser à cause des optimisations permises par le JIT (qu’un compilateur statique ne peut pas réaliser). Maintenant comme peu de devs ont appris à faire de l’orienté objet correct, forcément le résultat est merdique. Mais la solution n’est pas de ne pas utiliser l’objet, juste de former les devs aux technos qu’ils utilisent.

    Beaucoup d’informaticiens conspuent ainsi les langages plus évolués que le C, ils ont tort. Non seulement ces langages sont rapides si on prend le temps de bien les utiliser (mais la le fait que beaucoup reprennent la syntaxe du C est délétaire car les gens croient qu’ils vont pouvoir coder pareil en C qu’en Java ou PHP), mais en plus c’est le fait d’avoir accès à un niveau d’abstraction supérieur qui fait la différence car cela vous permet d’écrire vite et bien des applis complexes. Les langages à objets qui supportent l’introspection par exemple permettent d’écrire très rapidements des codes élégants, et simple à maintenir. Et même si on y perd un peu en performance, dans la plupart des projets, le gain dépasse largement le coût : Des dizaines de jours hommes économisés d’un coté contre 300$ de hardware en plus ? Et vous choisissez quoi ?

    Enfin avez vous tant besoin de vitesse lorsque vous utilisez un ordinateur ? Dans la plupart des cas votre CPU ne fout rien. Dans les quelques pouillémes de cas ou vous avez besoin de perfo, rien ne vous empéche d’écrire en C la routine importante (voir de retoucher le code ASM produit si vous savez comment marche le pipeline), mais pour du boulot général, cela n’a aucun intérêt.

  • Par easy (xxx.xxx.xxx.174) 21 décembre 2011 01:43
    easy

    Je suis certain que vous savez bien la chose informatique.

    Mais j’ai l’impression que vous ne savez pas la raconter.

    Le stockage des coordonnées des étoiles de la galaxie, à 100km près, pourrait se faire avec 7 To de grains de sable. (Les tags c’est des grains de sable disposés)

    Le problème ou la performance n’est pas là du tout.

    Le problème ou la performance donc le mur c’est de calculer les trajectoires de toutes ces étoiles en même temps afin, par exemple, de nous montrer l’image de cette galaxie en mouvement.

    Quand un tennisman frappe une balle, c’est 7 To d’organites biologiques qui bougent en se calculant mutuellement dans un exact même instant.
    Aucun ordi n’est capable de calculer rien que l’image de la moitié visible de la peau d’un joueur dans un exact même temps.
    Je te dis pas s’il devait calculer la position de chaque hématie.



    Je dessine des immeubles sur Autocad, ça va.
    Je les fais bouger en 3D, le moulin brûle.

    Le stock de données n’est rien.
    C’est la gestion simultanée de leurs changements qui pose problème.

Réactions à cet article

Ajouter une réaction

Pour réagir, identifiez-vous avec votre login / mot de passe, en haut à droite de cette page

Si vous n'avez pas de login / mot de passe, vous devez vous inscrire ici.


Faites un don

Les thématiques de l'article

Palmarès

Agoravox utilise les technologies du logiciel libre : SPIP, Apache, Debian, PHP, Mysql, FckEditor.


Site hébergé par la Fondation Agoravox