ENIAC

ENIAC (Electronic Numerical Integrator and Computer)

L’ENIAC (Electronic Numerical Integrator and Computer) est l’un des premiers grands ordinateurs électroniques numériques à usage général. Conçu à la Moore School of Electrical Engineering de l’université de Pennsylvanie pour l’armée américaine, il doit à l’origine accélérer le calcul des tables de tir utilisées par l’artillerie.John W. Mauchly et J. Presper Eckert dirigent sa conception à partir de 1943. La machine devient opérationnelle à la fin de 1945, trop tard pour participer à la Seconde Guerre mondiale. L’un de ses premiers grands travaux concerne alors des calculs thermonucléaires pour le laboratoire de Los Alamos.Présenté au public en février 1946, l’ENIAC impressionne avec près de 18 000 tubes à vide et environ 30 tonnes de matériel. Mais sa véritable révolution tient surtout à sa vitesse : il peut effectuer environ 5 000 additions par seconde.

L’ENIAC est également programmable. Cependant, son programme n’est pas encore enregistré dans une mémoire comme sur un ordinateur moderne. Pour changer de calcul, il faut configurer des commutateurs et organiser les connexions entre ses différentes unités.

Fiche rapide

  • Nom : ENIAC — Electronic Numerical Integrator and Computer
  • Institution : Moore School of Electrical Engineering, université de Pennsylvanie
  • Commanditaire : armée américaine, Ballistic Research Laboratory
  • Concepteurs principaux : John W. Mauchly et J. Presper Eckert
  • Début du projet : 1943
  • Mise en fonctionnement : fin 1945
  • Présentation publique : 14-15 février 1946
  • Architecture : décimale
  • Mémoire de travail : 20 accumulateurs de 10 chiffres décimaux signés
  • Technologie : environ 18 000 tubes à vide
  • Vitesse : environ 5 000 additions par seconde
  • Masse : environ 30 tonnes
  • Consommation : environ 150 kW
  • Programmation originale : commutateurs et câblage
  • Fin de service : 1955

Pourquoi construire l’ENIAC ?

Pendant la Seconde Guerre mondiale, l’armée américaine doit produire de nombreuses tables de tir. Elles permettent notamment de prévoir la trajectoire d’un projectile selon sa vitesse initiale, l’angle du canon, la résistance de l’air ou les conditions atmosphériques.

Ces calculs demandent de résoudre numériquement des équations différentielles et de répéter les opérations pour de nombreuses situations.

Une partie du travail est alors réalisée par des personnes appelées « computers », c’est-à-dire des calculateurs humains. Beaucoup sont des femmes formées aux mathématiques. La Moore School utilise également des calculatrices mécaniques et un analyseur différentiel.

Malgré ces moyens, la production reste trop lente. L’armée cherche donc une machine capable d’effectuer ces milliers d’opérations beaucoup plus rapidement.

La rupture : remplacer la mécanique par l’électronique

Mauchly et Eckert proposent d’utiliser des circuits électroniques à la place des mécanismes et des relais employés par les calculateurs précédents.

Le projet repose sur les tubes à vide, déjà utilisés dans les équipements de radio et de télécommunication. En employer près de 18 000 dans une même machine constitue toutefois un défi considérable, notamment en matière de fiabilité.

L’armée finance officiellement le projet en 1943 et la construction commence à la Moore School.

Le résultat change radicalement l’échelle du calcul. L’ENIAC peut effectuer environ 5 000 additions par seconde.

Lors d’une démonstration en 1946, il calcule en une vingtaine de secondes une trajectoire correspondant à environ trente secondes de vol réel.

Pour la première fois, une machine peut donc calculer une trajectoire plus rapidement que le projectile ne la parcourt.

Comment fonctionne l’ENIAC ?

L’ENIAC ne possède pas encore l’organisation d’un ordinateur moderne avec un processeur central exécutant des instructions stockées dans une grande mémoire.

Il se compose d’un ensemble d’unités spécialisées reliées entre elles : 20 accumulateurs, une unité de multiplication, une unité de division et de calcul de racines carrées, des tables de fonctions, un transmetteur de constantes et un Master Programmer.

Contrairement à la majorité des ordinateurs ultérieurs, l’ENIAC travaille principalement en décimal.

Ses 20 accumulateurs constituent le cœur du système. Chacun peut conserver un nombre signé comportant jusqu’à 10 chiffres décimaux. Ils ne servent pas seulement à mémoriser temporairement des valeurs : ils peuvent également effectuer des additions et des soustractions puis transmettre leurs résultats à d’autres unités.

Les opérations plus complexes, comme la multiplication ou la division, utilisent des unités spécialisées.

Comment programme-t-on l’ENIAC ?

C’est probablement ce qui distingue le plus l’ENIAC d’un ordinateur actuel.

Aujourd’hui, un programme est une suite d’instructions codées et conservées en mémoire. Sur l’ENIAC original, le programme n’est pas stocké de cette manière.

Les programmeuses commencent par décomposer le problème en opérations élémentaires : charger une valeur, additionner, multiplier, transférer un résultat ou répéter une séquence.

Elles règlent ensuite des commutateurs pour déterminer le comportement des unités et installent des câbles pour organiser leurs échanges.

Le programme existe donc en grande partie dans la configuration physique de la machine.

Programmer l’ENIAC, c’est configurer son matériel pour qu’il réalise l’algorithme souhaité.

Les données et les ordres

Le fonctionnement est cependant plus subtil qu’un simple ensemble de câbles.

Certains circuits transportent les nombres entre les unités. D’autres transportent des impulsions de programme qui déclenchent les opérations.

Ainsi, lorsqu’une unité termine son travail, elle peut envoyer une impulsion qui déclenche l’étape suivante.

L’ENIAC distingue donc déjà deux notions essentielles : les données à traiter et le contrôle qui détermine ce que la machine doit faire.

Boucles et décisions

L’ENIAC peut également réaliser des structures que nous associons aujourd’hui à la programmation.

Le Master Programmer permet notamment de répéter une séquence un nombre déterminé de fois. Il joue donc un rôle comparable à celui d’une boucle.

La machine peut aussi réaliser certaines formes de branchement conditionnel. Le résultat d’une opération, notamment le signe d’un nombre, peut orienter le calcul vers une séquence différente.

L’ENIAC possède ainsi des mécanismes permettant d’enchaîner des opérations, de les répéter et de choisir entre plusieurs séquences, même si tout cela est encore réalisé par la configuration matérielle.

Les six programmeuses de l’ENIAC

Six mathématiciennes sont choisies pour programmer la nouvelle machine :

  • Jean Jennings, future Jean Bartik ;
  • Betty Snyder, future Betty Holberton ;
  • Kathleen « Kay » McNulty ;
  • Frances Bilas, future Frances Spence ;
  • Marlyn Wescoff, future Marlyn Meltzer ;
  • Ruth Lichterman, future Ruth Teitelbaum.

Il n’existe alors ni langage de programmation, ni compilateur, ni système d’exploitation.

Elles doivent comprendre les schémas de l’ENIAC, le fonctionnement de ses unités et les mathématiques du problème afin de déterminer comment organiser les calculs.

Leur travail ne consiste donc pas simplement à brancher des câbles selon des instructions fournies par les ingénieurs. Elles conçoivent les séquences d’opérations exécutées par la machine.

Elles font ainsi partie des pionnières de la programmation informatique.

1945-1946 : des premiers calculs à la présentation publique

L’ENIAC arrive trop tard pour accomplir pendant la guerre la mission pour laquelle il avait été commandé.

À la fin de 1945, Nicholas Metropolis et Stan Frankel utilisent notamment la machine pour effectuer des calculs liés à l’étude de réactions thermonucléaires pour Los Alamos. Il s’agit de l’un de ses premiers grands problèmes réels.

Les 14 et 15 février 1946, l’ENIAC est dévoilé au public.

Ses dimensions, ses milliers de tubes et surtout sa vitesse impressionnent la presse, qui popularise rapidement l’expression de « cerveau électronique ».

Cette comparaison reste trompeuse. L’ENIAC ne raisonne pas seul : sa vitesse dépend d’un important travail humain de préparation et de programmation.

Le problème change : la machine calcule plus vite qu’on ne la programme

L’ENIAC révèle rapidement un paradoxe.

Une fois configuré, il effectue très rapidement ses calculs. En revanche, préparer un nouveau programme complexe peut prendre beaucoup de temps.

Le calcul n’est plus nécessairement le principal goulot d’étranglement : la programmation le devient.

Cette difficulté influence directement les réflexions autour de son successeur, l’EDVAC.

En 1945, John von Neumann rédige le First Draft of a Report on the EDVAC. Le document contribue fortement à diffuser le principe d’une machine capable de conserver ses instructions sous une forme numérique.

Cette évolution résulte toutefois d’un travail collectif auquel participent notamment Eckert, Mauchly, von Neumann, Herman Goldstine et d’autres chercheurs de la Moore School.

1948 : l’ENIAC adopte des instructions codées

L’ENIAC lui-même évolue.

En 1948, une modification réduit fortement la nécessité de recâbler la machine pour chaque nouveau programme.

Les connexions principales restent désormais dans une configuration relativement fixe. Les instructions sont représentées par des codes numériques placés dans les tables de fonctions grâce à leurs nombreux commutateurs.

On passe donc progressivement de : « câbler le programme » à « coder les instructions ».

Il ne s’agit cependant pas encore d’une mémoire électronique réinscriptible comparable à celle des ordinateurs modernes.

La différence apparaît clairement avec le Manchester Baby. Le 21 juin 1948, celui-ci exécute un programme conservé directement dans sa mémoire électronique à tube Williams.

L’ENIAC modifié constitue donc une étape importante vers le programme enregistré, tandis que le Manchester Baby démontre le fonctionnement d’un programme véritablement stocké dans une mémoire électronique réinscriptible.

De l’ENIAC aux premiers programmes structurés

L’expérience acquise sur l’ENIAC transforme également la manière de concevoir les programmes.

En 1946, le mathématicien Haskell Curry travaille avec Willa Wyatt sur un problème d’interpolation inverse destiné aux calculs balistiques.

Ils cherchent notamment à décomposer le calcul en étapes pouvant être étudiées séparément puis combinées.

Cette démarche annonce une idée fondamentale de la programmation : construire un programme complexe à partir de parties plus petites et réutilisables.

Les routines, les sous-programmes puis les bibliothèques logicielles développeront largement ce principe.

De l’ENIAC à l’UNIVAC

Eckert et Mauchly quittent l’université de Pennsylvanie en 1946 et fondent leur propre entreprise.

Après le BINAC, ils développent l’UNIVAC I (Universal Automatic Computer). L’objectif change : l’ordinateur doit désormais pouvoir traiter de grandes quantités de données administratives et commerciales.

Plusieurs pionnières de l’ENIAC poursuivent cette aventure. Jean Bartik travaille sur le BINAC puis l’UNIVAC, tandis que Betty Holberton poursuit ses travaux sur la programmation.

En 1949, Grace Hopper rejoint également l’entreprise. Ses recherches contribueront ensuite au développement des compilateurs et des langages de programmation de plus haut niveau.

En 1951, le premier UNIVAC I est livré au Bureau du recensement des États-Unis.

L’ENIAC est-il le premier ordinateur ?

Présenter l’ENIAC simplement comme « le premier ordinateur de l’histoire » serait trop simplificateur.

Le Z3 de Konrad Zuse est programmable dès 1941, mais utilise des relais électromécaniques. Le Colossus britannique utilise l’électronique avant l’ENIAC, mais il est conçu pour des traitements spécialisés liés à la cryptanalyse. L’Atanasoff-Berry Computer explore également le calcul électronique numérique, sans être une machine programmable à usage général comparable à l’ENIAC.

L’importance de l’ENIAC repose donc moins sur un titre de « premier » que sur la combinaison de plusieurs caractéristiques : il est électronique, numérique, programmable et capable de résoudre une grande variété de problèmes numériques.

Surtout, il démontre que le calcul électronique à grande échelle est viable.

Mais l’ENIAC révèle aussi une autre révolution en cours : après avoir accéléré le calcul, il faut désormais trouver le moyen de programmer les machines plus facilement.

L’ENIAC se situe précisément à cette charnière : entre le calculateur que l’on configure physiquement et l’ordinateur que l’on programme avec des instructions.


Photo de couverture par Unidentified U.S. Army photographer — Image from Historic Computer Images, Domaine public, Lien

Publications similaires

  • IBM 704

    L’IBM 704 est un ordinateur scientifique 36 bits commercialisé par IBM en 1954. Conçu pour les calculs scientifiques et techniques, il occupe une place majeure dans l’histoire de la programmation : c’est notamment sur cette machine qu’est développé le premier compilateur FORTRAN. À la charnière des années 1956-1957, l’IBM 704 illustre également une transformation profonde…

  • |

    PDP-10

    Le PDP-10 est un grand ordinateur 36 bits commercialisé par Digital Equipment Corporation (DEC) à partir de 1967. Successeur du PDP-6, il devient l’une des machines emblématiques de l’informatique universitaire et scientifique des années 1960 et 1970. Contrairement aux mini-ordinateurs comme le PDP-8 ou le PDP-11, le PDP-10 appartient à la catégorie des grands systèmes,…

  • |

    Ferranti Mk1

    Le premier ordinateur commercial à programme enregistré Le Ferranti Mark 1 est un ordinateur électronique à programme enregistré, livré pour la première fois en février 1951 à l’Université de Manchester. Construit par la société britannique Ferranti Ltd, il constitue la version industrialisée du Manchester Mark I, développé dans le milieu universitaire. Il est généralement considéré…

  • |

    IBM System/360

    L’IBM System/360, souvent abrégé S/360 ou IBM 360, est une famille d’ordinateurs centraux annoncée par IBM le 7 avril 1964. Son importance ne tient pas à une seule machine particulièrement rapide, mais à une idée qui transforme profondément l’industrie informatique : proposer plusieurs ordinateurs de puissances différentes autour d’une même architecture. Pour une entreprise, cela…

  • RAMAC 305

    L’IBM 305 RAMAC (Random Access Method of Accounting and Control) est un système informatique de gestion commercialisé par IBM en 1956. Il occupe une place majeure dans l’histoire de l’informatique, car il constitue le premier système commercial utilisant un stockage sur disque à accès direct. Le RAMAC 305 ne désigne donc pas uniquement un disque…

  • GENERAL ELECTRIC GE-225

    Le General Electric GE-225 est un ordinateur central du début des années 1960. Il est surtout resté dans l’histoire parce qu’il a servi à Dartmouth pour le développement du temps partagé et du langage BASIC. L’ordinateur qui a rendu possible les débuts de BASIC et du temps partagé à Dartmouth Au début des années 1960,…