Американцы собрали ЭВМ не для того, чтобы играть в тетрис — тридцатитонная машина помогала военным. А её первыми программистами стали шестеро девушек.
Фото: Jerry Cooke / Getty ImagesИстория компьютера ENIAC началась в 1930-х, когда американский профессор Джон Мокли захотел предсказывать погоду не на недели, а на годы вперёд. Он считал, что для этого нужно разгадать закономерности вспышек и пятен на Солнце.
У профессора были данные наблюдений метеорологов за много лет. Чтобы проанализировать их, он купил у банков списанные калькуляторы и усадил за работу студентов. Но вычисления шли медленно — информации было много, а студенты часто ошибались.
Мокли понял: чтобы ускорить работу, нужно мощное вычислительное устройство. Тогда он начал разрабатывать машину на радиолампах, которая выдавала бы результат сразу после ввода информации. Но собрать её изобретатель не мог — у него не хватало денег.
В 1941 году Мокли начал преподавать в инженерной школе при университете. Там он познакомился с изобретателем Джоном Эккертом, которого тоже увлекла идея создать электронный компьютер.
Компьютер для артиллерии
Вскоре у Мокли появилась возможность реализовать идею. В 1942 году союзники высадились в Северной Африке и артиллеристам понадобились баллистические таблицы под местный климат.
Школа, где работал Мокли, сотрудничала с баллистической лабораторией. В ней такие таблицы составляла сотня сотрудников — в основном девушки с высшим математическим образованием.
Девушек в лаборатории называли просто — «компьютеры» (от англ. computer — вычислитель). В Америке тогда царило гендерное неравенство и к инженерным задачам женщин не допускали, а вот кропотливую, трудоёмкую и низкооплачиваемую работу им доверяли. Впрочем, девушки были довольны — это была хорошая альтернатива карьере провинциальной учительницы.
Таблицы составляли для всех снарядов и орудий. Причём для каждого вида нужно было рассчитать около трёх тысяч траекторий полёта и учесть множество факторов: угол возвышения ствола, скорость снаряда, температуру воздуха, атмосферное давление, скорость и направление ветра.
Люди решали сложные дифференциальные уравнения, а потом рассчитывали значения полученных функций на логарифмических линейках и арифмометрах. Часть вычислений выполняли на дифференциальном анализаторе, но он работал неточно и результаты приходилось перепроверять. Расчёт каждой траектории состоял из 1000 операций, а на вычисление всей таблицы у сотни людей уходило четыре года.
Сотрудницы баллистической лаборатории работают на дифференциальном анализаторе. Фото: Wikimedia CommonsОбъём работ был огромным, и люди с ним не справлялись. Тогда Мокли с Эккертом обратились к начальству своего института с предложением создать электронную вычислительную машину, которая сможет ускорить расчёты во много раз. Но их идею не оценили.
В апреле 1943 года Мокли по совету знакомых подал заявку на выделение средств напрямую в баллистическую лабораторию. Он обещал, что построенный компьютер будет вычислять одну траекторию за пять минут.
В описании проекта Мокли схитрил — назвал своё изобретение электронным дифференциальным анализатором, чтобы не вызвать недоверие у военных. Они не любили финансировать всё новое и непроверенное, но анализаторы были вещью знакомой.
У проекта тут же появилось немало противников. Они ворчали, что радиолампы быстро выйдут из строя, а одна перегоревшая деталь остановит всю машину. Даже знаменитый физик Энрико Ферми сказал, что лампы в таком количестве проработают не больше пяти минут. Тем не менее деньги учёным дали.
В 1944 году все чертежи были готовы и группа инженеров под руководством Мокли и Эккерта начала строить компьютер. Начальником проекта стал Мокли, а главным конструктором — Эккерт. Позже в качестве научного консультанта к ним присоединился Джон фон Нейман.
Машина весом в 30 тонн
Осенью 1945 года компьютер построили. Его назвали ENIAC — электронным числовым интегратором и вычислителем. Машина получилась весом в 30 тонн и длиной в 30 метров, в ней было 17 000 радиоламп, 10 000 конденсаторов, 7000 резисторов, 15 000 реле и 6000 переключателей.
Так выглядел ENIAC. Фото: Wikimedia CommonsАрхитектура ENIAC была несовершенной, поэтому на него ушло так много деталей. У компьютера были модули для сложения, умножения, деления и извлечения квадратного корня. Промежуточные результаты передавались от модуля к модулю.
В современных компьютерах числа хранятся в регистрах, обрабатываются в отдельных арифметических модулях, а результаты опять помещаются в регистры, но в ENIAC каждый модуль хранения чисел был одновременно модулем обработки, который мог выполнять арифметические операции.
ENIAC работал не с двоичным кодом, а с десятичными числами. На каждую цифру приходилось 10 ламп: если горела лампа №1 — это был ноль, №2 — единица, №3 — двойка и так далее. Это приводило к огромному расходу электронных элементов. Например, чтобы представить число 1000 в двоичном виде (1111101000), нужно 10 ламп — по одной на каждую цифру в двоичной системе счисления. А в схеме ENIAC для этого требовалось 40 ламп — по 10 на одну цифру.
ENIAC мог совершать 357 операций умножения или 5000 операций сложения в секунду. В его памяти помещалось 20 десятизначных чисел.
Обратите внимание: Краткая история | Как принц Сётоку написал первую Конституцию.
Компьютер не хранил программы в памяти.Фото: Wikimedia CommonsНи операционных систем, ни языков программирования тогда не было, поэтому всё делали вручную — устанавливали переключатели и присоединяли провода. Данные на перфокартах вводили через кард-ридер IBM, а для вывода результатов использовался перфоратор IBM.
Хотя ENIAC не был таким надёжным, как электромеханический компьютер Mark I Говарда Эйкена, по скорости он превосходил его в тысячу раз. А на траекторию, которую механический дифференциальный анализатор рассчитывал в течение 15 минут, ENIAC тратил всего 20 секунд. Работал он с той же точностью, что и человек с механическим калькулятором.
Расчёты для проектирования водородной бомбы и сверхзвукового самолёта
14 февраля 1946 года ENIAC показали публике (этот день теперь считается Днём программиста). Сначала компьютер за одну секунду посчитал сумму 5000 чисел, а затем — вычислил траекторию полёта снаряда быстрее, чем тот долетает от орудия до цели.
Присутствовавшие удивились. Они видели: чтобы машина ожила и начала вычислять, достаточно было нажать одну кнопку. Восхищённые репортёры называли ENIAC «электронным мозгом», «искусственным мозгом» и «волшебником».
Когда ENIAC был готов, война уже закончилась и артиллерийские расчёты стали не такими актуальными. Для него подобрали новую задачу — проверить один из вариантов устройства водородной бомбы.
Задача требовала огромного объёма вычислений, для которых пришлось бы решать дифференциальные уравнения. Программисты разбивали её на несколько этапов — сначала решения находили вручную, а потом переводили этот алгоритм на язык переключателей и проводов, чтобы всё автоматизировать.
Промежуточные результаты выводили на перфокарты и после перенастройки снова вводили в компьютер. С чем-то похожим тогда не могло справиться ни одно из электромеханических устройств.
ENIAC умел выполнять сложные операции, в том числе циклы, переходы и подпрограммы, но предварительно все уравнения нужно было решить вручную огромное количество раз.
На расчёты для создания водородной бомбы ушёл миллион перфокарт. Компьютер с задачей справился, и водородную бомбу создали. Большую часть расчётов не рассекретили до сих пор.
На ENIAC прогнозировали погоду в Советском Союзе, чтобы узнать, где выпадут радиоактивные осадки в случае ядерной войны. Ещё проводили инженерные расчёты, составляли баллистические таблицы, в том числе для атомных боеприпасов. Британский физик Дуглас Хартри рассчитал на ENIAC аэродинамику сверхзвукового самолёта.
Фон Нейман вычислял на ENIAC числа π и е (число Эйлера) с точностью в 2000 знаков после запятой. Он хотел выяснить, как цифры в этих числах распределены статистически, чтобы узнать, могут ли компьютеры генерировать случайные числа. Оказалось, что могут. Позже с группой метеорологов фон Нейман сделал первый численный прогноз погоды.
Невидимые программисты ENIAC
На презентации ENIAC никто не узнал про работу девушек, которые запрограммировали компьютер для демонстрации. Они были на мероприятии, но изображали хозяек — рассаживали гостей, раздавали им перфокарты и бумаги с результатами вычислений.
О команде программистов первой ЭВМ совершенно случайно узнали только в конце восьмидесятых. В 1946 году выпускница Гарварда Кети Клейман нашла фотографии с демонстрации ENIAC, на которых были подписаны только мужчины. Она спросила о женщинах у компьютерного историка, но он ответил, что это refrigerator ladies — так называли моделей, которые позировали для рекламы холодильников и стиральных машин.
Кети не устроил этот ответ, и она нашла сведения о девушках-программистах, которые рассчитывали процесс ядерного синтеза, траектории полётов баллистических ракет и форму крыльев сверхзвукового самолёта. Она даже их разыскала, записала и опубликовала интервью.
Оказалось, что для работы на ENIAC выбрали лучших вычислителей из Лаборатории баллистических исследований: Кей Антонелли, Фрэнсис Билас, Джин Дженнингс, Рут Лихтерман, Бетти Холбертон и Марлин Вескоф. Эти девушки стали первыми в мире программистами ЭВМ.
Программисты ENIAC. Фото: Wikimedia CommonsИх команда программировала и поддерживала ENIAC. Чтобы ввести новую программу, им каждый раз приходилось его перекоммутировать — установить тысячи тумблеров в новое положение и протянуть много проводов. Электронные лампы и конденсаторы перегорали почти каждый день, и для их замены операторы часами искали неисправные элементы. Одна настройка занимала несколько дней, на отладку уходили недели.
Программирование ENIAC. Фото: Wikimedia CommonsПри работе с ENIAC нашли решения, которые легли в основу современного программирования. Бетти Холбертон изобрела точку останова, а Кей Антонелли — подпрограмму.
Позже Бетти Холбертон и Джин Дженнингс разработали процедуру сортировки, помогали переделать ENIAC в машину с хранимой программой и создать компьютер UNIVAC. Именно Бетти Холбертон предложила заменить цвет панелей ENIAC с чёрного на серо-бежевый, который стал стандартом для компьютеров.
Работа девушек не получила особого признания — её называли второстепенной, «женской». Ведущие физики и инженеры проектировали и создавали вычислительное оборудование, это дело считали гораздо более важным.
Конец ENIAC
ENIAC работал до 1955 года. Несмотря на то что компьютер много раз модернизировали, к этому времени он окончательно устарел. Его демонтировали, когда появились более совершенные и мощные ЭВМ.
Машин с похожей архитектурой больше никогда не строили — вскоре в Пенсильванском университете разработали фоннеймановскую архитектуру, которая используется в современных компьютерах.
Значимость ENIAC в том, что это был первый полностью электронный универсальный компьютер, который теоретически мог справиться с любой задачей. Он доказал, что вычислительную машину можно создать на основе электронных элементов и она окупится.
***
Чтобы не пропустить другие материалы о программировании, истории IT и искусственном интеллекте, подпишитесь в раздел. Ставьте лайки, чтобы видеть больше таких статей у себя в ленте. Если вы хотите, чтобы мы написали о каком-то факте или технологии, предложите свою тему в комментариях к этой или другим статьям.
#программирование #технологии #люди_и_код #история IT
Еще по теме здесь: История.
Источник: Как американцы собрали первую эвм, чтобы сделать водородную бомбу и защититься от ссср.