Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию
Шрифт:
В августе Мокли предложил способ помочь армии решить эту проблему, увеличив скорость расчетов. В своей докладной записке, названной «Использование высокоскоростных ламповых устройств для расчетов», он просил профинансировать создание машины, которую они с Эккертом спроектировали: цифровой электронной вычислительной машины, использующей схемы на электронных лампах, которая могла бы решать дифференциальные уравнения и выполнять другие математические задачи. Он писал: «Если использовать устройства, в которых применяются электронные компоненты, можно получить огромный выигрыш в скорости расчета». Он даже подсчитал, что траектория снаряда могла бы быть рассчитана за «100 секунд» [129] .
129
John W Mauchly, The Use of High Speed Vacuum Tube Devices for Calculating, 1942 г.,
Докладная записка Мокли была проигнорирована деканами Пенна, но ее довели до сведения офицера, прикомандированного к университету, — лейтенанта (вскоре ставшего капитаном) Германа Голдстайна, двадцатидевятилетнего профессора математики из Университета Мичигана. Его задача состояла в том, чтобы ускорить составление баллистических таблиц, и в какой-то момент он отправил свою жену Адель, также математика, в поездку через всю страну, чтобы набрать больше женщин в батальоны «расчетчиков» Пенна. Записка Мокли убедила его, что для этого есть лучший способ.
Решение военного министерства США профинансировать строительство электронного компьютера состоялось 9 апреля 1943 года. Накануне Мокли и Эккерт не спали всю ночь, работая над своим предложением, но так и не закончили его к тому моменту, когда нужно было садиться в автомобиль, который должен был за два часа доставить их из Пенна на полигон в Абердине (штат Мэриленд), где собрались чиновники отдела вооружений. Поскольку за рулем был лейтенант Голдстайн, они сидели на заднем сиденье и писали недописанные разделы, и они продолжили работать в маленькой комнате, даже когда прибыли в Абердин, а Голдстайн в это время пошел на совещание. Оно прошло под председательством Освальда Веблена, президента Института перспективных исследований в Принстоне, который консультировал военных по математическим проектам. Там присутствовал и полковник Лесли Саймон, директор баллистической научно-исследовательской лаборатории. Голдстайн вспоминал, как это происходило: «Веблен, послушав некоторое время мое выступление и качаясь на задних ножках своего стула, с грохотом опустил его, встал и сказал: „Саймон, дай Голдстайну деньги“. С этими словами он вышел из комнаты, и встреча закончилась на этой радостной ноте» [130] .
130
Интервью Мокли, Smithsonian; Goldstine, The Computer from Pascal to von Neumann, 3169; McCartney, ENIAC, 61.
Мокли и Эккерт включили свою докладную записку в статью, которую они озаглавили «Отчет об электронном дифф. анализаторе». Использование сокращения «дифф.» (diff.) имело двойной смысл — оно обозначало и разности (differences), которые отражали цифровой характер предлагаемой машины, и дифференциальные (differential) уравнения, которые предполагалось решать. Вскоре ей было дано более запоминающееся имя: ENIAC, что в переводе означает «электронный цифровой интегратор и компьютер». Несмотря на то, что ENIAC был разработан в первую очередь для решения дифференциальных уравнений, которые являются ключевыми в расчетах траекторий снарядов, Мокли написал в статье, что он может быть дополнен «программатором» и это позволит ему решать другие задачи, что сделает его компьютером более общего назначения [131] .
131
Burks, Who Invented the Computer? 71.
Строительство ENIAC началось в июне 1943 года. Мокли, который продолжал вести преподавательскую работу, работал в качестве консультанта и стратега. Голдстайн, как представитель военных, руководил производственным процессом и бюджетом. А Эккерт, с его страстью к деталям и перфекционизму, был главным инженером. Эккерт настолько погрузился в проект, что иногда оставался спать рядом с машиной. Однажды два инженера в шутку осторожно перенесли его раскладушку в такую же комнату этажом выше, и когда он проснулся, то на какое-то мгновение испугался, что машину украли [132] .
132
McCartney, ENIAC, 89.
Зная, что и величайшие идеи мало чего стоят без точного воплощения (урок, который усвоил Атанасов), Эккерт взял на себя каждодневное управление процессом
133
Интервью Эккерта, Charles Babbage Institute.
Эккерт и Мокли дополняли друг друга, и подобные дуэты, которые обеспечивали два центра управления, были характерны для цифровой эры. Эккерт допекал исполнителей своим педантизмом, Мокли же, как правило, успокаивал их, давал им почувствовать свою ценность. «Он всегда шутил с людьми, — вспоминал Эккерт, — он умел обаять». Эккерт, чьи технические таланты сочетались с нервозностью и неожиданными приступами рассеянности, очень нуждался в интеллектуальном собеседнике, и Мокли нравилась эта роль. Хотя Мокли и не был инженером, он умел так увязать научные теории с инженерными практическими вопросами, что это вдохновляло Эккерта. Позже он признался: «Мы сделали это вместе, и я не думаю, что кто-то из нас сделал бы это в одиночку» [134] .
134
Интервью Эккерта, Charles Babbage Institute.
ENIAC был цифровой машиной, но вместо двоичной системы, которая использовала только 0 и 1, ее счетчики были рассчитаны на десятичную систему. В этом смысле она была не похожа на современный компьютер. Но в остальном она была более продвинутой, чем машины, построенные Атанасовым, Цузе, Айкеном и Стибицем. В ней была заложена возможность так называемого условного ветвления (описанного Адой Лавлейс веком ранее), то есть возможности переходов в программе, зависящих от промежуточных результатов, и она могла повторять блоки команд (подпрограммы), что позволяло выполнять общие задачи. Эккерт объяснял: «У нас была возможность включать в программы подпрограммы и подпрограммы подпрограмм». Он вспоминал, что, когда Мокли предложил заложить эту функцию в машину, он «сразу понял, что это идея, которая станет ключевой для всей конструкции» [135] .
135
Интервью Эккерта, Charles Babbage Institute; Randall, A Lost Interview with Presper Eckert.
Через год после начала строительства, примерно во время операции D-Day [136] — в июне 1944 года, Мокли и Эккерт уже смогли проверить первые два компонента, составляющие примерно одну шестую часть всего запланированного в машине. Они начали с простой задачи умножения, и когда машина выдала правильный ответ, они восторженно закричали. Но для того чтобы привести ENIAC полностью в рабочее состояние, потребовалось больше года — они закончили в ноябре 1945 года. К этому моменту машина была в состоянии выполнять пять тысяч сложений и вычитаний в секунду, то есть в сто с лишним раз быстрее, чем любая предыдущая машина. Машина была примерно 30 метров в длину и около 2,5 метра в высоту, она весила около тридцати тонн и включала в себя 17 468 электронных ламп. Для сравнения: компьютер Атанасова — Берри, в то время томившийся в подвале Университета Айовы, был размером с письменный стол, в нем было только триста ламп, и он мог выполнять только тридцать сложений или вычитаний в секунду.
136
День высадки союзнической армии в Нормандии 6 июня 1944 года.
Блетчли-Парк
В конце 1943 года другой электронный компьютер, использующий электронные лампы, собирали в условиях строгой секретности в подвале викторианской усадьбы из красного кирпича, расположенной в городе Блетчли. Но в то время немногие посторонние знали об этом и не будут знать еще в течение более трех десятилетий. Блетчли — городок примерно в девяноста километрах к северо-западу от Лондона, и там англичане собрали команду гениальных теоретиков и инженеров для того, чтобы взломать немецкие коды, используемые теми во время войны. Компьютер, названный Colossus, был первым полностью электронным, частично программируемым компьютером. Поскольку машина была предназначена для решения определенной задачи, она не была машиной общего назначения, но в его конструкции проявилось влияние Алана Тьюринга.