"Нет оснований для сомнений в том, что в недалеком будущем на основании математического анализа деятельности мозга ЭВМ смогут выполнять ряд его сложных функций, например, вывод теорем или построение новых гипотез".
Лев Дашевский, Екатерина Шкабара, 1961 год.
Пилотная статья понравилась комьюнити, а значит продолжаем рассказывать о ранних советских разработках, предвосхитивших современные достижения отрасли, а порой, без преувеличения опередивших своё время. Наш рассказ будет не полным без упоминания проектов АН УССР, наиболее важная часть которых была реализована в процессе разработки и использования ЭВМ “Киев”. Под катом речь пойдет о проектах управления технологическими процессами на расстоянии 500 км, разработке и применении прообраза современных реляционных систем управления базами данных, а также первых советских опытах по машинному обучению и созданию искусственного интеллекта в 1950-х - 1960-х.
Начало
Всё началось с того, что в 1945-м году АН УССР для замещения вакантных должностей пригласила 15 видных советских ученых из других регионов Союза. Одним из приглашенных был Сергей Лебедев. Он переехал в Киев и в 1946 году возглавил Институт энергетики АН УССР, а после его разделения стал директором института электротехники. Там он развернул кипучую деятельность по созданию компьютеров и открыл узкоспециализированную лабораторию моделирования и вычислительной техники.
Уже в 1948-м на базе этой лаборатории Лебедев начинает создание первого в СССР и одного из первых в континентальной Европе компьютера — МЭСМ (малая электронная счетная машина) и к 1950-му успешно завершает проект. После ввода МЭСМ в эксплуатацию ученый покидает столицу УССР, успев перед отъездом закончить предварительное ТЗ и оформить основные идеи для специализированной ЭВМ, решающей алгебраические уравнения — СЭСМ, а также заложить основы концепции первого советского универсального компьютера — ЭВМ “Киев”.
“Киев”
После отъезда Лебедева, в 1954 году, коллектив “Лебедевской” лаборатории приступает к созданию ЭВМ «Киев». Команду разработчиков возглавляет академик Борис Гнеденко с учениками Лебедева: Львом Дашевским и Екатериной Ющенко. Эти ученые начали разработку концепции и подготовку проектной документации ещё в 1953-м году. Параллельно издаются книги и статьи о том, как работать с вычислительной техникой, в частности, сборники «Вопросы вычислительной математики и техники». Обобщение опыта МЭСМ не только поможет создавать “Киев”, но и на десятилетие станет азбукой программирования для новых советских специалистов.
"Киев" задумывался как первый универсальный компьютер с широкой вычислительной и экспериментальной функциональностью. В первую очередь, его планировали использовать для управления технологическими процессами. Амбициозность идеи состояла в том, что управлять техпроцессами планировали на расстоянии. Кроме того, партия и правительство ставили задачу увеличить производительность.
Появилась своеобразная конкуренция советских разработчиков. К моменту создания “Киева” уехавший в Москву Лебедев уже создал БЭСМ (большая электронная счетная машина), а конкурирующей командой из Министерства машиностроения и приборостроения СССР вводилась в эксплуатацию ЭВМ “Стрела”, которая впоследствии обеспечивала расчёты для советского ЦУПа.
В 1958 г., в бывшую «лебедевскую» лабораторию, преобразованную в Вычислительный центр АН УССР, прибывает В. М. Глушков. Он завершает создание “Киева” и за год вводит компьютер в эксплуатацию.
Для 1959 года машина, задуманная Лебедевым, созданная коллективом Гнеденко и завершенная Глушковым, впечатляла своими возможностями. Так, тёплый ламповый “Киев” обладал следующими характеристиками:
ОЗУ ёмкостью 1024 кода (512 бит — 64 байта) на ферритовых сердечниках с прямоугольной петлёй гистерезиса;
время обращения к ОЗУ – 10 мксек;
ПЗУ ёмкостью 512 кодов (256 бит — 32 байта) на трансформаторах с ферритовыми сердечниками;
время обращения к ПЗУ – 4 мксек;
внешнее ЗУ – на магнитных барабанах емкостью 9000 кодов;
среднее время ожидания выборки – 25 мсек;
в системе использовано 2300 миниатюрных(пальчиковых) электронных вакуумных ламп
10 000 германиевых диодов;
5000 импульсных трансформаторов на сердечниках типа "оксифер 1000";
скорость работы от 10 до 15 тыс. операций в секунду;
потребляемая мощность 25 000 Вт.
Даже страшно подумать о том, что любой бюджетный смартфон сегодня обладает производительностью миллионов “Киевов” и ,часто, приносит в миллионы раз меньше пользы.
Смехотворные, по сегодняшним меркам, ресурсы новой системы для того времени казались сложно достижимыми. Далеко не все системы, разрабатываемые в то время в Европе, обладали сравнимой производительностью. При этом “Киев” концептуально отставал от наиболее передовых систем, созданных в США. За океаном в то время уже появился прорывной транзисторный RCA 50 — запущен в 1958 году. За океаном стали отказываться от вакуумных ламп, навесного монтажа, применили печатные платы, уменьшили массу и энергопотребление.
Тонны стали и управление на расстоянии
“Киев” стал одной из первых систем удаленного доступа к периферийным промышленным агрегатам. Вообще, первая известная мне компьютерная сеть в мире была создана в США — она имела военное назначение, сеть системы ПВО SAGE (завершена в 1958 году). Создатели “Киева”, напротив, решили остановиться на гражданских задачах. С 1960-го года с использованием этого компьютера осуществлялось управление технологическими процессами в конвекторном цехе Днепродзержинского металлургического комбината, крупнейшего в Союзе металлургического предприятия.
Расстояние от машинного зала до цеха превышало 500 км, а передача данных велась по телеграфной линии. Этот эксперимент стал первым опытом применения АСУ ТП в СССР и, вероятно, первым опытом дистанционной автоматизации техпроцессов при помощи компьютера в мире. Рекомендации, сгенерированные ЭВМ "Киев", позволили повысить эффективность металлургических агрегатов. Так автоматизация выбора времени «повалки» бессемеровского конвертора позволила сэкономить 2,7% времени цикла выплавки стали. На практике экономия этих 2,7% означала дополнительные 100 тонн стали в год. Позже, второй версией “Киева” оснастили центр ядерных исследований в Дубне.
РСУБД начала 60-х
В 1961-м году на ЭВМ "Киев" реализовали первую советскую систему управления базами данных реляционного типа — "Автодиректор". Система позволяла сохранять данные в виде таблиц, которые были записаны на электронный магнитный носитель. Лебедев С.А., на правах концептуального “отца” “Киева”, на встрече с Н.С. Хрущёвым отмечал:
"В таком виде информацию легко структурировать, находить и обрабатывать. К тому же табличный вид привычен для работников Госплана, им так будет легче работать с данными, получаемыми от ЭВМ”.
Таким образом ЭВМ "Киев" стала первым опытом советских ученых в использовании вычислительной техники в промышленности.
Что интересно — это как раз тот случай, когда советским разработчикам удалось “догнать и перегнать”. Первой коммерческой разработкой РСУБД в США считается проект IBM, названный System R, он стартовал лишь в 1974-м и создавался на основе концепции, сформулированной в 1969—1970 годах Эдгаром Коддом. “Автодиректор” начал полноценно использоваться за 10 лет до этого момента.
Асинхронная модульная архитектура
Создатели “Киева” считали, что структура управляющей машины должна обеспечить возможность быстрой модернизации, присоединения различных модулей, узлов, устройств ввода. Конструкция и архитектура ЭВМ "Киев" допускали использование каждого из автономных устройств (1000 стандартных блоков семи типов и 200 нестандартных пяти типов) вне связи со всем компьютером в целом, что позволяло непрерывно модернизировать и отлаживать отдельные модули.
Учитывая аритмичность поступления данных, ещё на этапе проектирования в "Киеве" планировали реализовать асинхронную архитектуру. Хотели обеспечить переменную продолжительность временных тактов, при которой каждый узел начинает работу после окончания работы предыдущих. Выбранный путь позволил это реализовать.
Адресный язык программирования
Для увеличения скорости программирования, реализации потенциала “Киева” в 1954 году Екатерина Логвиновна Ющенко и Владимир Семенович Королюк создали новый язык программирования высокого уровня, который был назван “Адресным”.
Впоследствии адресный язык стал одной из основ теоретического программирования, первым языком, в котором были использованы указатели. Работа последних была описана советским математиком Андреем Колмогоровым.
Адресный язык опередил такие языки, как Fortran, Algol, COBOL, а также вдохновил разработчиков ассемблера. Сегодня ряд конструкций Адресного языка — важная часть архитектуры таких языков как C и C++. К несчастью, в связи с неизвестностью советских работ за пределами СССР премию IEEE за указатели получили не Ющенко с Королюком и не Колмогоров, а Гарольд Лоусон из IBM, создатель Programming Language I.
В дальнейшем были созданы трансляторы, облегчившие процесс программирования на “Киеве” и ряде других машин того периода. Подробно об адресном языке программирования можно почитать на Хабре в статье @Elena_sm “Советская школа: адресный язык программирования”.
Советские нейронные сети, а также первый сканер и первый монитор
“Киев” стал первым компьютером в СССР, где приступили к ранним опытам по созданию самообучающегося ИИ, т.е. того, что сегодня мы называем нейросетями.
Центральную роль в этих исследованиях играли несправедливо забытые сегодня советские коннекционисты Михаил Шлезингер и Алексей Ивахненко. Последний, благодаря своим публикациям, считается одним из мировых отцов искусственного интеллекта, однако в России широко не известен.
С 1961-го года на “Киеве” проводились первые в СССР исследования по работе с нейросетями на универсальной ЭВМ. С 1960-го этими экспериментами занимался Шлезингер. После того как Ивахненко, в 1963 году, присоединился к команде Глушкова, область исследования расширилась.
На “Киеве” провели целую серию уникальных для того времени опытов по искусственному интеллекту:
машинному распознаванию геометрических фигур;
моделирование распознавания печатных и письменных букв;
автоматическому синтезу функциональных схем;
отслеживанию движения объектов по серии изображений, и кинограмме;
моделированию поведения коллектива автоматов в процессе эволюции;
автоматическому синтезу функциональных схем компьютеров.
При этом подходящей периферии тогда ещё не существовало, например, сканеров. Её реализовали в рамках проекта. «Киев» стал первым в Европе компьютером с цифровой системой обработки изображений и интеллектуального моделирования. К нему подключали два дополнительных устройства: устройство для ввода изображений с бумажного носителя, фотопленки и фотопластин (аналог современного сканера) и устройство вывода изображений из системы — монитор на ЭЛТ (достаточно редкий девайс для того времени).
Что интересно, сам Глушков недолюбливал исследования в области ИИ, предпочитая больше ресурсов тратить на задачи, которые могут быть решены в ближайшем будущем, “исповедуя” т.н. символьный подход. Это вызвало многочисленные споры с Ивахненко. К чести Глушкова, исследования коннекционистов на “Киеве” никто не запрещал, они продолжались, но имели право на меньшее количество “машинного времени”.
Важным результатом Ивахненко и коллег стало создание и развитие «Метода группового учета аргументов» (МГУА), который заслуженно считается одним из первых в истории алгоритмов глубокого обучения. Также труды Ивахненко и Шлезингера на ЭВМ “Киев” в дальнейшем привели к разработке и обучению восьмислойной нейронной сети. Сеть использовала искусственный нейрон, основанный на интерполяционном полиноме Колмогорова — Габора. Эти исследования в 1970-х серьёзно опередили своё время, т.к. большинство коннекционистов на Западе довольствовались в то время одним-двумя слоями. Подробно о советских исследованиях в области ИИ на Хабре писала @Christina29.
Сухой остаток
ЭВМ “Киев” – один из наиболее значимых, эпохальных проектов советской кибернетики. Для описания всех экспериментов, реализованных на этом компьютере, не хватит и 10 статей. Мы постарались выбрать наиболее интересные сегодня. Не смотря на то, что компьютер создавался как прототип серийного устройства, вероятно для будущей ОГАС, произвели всего две машины.
Бюрократические дрязги, о которых мы писали в прошлом материале, сделали невозможным быстрое создание цифрового государства в СССР и “Киев” неминуемо устарел, не смотря на достаточно большой модернизационный потенциал. Даже учитывая ограниченное применение, появление “Киева” показало, что в СССР взяли курс на создание универсальных компьютеров и способны вести наукоемкие разработки, превосходящие по некоторым функциональным возможностям зарубежные аналоги. Думаю, не ошибусь, если назову эту разработку одним из самых передовых программно-аппаратных комплексов своего времени.