Введение

Первый электронный цифровой компьютер общего назначения ENIAC (/'/ɛ/n/i/æ/k/; Electronic Numerical Integrator and Computer) был первым программируемым, электронным, цифровым компьютером общего назначения, завершённым в 1945 году. Другие компьютеры обладали некоторыми из этих характеристик, но ENIAC был первым, в котором они были объединены. Он был Тьюринг-полным и мог решать "широкий класс численных задач" посредством перепрограммирования. ENIAC был разработан Джоном Маучли и Дж. Преспером Экертом для вычисления таблиц стрельбы артиллерии для Баллистической исследовательской лаборатории армии США (позднее ставшей частью Исследовательской лаборатории армии). Однако его первой программой стало исследование осуществимости создания термоядерного оружия. ENIAC был завершён в 1945 году и впервые использован в практических целях 10 декабря 1945 года. Официальная церемония открытия ENIAC состоялась 15 февраля 1946 года в Университете Пенсильвании. Его стоимость составила 487 000 долларов (487 000 долларов в 1943 году эквивалентны приблизительно <расчетной сумме> в современных условиях), а пресса окрестила его "Гигантским мозгом". Его скорость была примерно в тысячу раз выше, чем у электромеханических машин. ENIAC был официально принят Артиллерийским корпусом армии США в июле 1946 года. В 1947 году он был переведён на Абердинский полигон в Абердине, штат Мэриленд, где находился в непрерывной эксплуатации до 1955 года.

Разработка и проектирование

Проект и строительство ENIAC финансировались армией США, Корпусом артиллерии, Командованием исследований и разработок, возглавляемым генерал-майором Гладионом М. Барнсом. Общая стоимость составила около 487 000 долларов, что в 1943 году эквивалентно приблизительно <расчетной сумме> в настоящее время. Контракт на строительство был подписан 5 июня 1943 года, а работа над компьютером началась в тайне в Школе электротехники Университета Пенсильвании в следующем месяце под кодовым названием «Проект PX» под руководством Джона Гриста Брейнера в качестве главного исследователя. Герман Г. Голдстайн убедил армию финансировать проект, и был назначен ответственным за контроль над ним от их имени. ENIAC был разработан профессором физики колледжа Ursinus Джоном Маучли и Дж. Преспером Экертом из Университета Пенсильвании, США. В команду инженеров-конструкторов, участвовавших в разработке, входили Роберт Ф. Шоу (таблицы функций), Джеффри Чуан Чу (делитель/извлекатель квадратного корня), Томас Кайт Шарплес (главный программист), Фрэнк Мюрал (главный программист), Артур Беркс (умножитель), Гарри Хаски (устройство чтения/печати) и Джек Дэвис (аккумуляторы). Значительный вклад в разработку внесли женщины-математики, которые выполняли основную часть программирования ENIAC: Жан Дженнингс, Марлин Уэскофф, Рут Лихтерман, Бетти Снайдер, Франсис Билас и Кей МакНалти. В 1946 году исследователи покинули Университет Пенсильвании и основали корпорацию Eckert–Mauchly Computer Corporation. ENIAC представлял собой большой модульный компьютер, состоящий из отдельных панелей для выполнения различных функций. Двадцать из этих модулей были аккумуляторами, которые могли не только складывать и вычитать, но и хранить десятизначное десятичное число в памяти. Данные передавались между этими устройствами по нескольким шинам общего назначения (или лоткам, как их называли). Для достижения высокой скорости панели должны были отправлять и принимать числа, вычислять, сохранять результат и запускать следующую операцию, и все это без каких-либо движущихся частей. Ключевой особенностью его универсальности была возможность ветвления – он мог запускать различные операции в зависимости от знака вычисленного результата.

Компоненты

К концу своей эксплуатации в 1956 году ENIAC содержал 18 000 вакуумных ламп, 7 200 кристаллических диодов, 1 500 реле, 70 000 резисторов, 10 000 конденсаторов и приблизительно 5 000 000 ручных паяных соединений. Он весил более 30 тонн, был около 2,4 метра в высоту, 0,9 метра в глубину и 24 метра в длину, занимал 167 квадратных метров и потреблял 150 кВт электроэнергии. Ввод данных осуществлялся с помощью считывателя перфокарт IBM, а вывод – с помощью перфоратора карт IBM. Эти карты можно было использовать для получения печатных результатов в автономном режиме с помощью вычислительной машины IBM, такой как IBM 405. Хотя ENIAC изначально не имел системы хранения памяти, эти перфокарты могли использоваться для внешней памяти. В 1953 году в ENIAC была добавлена магнитная память на 100 слов, разработанная корпорацией Burroughs. ENIAC использовал десятипозиционные кольцевые счетчики для хранения цифр; для каждой цифры требовалось 36 вакуумных ламп, 10 из которых были двойными триодами, формирующими триггеры кольцевого счетчика. Арифметические операции выполнялись путем "подсчета" импульсов кольцевыми счетчиками и генерации импульсов переноса при "переполнении" счетчика, что имитировало работу зубчатых колес механической суммирующей машины. ENIAC имел 20 десятизначных аккумуляторов, использовавших систему дополнительного кода и способных выполнять 5 000 простых операций сложения или вычитания между любыми двумя из них и источником (например, другим аккумулятором или генератором постоянных значений) в секунду. Можно было подключить несколько аккумуляторов для параллельной работы, что потенциально увеличивало пиковую скорость вычислений. Можно было соединить цепь переноса одного аккумулятора с другим для выполнения арифметики с двойной точностью, однако временные характеристики цепи переноса аккумулятора не позволяли соединять три или более аккумулятора для достижения еще большей точности. ENIAC использовал четыре аккумулятора (управляемые специальным умножительным блоком) для выполнения до 385 операций умножения в секунду; пять аккумуляторов управлялись специальным блоком деления/извлечения квадратного корня для выполнения до 40 операций деления в секунду или трех операций извлечения квадратного корня в секунду. Остальные девять блоков ENIAC включали в себя блок инициации (запускал и останавливал машину), циклический блок (использовался для синхронизации других блоков), главный программист (управлял последовательностью циклов), считыватель (управлял считывателем перфокарт IBM), принтер (управлял перфоратором карт IBM), генератор постоянных значений и три таблицы функций.

Время работы

Ссылки на работы Рохаса и Хашагена (или Уилкса) в сравнении с петафлопсной и эксафлопсной вычислительной мощностью современных суперкомпьютеров.

Надежность

ENIAC использовал распространённые радиотрубы с октальным цоколем того времени; десятичные аккумуляторы были изготовлены из триггеров 6SN7, а 6L7, 6SJ7, 6SA7 и 6AC7 использовались в логических схемах. Многочисленные 6L6 и 6V6 служили драйверами линий для передачи импульсов по кабелям между блоками в стойках. Несколько ламп перегорали почти каждый день, из-за чего ENIAC был неработоспособен примерно половину времени. Специальные лампы повышенной надёжности стали доступны только в 1948 году. Однако большинство этих отказов происходило в периоды прогрева и остывания, когда нагреватели и катоды ламп испытывали наибольшие термические нагрузки. Инженерам удалось снизить частоту отказов ламп ENIAC до более приемлемого уровня – одна лампа каждые два дня. Согласно интервью с Экертом в 1989 году, «У нас примерно каждые два дня перегорала лампа, и мы могли локализовать проблему в течение 15 минут». В 1954 году самый продолжительный непрерывный период работы без отказов составил 116 часов – почти пять дней.

Программирование

ENIAC можно было программировать для выполнения сложных последовательностей операций, включая циклы, ветвления и подпрограммы. Однако, в отличие от компьютеров с хранимой программой, существующих сегодня, ENIAC представлял собой просто большую коллекцию арифметических устройств, в которых программы первоначально задавались посредством комбинации коммутационной панели и трех портативных таблиц функций (каждая содержала 1200 десятипозиционных переключателей). Задача преобразования задачи в форму, пригодную для машины, была сложной и обычно занимала недели. Из-за сложности настройки программ, изменения в программы вносились только после огромного количества тестов текущей версии. После того, как программа была разработана на бумаге, процесс ее реализации в ENIAC путем манипулирования переключателями и кабелями мог занимать несколько дней. За этим следовал этап проверки и отладки, облегчаемый возможностью пошагового выполнения программы. Учебное пособие по программированию функции модуля с использованием эмулятора ENIAC дает представление о том, как выглядела программа для ENIAC. Шесть основных программистов ENIAC – Кей МакНулти, Бетти Дженнингс, Бетти Снайдер, Марлин Уэскофф, Фрэн Билас и Рут Лихтерман – не только определяли способы ввода программ в ENIAC, но и глубоко понимали его внутреннее устройство. Программисты часто могли локализовать ошибку до конкретной неисправной лампы, на которую техник мог указать для замены.

Программисты

Во время Второй мировой войны, когда армии США требовалось вычислять баллистические траектории, для этой задачи проводили собеседования со многими женщинами. По меньшей мере 200 женщин были наняты в инженерную школу Мура для работы в качестве "компьютеров", и шесть из них были выбраны программистами ENIAC. Бетти Холбертон, Кей МакНалти, Марлин Уэскофф, Рут Лихтерман, Бетти Джин Дженнингс и Фрэн Билас запрограммировали ENIAC для выполнения электронных вычислений баллистических траекторий для Баллистической исследовательской лаборатории армии. В то время как мужчины с тем же образованием и опытом получали статус "профессионалов", этих женщин необоснованно определяли как "субпрофессионалов", хотя у них были профессиональные степени в математике и они были высококвалифицированными математиками. Однако некоторые женщины не получили признания за свою работу над ENIAC на протяжении всей жизни. После окончания войны женщины продолжали работать над ENIAC. Их опыт делал их позиции труднозаменимыми для возвращающихся солдат. Эти первые программисты были отобраны из группы около двухсот женщин, работавших "компьютерами" в Школе электротехники Мура при Университете Пенсильвании. Задача "компьютеров" заключалась в получении численного результата математических формул, необходимых для научного исследования или инженерного проекта. Обычно они выполняли это с помощью механического калькулятора. Женщины изучали логику машины, ее физическую структуру, работу и схемы, чтобы понимать не только математику вычислений, но и саму машину. Это была одна из немногих технических должностей, доступных женщинам в то время. Бетти Холбертон (урождённая Снайдер) продолжила помогать в разработке первой генеративной системы программирования (SORT/MERGE) и участвовать в проектировании первых коммерческих электронных компьютеров UNIVAC и BINAC вместе с Джин Дженнингс. Кей МакНалти разработала использование подпрограмм для повышения вычислительной мощности ENIAC. Герман Голдстин отобрал программистов, которых он называл "операторами", из числа "компьютеров", которые до и во время разработки ENIAC вычисляли баллистические таблицы с помощью механических настольных калькуляторов и дифференциального анализатора. Под руководством Германа и Адель Голдстин "компьютеры" изучали чертежи и физическую структуру ENIAC, чтобы определить, как манипулировать его переключателями и кабелями, поскольку языков программирования еще не существовало. Хотя современники считали программирование канцелярской работой и не признавали влияния программистов на успешную работу и представление ENIAC, МакНалти, Дженнингс, Снайдер, Уэскофф, Билас и Лихтерман впоследствии были признаны за их вклад в вычислительную технику. Должности "программиста" и "оператора" изначально не считались профессиями, подходящими для женщин. Нехватка рабочей силы, вызванная Второй мировой войной, способствовала привлечению женщин в эту сферу. Однако эта область не считалась престижной, и привлечение женщин рассматривалось как способ освободить мужчин для более квалифицированного труда. По сути, женщин рассматривали как средство удовлетворения потребностей во время временного кризиса. Например, Национальный консультативный комитет по аэронавтике заявил в 1942 году: "Считается, что выигрыш от освобождения инженеров от детальных вычислений достаточен для компенсации любых дополнительных расходов на зарплату "компьютеров". Сами инженеры признают, что "девушки-компьютеры" выполняют работу быстрее и точнее, чем они. Это во многом связано с тем, что инженеры считают, что их университетский и производственный опыт тратится впустую и подавляется простой повторяющейся работой по вычислениям". После первых шести программистов была набрана расширенная команда из ста ученых для продолжения работы над ENIAC. Среди них было несколько женщин, в том числе Глория Рут Гордон. Адель Голдстин написала оригинальное техническое описание ENIAC.

Роль в водородной бомбе

Хотя Баллистическая исследовательская лаборатория была спонсором ENIAC, через год после начала этого трехлетнего проекта Джон фон Нейман, математик, работавший над водородной бомбой в Лос-Аламосской национальной лаборатории, узнал о существовании ENIAC. В декабре 1945 года ENIAC был использован для вычисления термоядерных реакций на основе уравнений. Полученные данные использовались в поддержку исследований по созданию водородной бомбы.

Роль в разработке методов Монте-Карло

Роль ENIAC в разработке водородной бомбы была тесно связана с популяризацией метода Монте-Карло. Ученые, участвовавшие в разработке первой ядерной бомбы, использовали большие группы людей, выполнявших огромное количество вычислений ("компьютеры" в терминологии того времени), для определения вероятного расстояния пробега нейтронов в различных материалах. Джон фон Нейман и Станислав Улам осознали, что скорость ENIAC позволит проводить эти вычисления значительно быстрее. Успех этого проекта продемонстрировал ценность методов Монте-Карло для науки.

Позднее развитие

1 февраля 1946 года состоялась пресс-конференция, а вечером 14 февраля 1946 года была представлена завершенная машина с демонстрацией ее возможностей. Элизабет Снайдер и Бетти Джин Дженнингс отвечали за разработку программы демонстрационной траектории, хотя Херман и Адель Голдстайн приписали себе ее создание. На следующий день машина была официально представлена в Университете Пенсильвании. Ни одна из женщин, участвовавших в программировании машины или создании демонстрации, не была приглашена ни на официальную церемонию открытия, ни на праздничный ужин, последовавший за ней. Первоначальная сумма контракта составляла 61 700 долларов; окончательная стоимость составила почти 500 000 долларов (приблизительно 487 000 долларов в 1943 году эквивалентны примерно <расчетной сумме> в современных условиях). Машина была официально принята Корпусом вооружения армии США в июле 1946 года. ENIAC был выключен 9 ноября 1946 года для модернизации и обновления памяти, а в 1947 году перевезен на Абердинский полигон в Мэриленде. Там 29 июля 1947 года он был снова включен и работал непрерывно до 23:45 2 октября 1955 года, когда был выведен из эксплуатации в пользу более эффективных компьютеров EDVAC и ORDVAC. Пентагон пригласил "ведущих специалистов в области электроники и математики из Соединенных Штатов и Великобритании".

ENIAC был уникальной конструкцией и больше не повторялся. Заморозка проекта в 1943 году привела к тому, что машине не хватало некоторых инноваций, которые вскоре получили широкое развитие, в частности, возможности хранения программы. Эккерт и Мокли приступили к работе над новым проектом, впоследствии названным EDVAC, который должен был быть одновременно проще и мощнее. В частности, в 1944 году Эккерт написал описание блока памяти (ртутной линии задержки), который мог хранить как данные, так и программу. Джон фон Нейман, консультировавший Школу Мура по проекту EDVAC, присутствовал на заседаниях Школы Мура, где разрабатывалась концепция хранимой программы. Впоследствии фон Нейман составил неполный набор заметок ("Первый проект отчета об EDVAC"), который предназначался для использования в качестве внутреннего меморандума – описывающего, детализирующего и формулирующего на формальном логическом языке идеи, разработанные на заседаниях. Администратор ENIAC и сотрудник службы безопасности Герман Голдстин распространил копии этого "Первого проекта" среди ряда правительственных и образовательных учреждений, вызвав широкий интерес к созданию нового поколения электронных вычислительных машин, включая EDSAC (Electronic Delay Storage Automatic Calculator) в Кембриджском университете (Англия) и SEAC в Бюро стандартов США. После этого программирование осуществлялось путем установки переключателей. Эта идея была разработана в нескольких вариантах Ричардом Клиппингером и его группой, с одной стороны, и Голдстайнами, с другой, и была включена в патент на ENIAC. Клиппингер консультировался с фон Нейманом относительно того, какой набор инструкций следует реализовать. В апреле последовал "первый запуск" новых методов кодирования для решения задачи Монте-Карло. После переезда ENIAC в Абердин также была построена регистровая панель для памяти, но она не функционировала. Также был добавлен небольшой главный блок управления для включения и выключения машины. Программирование хранимой программы для ENIAC осуществляли Бетти Дженнингс, Клиппингер, Адель Голдстайн и другие.

Сравнение с другими ранними компьютерами

Механические вычислительные машины существовали со времен Архимеда (см. Механизм Антикитеры), но 1930-е и 1940-е годы считаются началом современной компьютерной эры. ENIAC, как и IBM Harvard Mark I и немецкий Z3, мог выполнять произвольную последовательность математических операций, но не считывал их с ленты. Как и британский "Колосс", он программировался с помощью коммутационной панели и переключателей. ENIAC объединял полную, по Тьюрингу, программируемость с электронной скоростью. Компьютеры Atanasoff–Berry (ABC), ENIAC и Colossus использовали термоэлектронные лампы (вакуумные трубки). Регистры ENIAC выполняли десятичную арифметику, в отличие от двоичной арифметики, используемой в Z3, ABC и Colossus. Как и "Колосс", ENIAC требовал перекоммутации для перепрограммирования до апреля 1948 года. В июне 1948 года "Манчестер Бейби" выполнил свою первую программу и получил признание как первый электронный компьютер с хранимой программой. Хотя идея компьютера с хранимой программой и объединенной памятью для программ и данных возникла в процессе разработки ENIAC, она изначально не была реализована в нем, поскольку приоритеты Второй мировой войны требовали быстрого завершения работы над машиной, а 20 ячеек памяти ENIAC были бы слишком малы для хранения данных и программ.

Общественное мнение

Z3 и Colossus были разработаны независимо друг от друга, а также от ABC и ENIAC во время Второй мировой войны. Работа над ABC в Университете штата Айова была остановлена в 1942 году после того, как Джона Атанасова вызвали в Вашингтон для проведения физических исследований для ВМС США, и впоследствии машина была демонтирована. Z3 был уничтожен в результате бомбардировок Берлина союзниками в 1943 году. Поскольку десять машин Colossus были частью военных усилий Великобритании, их существование оставалось секретным до конца 1970-х годов, хотя сведения об их возможностях были известны британскому персоналу и приглашенным американцам. ENIAC, напротив, был продемонстрирован прессе в 1946 году и "захватил воображение всего мира". Более ранние исторические работы по вычислительной технике могут поэтому не содержать исчерпывающего освещения и анализа этого периода. Все машины Colossus, кроме двух, были демонтированы в 1945 году; оставшиеся две использовались для дешифровки советских сообщений GCHQ до 1960-х годов. Публичная демонстрация ENIAC была разработана Снайдером и Дженнингсом, которые создали программу, способную рассчитать траекторию ракеты за 15 секунд – задача, которая заняла бы у человека несколько недель. Решение по знаковому федеральному судебному делу Honeywell, Inc. против Sperry Rand Corp. включало в себя следующее: изобретатели ENIAC заимствовали концепцию электронного цифрового компьютера у Атанасова; Атанасову было предоставлено юридическое признание как изобретателю первого электронного цифрового компьютера; и изобретение электронного цифрового компьютера было передано в общественное достояние.

Признание

ENIAC был признан IEEE Milestone в 1987 году. В 1996 году, в честь 50-летия ENIAC, Университет Пенсильвании спонсировал проект под названием "ENIAC на чипе", в рамках которого был создан очень маленький кремниевый компьютерный чип размером 7,44 мм на 5,29 мм, обладающий той же функциональностью, что и ENIAC. Хотя этот 20-мегагерцовый чип был во много раз быстрее ENIAC, его скорость была лишь малой частью скорости современных микропроцессоров конца 1990-х годов. В 1997 году шесть женщин, выполнивших большую часть программирования ENIAC, были введены в Международный зал славы технологий. Роль программистов ENIAC освещается в документальном фильме 2010 года "Top Secret Rosies: The Female "Computers" of WWII" режиссера Леанн Эриксон. В 2014 году Кейт Макмахон сняла короткометражный документальный фильм "The Computers", рассказывающий историю этих шести программисток; это стало результатом 20-летних исследований Кэтрин Клейман и ее команды в рамках проекта ENIAC Programmers Project. В 2022 году издательство Grand Central Publishing выпустило книгу Кэти Клейман "Proving Ground" – биографию в твердом переплете, посвященную шести программисткам ENIAC и их усилиям по переводу блок-схем и электронных схем ENIAC, находившегося на стадии строительства, в программы, которые должны были быть загружены и запущены на ENIAC после его ввода в эксплуатацию. В 2011 году, в честь 65-й годовщины представления ENIAC, город Филадельфия объявил 15 февраля Днем ENIAC. 15 февраля 2016 года ENIAC отметил свое 70-летие.