Histoire du calcul informatique de pointe

Quelques étapes importantes dans l'histoire de l'informatique

1623

Wilhelm Schickard invente la première machine de calcul mécanique, la Speeding Clock, qui aurait permis de faire des additions et des soustractions à 6 chiffres. Il écrivit à Kepler pour lui expliquer comment utiliser cette machine afin de calculer les éphémérides, c.-à-d. la position des planètes au cours du temps. La Speeding Clock fut détruite lors d’un incendie avant d’être complétée.

Wilhelm Schickard

Wilhelm Schickard, inventeur du premier calculateur mécanique

1645

Blaise Pascal effectue ses premiers calculs sur la Pascaline, la première machine de calcul mécanique opérationnelle, qui était capable d’effectuer des additions et des soustractions (cette seconde opération était toutefois difficile à effectuer). En 1649, Pascal reçut le privilège royal d’exclusivité de vente sur le territoire français. Trois ans plus tard, il avait vendu une douzaine de machines.

Machine à calculer de Blaise Pascal

La Pascaline

1672

Gottfried Wilhelm Leibniz fabrique la Stepped Reckoner, la première machine capable non seulement d’additionner et de soustraire, mais également de multiplier et diviser. Seulement deux exemplaires de cette machine ont été construits. Leibniz est aussi l’inventeur du système binaire (base 2) qui est utilisé dans tous les ordinateurs modernes.

Le «stepped reckoner» de Leibniz

Le Stepped Reckoner

1820

Thomas de Colmar fabrique son premier Arithmomètre, la première machine de calcul fiable ayant été produite en série. Elle fut fabriquée à plus de 5000 exemplaires, jusqu’au début de la Première Guerre mondiale.

arithmometre

L'Arithmomètre

1822

Charles Babbage développe le concept théorique d’un ordinateur programmable. Cet ordinateur doit servir à remplacer les calculs faits par des humains, qui sont largement entachés d’erreurs. Ses engins mécaniques avaient une architecture très similaire à celle des ordinateurs modernes, avec des « zones mémoire » distinctes pour les données et le programme, l’existence de « sauts conditionnels » ainsi que celle d’une unité séparée pour les opérations d’entrée-sortie.

Ce concept a été décrit en détail par Ada Byron, comtesse de Lovelace. On lui attribue également la rédaction du premier programme informatique, bien que les historiens ne s’entendent pas sur l’importance relative d’Ada Lovelace par rapport à celle de Charles Babbage dans le développement de ce programme. En 1980, le département de la défense américaine a baptisé un langage de programmation qu’il venait de développer « Ada » en son honneur.

Ada Lovelace

Ada Lovelace

1854

Le mathématicien anglais George Boole publie le livre Laws of Thought qui établit les bases mathématiques de l’arithmétique binaire et de la logique symbolique (avec les opérateurs ET, OU et NON). Ces idées furent d’une importance capitale pour la construction des premiers ordinateurs.

George Boole

George Boole

1890

Herman Hollerith construit une machine qui permet de lire des cartes perforées, puis d’effectuer des opérations statistiques à partir des données lues. Le premier système de ce genre fut commandé par le bureau du recensement aux États-Unis. Quelques années plus tard, Hollerith fonda la Computing Tabulating Recording, qui devint IBM (International Business Machine) en 1924.

Perforatrice manuelle de cartes

1936

Alan Turing développe un concept généralement connu sous le nom de « machine de Turing ». Il s’agit d’un dispositif capable de manipuler des symboles abstraits qui permet de simuler la logique de n’importe quel ordinateur. Cette machine est en fait une expérience de pensée qui doit permettre de mieux comprendre la logique et les limites du calcul numérique. De ce concept découlent les notions d’algorithme et de calculabilité en informatique.

Alan Turing

Alan Turing

1939

Les laboratoires Bell Telephone complètent le CNC (Complex Number Calculator), un ordinateur analogique basé sur des relais électromécaniques. En 1940, son concepteur, George Stibitz, a utilisé ce calculateur, situé à New York, à partir du collège Darmouth, au New Hampshire, établissant la première utilisation à distance d’un ordinateur.

CNC

Le clavier du CNC

Les premiers ordinateurs

1941

L’ordinateur Z3 de Konrad Zuse est complété en Allemagne. C’est la première machine de calcul complètement automatique et programmable. Elle était composée de 2000 relais, avait une fréquence d’horloge de 5 à 10 Hz et utilisait des mots de 22 bits pour ses calculs faits en binaire, soit environ 7 chiffres significatifs.
Une addition prenait en moyenne 0,7 seconde, et une multiplication, 3 secondes. Sa consommation électrique était de 4 kW. L’ordinateur d’origine a été détruit lors d’un bombardement allié en 1943.

1942

Le Atanasoff-Berry Computer (ou ABC), portant le nom de ses deux concepteurs, est complété au Iowa State College. Il s’agit du premier ordinateur numérique; il comportait 280 tubes à vide et 31 thyratrons.

Conçu pour résoudre un système comportant jusqu’à 29 équations linéaires, il n’était cependant pas programmable. Bien que cet ordinateur n’ait jamais été complètement fonctionnel, il a servi de source d’inspiration pour la conception du ENIAC.

L'ABC

1943

Le Colossus est développé en Grande-Bretagne pour décrypter les messages codés allemands. Il s’agit du premier ordinateur électronique programmable, par le biais d’une réorganisation de son réseau de câbles. Comme l’ABC, il utilisait des tubes à vide et des thyratrons, mais également des photomultiplicateurs qui permettaient de lire des bandes de papier comme unité d’entrée.

Le Colossus

1944

IBM livre le Mark I à l’Université Harvard. Cet ordinateur comprenait 3500 relais, et environ 500 miles de fil. Effectuant des calculs avec 23 chiffres significatifs, il lui fallait 0,3 seconde pour effectuer une addition ou une soustraction, et environ 6 secondes pour une multiplication. Cet ordinateur pouvait lire des instructions à partir d’une bande de papier perforée; il lisait (et effectuait) les instructions l’une après l’autre. On pouvait créer une boucle d’instructions simplement en en réintroduisant la bande de papier« en boucle ».

L’une des premières personnes à avoir utilisé cet ordinateur est la Rear Admiral Grace Murray Hopper. C’est elle qui a développé le premier compilateur pour un langage de programmation, le compilateur « A », à la fin des années 50. On lui attribue fréquemment l’origine de l’utilisation du mot bug, à cause de l’anecdote suivante :

un technicien travaillant sur le Mark II (le successeur du Mark I) avait trouvé un papillon dans un relais, le rendant inopérationnel. Elle a collé cet insecte dans son journal et inscrit à côté la mention first actual case of bug being found. Cependant, ce terme était déjà largement utilisé pour désigner des problèmes techniques à l’époque.

1944

Le Electronic Numerical Integrator And Computer (ENIAC) est complété à l’université de Pennsylvanie. Il s’agit du premier ordinateur électronique à usage général, et il ne fut construit qu’à 1 exemplaire. Il avait été commandé par l’armée américaine pour produire des tables d’artillerie. Son coût de fabrication a été de l’ordre de 500 000. Il était composé de 17 500 tubes à vide, 1 500 relais et pesait 27 tonnes; sa consommation électrique était de 150 kW. Il était muni d’un lecteur de cartes perforées IBM comme unité d’entrée.

Faisant ses calculs en base décimale avec 20 chiffres significatifs, il était capable d’accomplir 5000 additions par seconde, ou 385 multiplications, une amélioration très significative par rapport aux ordinateurs précédents.

ENIAC

L'ENIAC

1947

William Shockley, Walter Brattain et John Bardeen testent avec succès le transistor à point de contact, ce qui a lancé la révolution des semi-conducteurs. Les laboratoires AT&T de Bell ont ensuite amélioré ce concept, qui, plus petit, plus fiable et moins énergivore, a rapidement remplacé les anciens tubes à vide dans la fabrication des ordinateurs électroniques.

Bardeen, Shockley et Brattain en 1948

Bardeen, Shockley et Brattain en 1948

1959

Jack St. Clair Kilby, chez Texas Instruments, fabrique le premier circuit intégré (c.-à-d. un circuit électrique composé de transistors, de résistances et de condensateurs fabriqués sur un unique substrat semi-conducteur) sur une base de germanium.

1961

Robert Noyce, chez Fairchild Semiconductor, fabrique un circuit intégré à base de silicium, qui sera le premier circuit intégré commercialisé.

1971

Ted Hoff et Federico Faggin chez Intel en collaboration avec Masatoshi Shima chez Busicom, conçoivent le premier microprocesseur (c.-à-d. un circuit intégré qui correspond à une unité centrale [CPU] complète) commercial, le Intel 4004, ayant une vitesse d’horloge de 740 kHz, lui permettant d’effectuer 92 000 opérations par seconde (à noter qu’une addition correspond à plusieurs opérations; le nombre d’opérations requis dépend du processeur). Un seul de ces processeurs, de quelques centimètres de long, avait la puissance de calcul de l’ENIAC.

Processeur 4004 de Intel

Le Intel 4004

Fin des années
1970

C’est l’apparition des premiers ordinateurs personnels. On voit apparaître le PET de Commodore, les Atari 400 et 800, le Apple II et le TRS-80. En 1981, IBM fabrique son Personal Computer le IBM 5150, qui sera connu plus simplement sous le nom de IBM PC.

Le grand succès commercial de cet ordinateur en fait un nouveau standard, et plusieurs compagnies utiliseront l’architecture de cet ordinateur, qu’IBM a choisi de rendre publique afin de favoriser l’essor de la concurrence pour la fabrication des différentes composantes, et fabriqueront des ordinateurs « compatibles PC ».

Un PET de Commodore

Les superordinateurs

1961

IBM fabriqua ce que l’on pourrait considérer comme le premier superordinateur, le IBM 7030, aussi appelé Stretch, qui a été livré aux laboratoires de recherche de Los Alamos. Vendu au prix de 7,78 millions de dollars américains, cet ordinateur fut le plus puissant au monde jusqu’en 1964.

IBM 7030 Stretch

Le IBM 7030

1964

Seymour Cray, alors à l’emploi de la Control Data Corporation, a été le principal créateur du CDC-6600, un ordinateur trois fois plus puissant que l’IBM 7030. Plusieurs versions de cet ordinateur ont été créées, dont une avec un cœur double. Cet ordinateur a également été le premier à effectuer des calculs parallèles. Cet ordinateur possédait :
• 128 Ko de mémoire vive;
• une vitesse d’horloge de 10 MHz;
• une performance maximale pouvant atteindre 3 Mflops.

Le CDC-7600, son successeur, possédait quant à lui une structure qui préludait au processeur vectoriel.

1972

Seymour Cray fonda la Cray Research Inc., qui domina le domaine des superordinateurs jusqu’à la fin des années 1980. Son premier produit, le Cray-1, était un ordinateur vectoriel qui est devenu dans ses implémentations subséquentes, le premier ordinateur à mémoire partagée (Steve Chen). Cet ordinateur contenait environ 200 000 portes logiques, soit environ le même nombre que ce que l’on trouvait dans le processeur 386 de Intel produit à partir de 1986.

Deux caractéristiques ont contribué au succès de cet ordinateur. D’abord, il était doté d’un processeur vectoriel qui permet, lorsque la même opération doit être faite plusieurs fois, de l’introduire dans un pipeline d’instructions qui augmente la rapidité du calcul. Cet ordinateur a également été doté de registres, des unités de mémoire à accès ultrarapide permettant d’éliminer l’un des goulots d’étranglement présents dans les calculs numériques. Les registres sont maintenant présents dans tous les ordinateurs. Seule leur taille varie!

Le premier Cray-1 fut livré en 1976 au Los Alamos National Laboratory au Nouveau-Mexique. Le second exemplaire fut acheté par le National Center for Atmospheric Research (Colorado) en 1977, au coût de 8,86 millions de dollars américains.

Cray-1

Le Cray-1

1982

Le Cray X-MP succède au Cray-1. Il s’agit du premier ordinateur parallèle. Il atteint une performance de 800 Mflops. Il sera suivi, en 1985 par le Cray-2, qui avait une performance pouvant atteindre 1,9 Gflops.

1986

Apple achète un Cray X-MP afin de concevoir son nouveau Macintosh. Ce à quoi Seymour Cary répond : « C’est très intéressant parce que j’utilise un Macintosh de Apple pour concevoir le Cray-2 ».

Fin
1980

Les ordinateurs massivement parallèles font leur apparition, et vont prendre la première place dans le monde des superordinateurs. Leur principe de base consiste à séparer le travail de calcul entre plusieurs processeurs (moins puissants que ceux du Cray), chacun disposant de sa propre mémoire et de sa propre capacité de calcul. Apparaissent entre autres la Connection Machine de Thinking Machines Corporation, le KSR1 et KSR2 de Kendall Square Research, des ordinateurs à mémoire partagée, les nCUBE de la compagnie du même nom et le Meiko Computing Surface de Meiko Scientific.

• La CM-1 pouvait contenir jusqu’à 65 536 (216) processeurs, chacun disposant de 0,5 Ko de mémoire vive. Un article intéressant sur le rôle de Richard Feynman dans cette aventure : Cliquez ici.

• Le KSR1 pouvait posséder jusqu’à 1088 (17*26) processeurs à mémoire partagée, chacun avec une vitesse d’horloge de 20 MHz, et une performance maximale de 40 Mflops.

• La nCUBE 10 (1985) pouvait contenir jusqu’à 1024 processeurs, chacun possédant 128 Ko de mémoire vive, et une performance maximale de 500 Kflops. Jusqu’à 8 terminaux pouvaient accéder à l’ordinateur en même temps.

Les systèmes d’exploitation les plus populaires de l’époque sont Unix et VMS.

Un CM-2 de Thinking Machines (1987)

1993

Cray, ayant pris note de l’efficacité du calcul parallèle, se lance dans l’aventure en utilisant le processeur le plus rapide de l’époque, le DEC Alpha 21064, avec une vitesse d’horloge de 150 MHz : la compagnie commercialise le T3D, un ordinateur pouvant posséder jusqu’à 2048 (211) processeurs et redevient un leader dans le domaine des superordinateurs.

Un Cray T3D

Années
2000

Une nouvelle évolution se fait dans le domaine des supercalculateurs : plutôt que d’utiliser des architectures développées spécifiquement pour le calcul informatique, les fabricants décident d’utiliser une technologie qui est devenue plus abordable et qui consiste à acheter plusieurs micro-ordinateurs et à les connecter en réseau, ce que l’on appelle des grappes de calcul.

Les équations en physique

Depuis l’existence des premières civilisations (et peut-être avant, mais nous n’en avons pas de témoignage écrit), l’être humain cherche à comprendre les règles de base qui déterminent les lois de la nature.

Dans la Grèce antique, lorsque de telles règles étaient découvertes, on les exprimait avec des mots qui permettaient de les décrire. Le résultat obtenu pouvait être difficile à cerner, comme en témoigne l’extrait suivant, tiré des Œuvres d’Archimède, traduites par F. Peyrard en 1807, et qui explique ce qui se passe si l’on plonge un corps dans l’eau : Cliquez ici pour lire l’extrait.

Ces lignes expriment un concept, maintenant connu sous le nom de Poussée d’Archimède, et que l’on exprime mathématiquement de la façon suivante :

temp-formula

Archimède

Archimède

Cette équation nous dit qu’un corps plongé dans l’eau subira une force vers le haut PA qui est proportionnelle à la densité ρ et au volume V de fluide déplacé et dirigée en sens inverse de la gravité locale g. Cette seule équation permet non seulement de comprendre qu’une partie de l’iceberg dépasse de l’eau, parce qu’il est moins dense, mais également de calculer la fraction émergée, à partir du rapport entre la densité de l’eau et celle de la glace. Ainsi, quelques caractères suffisent à remplacer une page et demie de texte explicatif. C’est là tout l’intérêt des mathématiques en sciences : elles permettent d’exprimer de manière compacte et précise des concepts complexes.

On pourrait se demander pourquoi alors Archimède n’a pas choisi d’utiliser cette formulation pour décrire ses observations puisque les Grecs savaient calculer! En fait, avant même les Grecs, les Mésopotamiens puis les Égyptiens avaient des notions d’algèbre et de géométrie. Cependant, tout comme on apprend maintenant très jeune qu’il ne faut pas additionner des pommes avec des oranges, à cette époque personne n’avait eu l’idée de multiplier des quantités qui exprimaient des concepts différents. Si par exemple il était possible de multiplier une longueur par une largeur pour obtenir une aire, personne n’aurait osé imaginer diviser une masse par un volume pour obtenir une densité! De plus, les mathématiques ont longtemps été elles aussi exprimées sous forme de mots, plutôt que sous la forme compacte que l’on connaît maintenant.

C’est à la Renaissance que les équations, semblables à celles que l’on connaît maintenant, feront leur apparition. Tout d’abord, les Européens vont alors prendre connaissance des écrits arabes et indiens, et délaisser les chiffres romains pour adopter les chiffres arabo-indiens, ainsi que le 0. C’est également à cette époque que les symboles mathématiques feront leur apparition. Par exemple, Nicole d’Oresme utilisera le symbole + (inspiré du latin « et ») vers 1360 puis, en 1557, Robert Recorde introduira le symbole = pour représenter l’égalité.

Galilée

Galilée

À la même époque, Galilée (1564-1642) va mettre en place les fondements de la méthode scientifique, basée sur la confrontation entre expériences et théorie. Pour ce faire, il aura recours à une description mathématique précise des phénomènes qu’il étudie, ce qui constituera l’un des premiers rapprochements entre physique et mathématiques. Il écrira :

« La philosophie [au sens de science(s) de la nature] est écrite dans ce livre gigantesque qui est continuellement ouvert à nos yeux (je parle de l’Univers), mais on ne peut le comprendre si d’abord on n’apprend pas à en comprendre la langue et à en connaître les caractères dans lesquels il est écrit. Il est écrit en langage mathématique, et les caractères en sont des triangles, des cercles, et d’autres figures géométriques, sans lesquelles il est impossible d’y comprendre un mot. Dépourvu de ces moyens, on erre vainement dans un labyrinthe obscur.»

René Descartes

René Descartes

C’est Descartes (1596-1650) qui va effectuer l’étape suivante, avec le développement de la géométrie analytique, qui consiste à utiliser les principes de l’algèbre pour étudier la géométrie permettant d’extraire des valeurs numériques de représentations graphiques.