Спецпроцессоры СССР — история или будущее? Интервью с куратором супер-ЭВМ

Изображение: Константин Юон. 1921
Новая планета

Приостановка поставок в Россию микропроцессоров для вычислительной техники крупнейшими компаниями отрасли Intel и AMD поставила под угрозу обеспечение страны этой важнейшей продукцией.

Ситуация усугубляется заморозкой отношений российских разработчиков с крупнейшим контрактным производителем микропроцессоров — тайваньской фирмой TSMC. В частности, МЦСТ и «Байкал электроникс» пока не смогут получать с этого завода свои микропроцессоры «Эльбрус» и «Байкал», соответственно.

Это положение сделало жизненно необходимым производство современных, конкурентных средств вычислительной техники на тех мощностях, что имеются в стране. Во всяком случае, для узких задач, решаемых в интересах государства и народного хозяйства.

СССР, например, подобные проблемы решал за счет развития собственной отрасли микроэлектроники (МЭП СССР) и создания на этой базе всего спектра традиционной вычислительной техники и даже спецпроцессоров, обладавших быстродействием, свойственным для суперкомпьютеров.

ИА Красная Весна побеседовало с доктором физико-математических наук, членом-корреспондентом РАН Сергеем Абрамовым, одним из крупных организаторов суперкомпьютерной отрасли.

Сергей Абрамов начал профессиональную деятельность с начала 80-х годов, когда в Научно-исследовательском центре электронной вычислительной техники (НИЦЭВТ) стал куратором направления спецпроцессоров ЕС ЭВМ. Почти 19 лет проработал директором Института программных систем имени А. К. Айламазяна РАН; является научным руководителем от России программ по разработке суперкомпьютеров СКИФ и СКИФ-ГРИД (проект Союзного государства России и Белоруссии), координатором Национальной суперкомпьютерной технологической платформы.

ИА Красная Весна: Сергей Михайлович, вы в 80-е годы курировали разработку спецпроцессоров, которые создавались согласно программе ЕС ЭВМ. Расскажите, пожалуйста, что это была за программа, какие ЭВМ там создавались.

Сергей Абрамов: Действительно, когда я окончил Московский государственный университет имени М. В. Ломоносова, то поступил работать в НИЦЭВТ. Это было головное предприятие Минрадиопрома СССР. Но оно также было головным в программе создания единой системы ЭВМ (ЕС ЭВМ). Эта программа была не только советская, она была СЭВ-овская (Совет экономической взаимопомощи, СЭВ). В нее было вовлечено огромное количество стран, огромные ресурсы, например, ГДР, Болгарии, других стран — не только Советского Союза.

Эта программа широко известна, ее обычно принято пинать, критиковать за то, что передирали семейство IBM 360/370. Это правда. На самом деле, всё, что разрабатывалось IBM, повторялось в СССР на разном уровне. Иногда мы копировали IBM на уровне чипов (такая же топология, такие же вентили), иногда на уровне микрокода, иногда на уровне принципов работы. То есть, даже копируя, мы могли иметь разный уровень «отечественности».

Однако в рамках этой программы существовали разработки, которые были абсолютно оригинальны. Про них очень мало говорят и совершенно напрасно. Это линейка спецпроцессоров ЕС ЭВМ.

ИА Красная Весна: Что входило в Ваш круг обязанностей?

Сергей Абрамов: Должностная обязанность моя была — куратор спецпроцессоров ЕС ЭВМ. Что значит куратор? Это означает, что я читал всю документацию, писал свои заключения о том, что было в спецпроцессоре хорошо или плохо, разрабатывал замечания, участвовал в испытаниях. А в проекте спецпроцессора МДА ЕС 2704 просто участвовал в разработке.

Я был молодым парнем, который только закончил вуз и вообще не имел никакого опыта. У меня было хорошее образование. Окончил университет с красным дипломом, прошел аспирантуру. Меня взяли и вот, представьте себе, пацан пишет замечания генеральному конструктору «в вашем техническом проекте ошибка, исправляйте, пожалуйста, возвращаю на доработку». Это было нормально, тогда проектами управляли специалисты (пусть и молодые), а не чиновники.

ИА Красная Весна: Что такое спецпроцессоры ЕС ЭВМ?

Сергей Абрамов: Тогда одновременно разрабатывался примерно десяток процессоров, десяток машин, аппаратно-программных комплексов. Десяток абсолютно оригинальных, не похожих ни на что, конкурентных, борющихся с мировой вычислительной техникой переднего края и… конкурирующие друг с другом.

Сейчас все проекты я, наверное, уже не вспомню, но часть из них упомяну. Была такая разработка как ЕС 2700. Ее делали болгары. Это был матричный спецпроцессор, то есть некая железка, которая замечательно делала векторные и матричные операции. Сегодня можно было бы сказать, что это тензорный процессор. Сейчас это модно, Google выпускает подобные тензорные процессоры. Сейчас это чип, а тогда ЕС 2700 занимал целый шкаф, но то было в 1983 году. Этот процессор умел перемножать матрицу на матрицу, матрицу на вектор, вычислять обратную матрицу, выполнять различные линейные алгебраические преобразования. И делал он всё это замечательным образом — быстро, эффективно и по энергетике, и по скорости, и по другим параметрам.

Другой проект, ЕС-2701 — киевский макроконвейер. Институт Глушкова — это же целая эпоха. Это огромная команда, огромная научная школа. Там семейство языков было, которое позволяло этот процессор эффективно программировать на решение сеточных задач с трех-, пятидиагональными матрицами прямым и обратным методом.

Еще была ЕС-2704. Ее создавал ЛИИАН (Ленинградский институт информатики и автоматизации АН СССР). Он был головным, а в НИЦЭВТе делалась аппаратура. Это был мультипроцессор с динамической архитектурой (МДА). В то время это было довольно интересно. Там мы можем рассмотреть все черты того, что сегодня известно о кластерах. Это были двадцать четыре вычислительных узла, двенадцать коммутационных узлов (интерконнект!) и шесть интерфейсных узлов для выхода на периферию. Вот такая штуковина — с лозунгом «автоматическое динамическое распараллеливание программ». Это когда программист не думает, как программу разбить на части, какой кусочек кода и где будет исполняться — это все на себя берет система. В динамике код мог переезжать из одного вычислительного угла в другой для распределения вычислительной нагрузки. Система поддержки исполнения программы (runtime) автоматически обеспечивала взаимодействие кусков программы в разных вычислительных узлах: передавала необходимые данные из места, где они произведены, в место, где они нужны. В этой разработке я участвовал не только как куратор, но и как программист-разработчик.

Далее, ЕС 2706, таганрогский суперкомпьютер. Он создавался под руководством академика Каляева Анатолия Васильевича. Сейчас это дело продолжает его сын — академик Каляев Игорь Анатольевич: если не совсем та же, то близкая к идеям ЕС 2706 парадигма воплощается на современной элементной базе — на базе больших FPGA. А в 1980-х это все делалось на советских микросхемах.

Отмечу, были проекты, где делались спецпроцессоры для искусственного интеллекта, и там единицей вычисления был элементарный логический вывод — не команда с данными с плавающей точкой, а шаг логического вывода. Это система для существовавшего тогда подхода к искусственному интеллекту. Подхода, который был связан с такими языками как «Пролог» и с т. н. машинами пятого поколения.

Еще одна интересная разработка — РЕФАЛ-машина. Есть язык программирования РЕФАЛ советского происхождения. Его автор — профессор Валентин Федорович Турчин, известный антисоветчик, которого в 1977 году выгнали из страны. Это мой Учитель с большой буквы — я его ученик. Язык РЕФАЛ широчайшим образом использовался в СССР. С его помощью писали базы данных и в физических расчетах использовали. Совершенно уникальный язык. Он жив до сих пор, хотя, к сожалению, мало известен и недостаточно используется.

Для него в 1980-х годах была сделана машина, которая просто «в железе» реализовывала этот язык. Это проект Института прикладной математики им. М. В. Келдыша. Машина была сделана довольно-таки оригинально. Они взяли обычную машину ЕС-1035 и сменили в ней микрокод. Дело в том, что машинные команды (можно сказать — ассемблер) в IBM 360/370 реализовывались не в микросхемах. В микросхемах реализовывался некий простенький язычок — микрокод. А вот на микрокоде уже описывали машинные команды IBM 360/370.

Так вот, разработчики из ИПМ им. М. В. Келдыша взяли обычную ЕС-1035 и переписали микрокод, так что принципом работы стал не ассемблер IBM, а т. н. язык сборки РЕФАЛа — тот «байт-код» в который компилировался РЕФАЛ. Ускорение выполнения РЕФАЛ-программ на той же машине получилось десятикратное. А потом разработчики добились даже того, что на лету можно было менять состояние машины: вот она некоторое время работает как IBM 360, а потом один щелчок, и она превратилась в РЕФАЛ-машину… поработала — щелчок, — и она опять IBM 360. Т.е. просто переключениями микрокода можно было менять систему команд машины и превращать одно и то же железо то в РЕФАЛ-машину, то в IBM 360.

Как правило, все спецпроцессоры ЕС ЭВМ как ускорители должны были подключаться тем или другим способом к обычной ЕС-ой машине. Концепция была такая, что есть обычная стандартная ЕС-ная машина (IBM 360/370), и к ней каким-то образом подключаются матричный процессор, мультипроцессор ЕС-2704 или какой-то другой спецпроцессор. И какую-то мощную вычислительную нагрузку спецпроцессоры берут на себя. В такой парадигме это все и развивалось. Идея ускорителей сегодня широко используется, но уже на уровне чипов. Сегодня в рамках одного вычислителя мы часто находим универсальные процессоры и рядом ускорители: графические процессоры, тензорные и так далее.

Итак, в те года велось около десятка проектов, многие из них доведены до результата. Если говорить о том, что это было, то надо отметить, что страна позволяла себе десяток конкурентных разработок. А сколько там было привлеченных внебюджетных средств? Забудьте. Нисколько. Это были государственные разработки, государственные проекты, и страна могла себе позволить десяток суперкомпьютерных проектов совершенно оригинальных архитектур, оригинальных языков, оригинальных компиляторов. И это многообразие только в рамках одного «забора» — в рамках одного проекта ЕС ЭВМ.

И в те же годы вне этого «забора» страна поддерживала альтернативные разработки (тоже, по сути, супер-вычислителей): «Эльбрус» -1 и -2, «Электроника» СС БИС, ПС-1000 и ПС-2100 Ивери Варламовича Прангишвили (19 лет возглавлявшего Институт проблем управления им. В. А. Трапезникова РАН). И все это были совершенно конкурентные разработки.

Если взять 1983–86 годы, в этот период времени наша страна разрабатывала более десятка оригинальных спецпроцессоров.

ИА Красная Весна: На каких микросхемах строились спецпроцессоры?

Сергей Абрамов: Все эти машины строились на советской элементной базе. Была электронная промышленность — МЭП СССР, — которая обеспечивала элементную базу для всех этих проектов. Все они базировались на элементной базе, которую делал не только Зеленоград, минский «Интеграл» давал тоже очень много. Многие микросхемы до сих пор делают там. Еще был Ереван. В общем, были заводы, которые выпускали электронную элементную базу и вычислительную технику на этой базе.

Сказать, что все это было на войну — нет, конечно! Прангишвили — это все геофизика, нефтянка. РЕФАЛ, что ли на войну? Глупости!

Страна позволяла себе просто большое количество передовых, действительно оригинальных машин. Те идеи, которые были в ЕС-2704, мы потом уже воплощали в нашем институте, когда я покинул НИЦЭВТ и пошел работать в Институт программных систем АН СССР. Так вот, ЕС-2704 я «перетащил» в ИПС АН СССР. К нам привезли две установки ЕС-2704, и часть разработки программного обеспечения для них ЛИИАН поручил нам. То, что мы сделали, было установлено в Подлипках (город Королев) — ЕС-2704 принимало телеметрию со спутников, обрабатывало ее. Система работала порядка десяти лет, и ни строчки кода не правилось, все работало как часики.

Славная история нашей страны. А кто не знает своей истории, будет наступать на грабли 150 раз. Это были реальные изделия — это было, это работало, это было доведено до нормальных продуктовых версий, как нынче модно говорить, это широко использовалось на практике.

Страна могла себе позволить полтора десятка разных проектов безо всяких привлеченных внебюджетных средств. По сути — проектов суперкомпьютерного уровня. Спецпроцессоры разрабатывались с одной целью — считать какой-то класс задач быстрее, чем лучшие универсальные машины того времени.

Юрий Шевченко

ИА Красная Весна