habrahabr

Советский Cray. История суперкомпьютера «Электроника СС БИС»

  • вторник, 3 декабря 2024 г. в 00:00:15
https://habr.com/ru/companies/ruvds/articles/860260/

В 70-х годах в Советском Союзе был популярен такой стишок: «Программист, держись бодрей! Драли все, сдерём и Cray!». Этот образец народного творчества скрывал в себе изрядную долю правды: подавляющая часть советских ЭВМ представляла собой копии и клоны зарубежной вычислительной техники, а необходимость в суперкомпьютерах, на которых и специализировалась компания Сеймура Крэя, с каждым годом только росла. Оригинальные ЭВМ иностранного производства в СССР тоже попадали, но обходились они недёшево, а их доставка порой превращалась в настоящий квест. Именно поэтому перед советской промышленностью в полный рост встала задача спроектировать и построить суперкомпьютер, не уступающий по своим возможностям продукции Cray. И у неё получилось… ну, почти.

▍ Гонка за мегафлопсами


В 1975 году Сеймур Крэй представил публике свой компьютер Cray-1 производительностью 133 мегафлопса, который произвёл настоящий фурор на рынке вычислительной техники. До этого СССР уже пытался приобрести через посредников суперкомпьютер CDC 7600 с быстродействием 10 млн. операций в секунду, к созданию которого приложил руку всё тот же Сеймур Крэй. На бумаге эта ЭВМ предназначалась для Гидрометцентра — с её помощью в Союзе планировали рассчитывать прогноз погоды в разных уголках нашей необъятной страны. Но американцы пребывали в уверенности, что кресла метеорологов очень быстро займут физики, которые вместо атмосферных явлений на Камчатке и-и-и в Выборге начнут считать на этой машине что-нибудь военно-ядерное, поэтому в продаже компьютера категорически отказали.

Нужно было срочно создавать свою собственную суперЭВМ, чтобы утереть нос американцам. Ну и для науки такая машина стала бы незаменимым подспорьем — в чём ничуть не сомневались советские программисты, придумавшие и по этому поводу очередной похабный стишок: «если к заднице приделать ЭВМ от фирмы «Крэй», будешь *** в два унитаза в сорок тысяч раз быстрей». Выполнять рутинные операции в сорок тысяч раз быстрей хотелось всем, поэтому от такого компьютера не отказалось бы ни одно предприятие научно-технического комплекса.


Тот самый Cray-1, который позволяет в 40 тысяч раз ускорить это самое… Ну, вы поняли

Ещё в начале 70-х годов стартовала программа по разработке советского вычислительного комплекса «Эльбрус», реализацией которой занимались специалисты Института точной механики и вычислительной техники (ИТМиВТ) под руководством Всеволода Сергеевича Бурцева. К 1979 году многопроцессорный компьютер «Эльбрус-1» с производительностью 12 млн. операций в секунду был построен, а в 1980-м — введён в эксплуатацию. Эта машина строилась на TTL-логике, и потому быстродействие в 12-15 млн. оп/с оказалось максимальным для выбранной элементной базы. Чтобы заставить ЭВМ работать ещё быстрее, требовалась принципиально другая архитектура.

На основе чего можно построить сверхмощный отечественный суперкомпьютер? Очевидно, что на советских микросхемах — самых больших микросхемах в мире! Как известно, они оснащались не только ножками, но и ручками для переноски… В этих старых затёртых шутках тоже пряталась истина: выпуск больших интегральных схем, или, сокращённо, БИС, в Советском союзе к тому времени был уже освоен. К категории БИС относились микросхемы, содержавшие до 10 тыс. элементов в кристалле, и после 1975 года такие чипы нашли своё применение в конструкции выпускавшихся промышленностью компьютеров. Неизвестным оставался лишь один фактор: можно ли эти микросхемы эффективно использовать в составе больших вычислительных систем?

Плата с БИС. Источник фото

Первым суперкомпьютером с быстродействием до 100 млн. операций в секунду должен был стать «Эльбрус-2», разработка которого началась в 1975 году (а закончилась в 85-м, при этом до заданных показателей эта ЭВМ так и не дотянула). Но советские управленцы не были бы советскими управленцами, если бы не решили «распараллелить» разработку, запустив проектирование аналогичного суперкомпьютера в каком-нибудь конкурирующем НИИ.

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

▍ Электроника СС БИС


Будущий академик Владимир Мельников появился на свет 18 августа 1928 года в деревне Венюково Московской области. После войны семья, потерявшая на фронте отца, перебралась в столицу. Отучившись в школе, Мельников поступил в Московский Энергетический институт, который окончил в 1951 году с дипломом инженера по направлению «Автоматика и телемеханика». Темой его дипломной работы был центральный блок управления операциями ЭВМ — именно эта разработка позже легла в основу устройства управления БЭСМ.

Академик Владимир Андреевич Мельников

К слову, создатель «Эльбруса» Всеволод Сергеевич Бурцев учился с Мельниковым в одной группе, а позже они вместе трудились в ИТМиВТ над первой тёплой ламповой ЭВМ БЭСМ. В 1976 году Мельников стал членом-корреспондентом АН СССР, а два года спустя перешёл вместе с группой сотрудников ИТМиВТ в НИИ «Дельта», чтобы заниматься разработкой «советского Крэя» в специально созданном для этого Отделе №6.

Студенты Московского Энергетического института, среди них — Владимир Мельников и Всеволод Бурцев. Источник фото

Столь громкое название новой машины я упомянул не случайно: при проектировании «Электроники СС БИС» в первую очередь учитывались идеи, реализованные в суперкомпьютере Cray-1, информация о которых просачивалась за «железный занавес» в виде журнальных статей и копий технической документации. Прежде всего, нашим инженерам приглянулась система команд. Разработчики прекрасно понимали, что помимо «железа» для такой супер-ЭВМ понадобится ещё операционная система, прикладное ПО и среда программирования, включающая компиляторы для языков высокого уровня. Всё это предстояло создавать практически с нуля.


НИИ «Дельта». Теперь это здание осталось только на фотографиях

Поскольку задача оказалась слишком масштабной, специалистов катастрофически не хватало. Владимир Андреевич Мельников нашёл оригинальное решение: он привлёк на свою сторону ректора МФТИ академика О. М. Белоцерковского. Плодом этого альянса стало появление в 1980 году при НИИ «Дельта» кафедры высокопроизводительных вычислительных систем, студенты и аспиранты которой вливались в коллектив разработчиков «Электроники СС БИС». Благодаря этому к 1981 году штат инженеров-разработчиков был наконец укомплектован. Спустя два года под эгидой Академии наук СССР Мельников основал Институт проблем кибернетики (ИПК), но разработка «Электроники СС БИС» продолжилась в НИИ «Дельта» фактически до развала Советского Союза — коллектив инженеров, программистов и даже кафедра высокопроизводительных вычислительных систем перебрались в ИПК только в 1991 году, чтобы продолжить работу над суперкомпьютером «Электроника СС БИС-2».

▍ Железо


По воспоминаниям участников проекта «Электроника СС БИС» одной из самых сложных инженерных задач стала трассировка монтажных плат и, собственно, монтаж больших интегральных схем на платах суперкомпьютера. Тогда в СССР ещё никто не собирал и не отлаживал столь сложные платы, содержавшие такое количество микросхем. Сборка компонентов «Электроники СС БИС» осуществлялась на заводе «Кварц» в Калининграде.


Монтаж таких плат представлял собой сложную инженерную задачу. Источник фото

Сложной была и система охлаждения: один из конструкторов НИИ «Дельта» вспоминал, что если она выходила из строя, микросхемы попросту прожигали плату. Изначально инженеры планировали внедрить водяное охлаждение, но здесь перед ними возникла нетривиальная проблема: если использовать циклическую циркуляцию воды, то вместе с резервуарами и насосами она займёт целый этаж здания, и электроэнергии будет тратить, как небольшой свечной заводик. А со свободными площадями в советских НИИ всё складывалось не слишком гладко. С другой стороны, вода в водопроводе была практически бесплатной, однако для охлаждения «Электроники СС БИС» её потребовалось бы слишком много: за год такой компьютер потреблял бы объём небольшой реки длиной 12 км, шириной 15 м, и глубиной 3 м. А потом всю эту воду пришлось бы сливать в канализацию.

Схема размещения оборудования суперкомпьютера «Электроника СС БИС». Источник фото

В результате долгих раздумий «Электронику СС БИС», как и Cray-1, решили охлаждать фреоном. Для этого использовались холодильные установки промышленного образца, установленные в отдельном помещении.

Система охлаждения «Электроники СС БИС». Источник фото

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

Конструктивно «Электроника СС БИС» была электронно-вычислительной машиной векторно-конвейерного типа с полупроводниковой памятью объёмом от 8 до 32 мегабайт и внешним хранилищем на магнитных дисках. Дисковое хранилище подключалось к основной машине с использованием шин максимальной пропускной способностью 10 Мбит/сек. Чтобы ускорить обработку данных, к суперкомпьютеру также была подключена полупроводниковая кеш-память объёмом 256 мегабайт, подключённая к процессорному блоку с использованием 16 шин пропускной способностью 200 Мбит/с.

Тактовая частота центрального процессора составляла 100 МГц (10 наносекунд). Процессор состоял из трёх групп оперативных регистров: 8 адресных регистров, 8 скалярных регистров и 8 векторных. Также имелись промежуточные регистры: 64 адресных и столько же скалярных, а ещё вспомогательные: регистры длины вектора и регистры векторной маски. Адресные регистры содержали 24 разряда, скалярные регистры — 64; каждый векторный регистр состоял из 64 слов по 64 разряда. Примечательно, что в Cray-1, который в НИИ «Дельта» взяли за образец, не была реализована операция деления: вместо неё использовалась операция по получению обратного числа с последующим умножением на делимое, а вот «Электроника СС БИС» умела делить без подобных ухищрений.

Для распараллеливания обработки скаляров и векторов и выполнения операций с плавающей запятой были выделены специальные функциональные устройства — отдельно для скаляров и для векторов — причём скорость работы любого функционального устройства была полностью детерминирована и не зависела от кодов конкретных операндов.

Для связи с оперативной памятью использовался буфер команд, имеющий блочную организацию (16 блоков по 64 командных слога) с ассоциативным поиском номера блока. При этом в «Электронике СС БИС» была реализована система защиты памяти, которая обеспечивала разграничение адресных пространств задач разных пользователей и операционной системы. Имелась и сложная система аппаратных прерываний. Процессор ЭВМ использовал два режима выполнения программ: режим пользователя и режим ядра ОС. В первом режиме не выполнялись некоторые команды, связанные с управлением работой каналов ввода/вывода и контроллера состояний. В режиме ядра выполнялись все команды ОС и блокировались прерывания, тем самым обеспечивалась их корректная обработка.

Опытный образец первой версии «советского Крэя» прошёл испытания в 1985 году. Несмотря на то, что процессор не удалось вывести на расчётную тактовую частоту, компьютер показал быстродействие в 250 мегафлопс, что считалось очень неплохим показателем. «Электроника СС БИС» была построена на больших интегральных схемах серии И-200 (в то время как компьютеры ЕС ЭВМ четвёртой серии использовали уже БИС следующего поколения), однако часть интегральных схем для суперкомпьютера изготавливалась на заказ. Вычислительный комплекс был оснащён памятью на полупроводниках, при этом такая память использовалась одновременно и в качестве ОЗУ, и в качестве кэша — в нём хранились файлы, к которым часто обращалась операционная система и прикладные программы. А вот сама операционная система в 1985 году ещё не была полностью готова.

▍ Операционная система


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

ОС ОМ поддерживала собственный язык макроассемблера, на котором было написано большинство системных утилит — именно на нём разработчики рекомендовали писать программы для этого суперкомпьютера, поскольку язык учитывал архитектурные особенности «Электроники СС БИС». Макроассемблер поддерживал механизм абстрактных типов данных, что позволяло в полной мере использовать модульное программирование при разработке сложных приложений. Кроме того, в составе системы имелся переработанный компилятор языка Фортран 77, который включал средства оптимизации программ с учётом особенностей векторной архитектуры компьютера — векторизацию циклов и планирование потока команд. Ну и в дополнение к этому, в состав ОС ОМ включили компиляторы Паскаля и Си.

Для расстановки приоритетов выполнения ОС ОМ использовала систему идентификаторов задач (аналог PID), при этом для задач самой ОС, связанных с управлением оперативной и дисковой памятью, вводом-выводом и работой с устройствами, использовались специальные идентификаторы — подобные задачи запускались в привилегированном режиме. Привилегированные программы позволяли разгрузить ядро ОС от таких функций, как управление задачами, обработка прерываний, управление оперативной памятью. Функциями ядра оставались только передача сообщений и управление процессором, всё остальное брали на себя программные компоненты ОС ОМ.

Каждая из задач выполнялась в изолированном адресном пространстве и взаимодействовала с другими с использованием системных сообщений. За запуск и завершение задач отвечала специальная системная программа с забавным названием «Инициатор-Терминатор» (ИТ). Эта программа запускалась одновременно с ОС ОМ и работала постоянно в режиме фоновой службы. При запуске задачи ИТ проверял пароль пользователя, инициирующего эту задачу (он должен быть авторизован в системе), назначал ей идентификатор, резервировал время исполнения и адресное пространство, и только после этого запускал её на выполнение. При поступлении пакетных задач автоматически формировался цикл обработки, на каждом этапе которого выполнялась определённая часть программы в виде двоичного кода, а имя программы передавалось от завершившегося предыдущего шага.

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

Работу с внешней памятью обеспечивали три системных программы: «АРХИВ» — фактически, драйвер файловой системы, а также две программы «ОБМЕНМД» и «ОБМЕНМП», обеспечивавшие функции ввода-вывода. Программа «АРХИВ» отвечала не только за разделение дисковой памяти, но также за открытие, закрытие и монопольное использование файлов приложениями, осуществляла контроль прав доступа, а ещё выполняла обработку ошибок ФС.

Другая системная программа — «Транспортная служба ОС ОМ» — представляла собой комплексный драйвер терминального доступа и локальной сети. Она обеспечивала назначение портов, установку и прерывание соединений, контроль передачи данных и обработку аварийных состояний. Для передачи информации в сети ОС ОМ использовала собственный протокол ФППЗ (Функциональный протокол пересылки заданий) с пакетным методом трансляции данных. При этом локальная сеть «Электроники СС БИС» была неоднородной: она могла включать несколько суперкомпьютеров и несколько внешних ЭВМ, каждая из которых работает под управлением собственной операционной системы.

Проблему совместимости решили следующим образом: передача задания с одной машины сети на другую выполнялась посредством обращения к службе пересылки заданий на языке управления заданиями ОС ОМ, причём это обращение формировалось в терминальной программе на локальном компьютере каждого пользователя. Ответ приходил в виде набора данных, интерпретируемых этой же программой. Для пересылки файлов с машины на машину использовался отдельный протокол, архитектурно похожий на FTP.

К 1991 году были изготовлены и полностью отлажены 4 экземпляра суперкомпьютеров «Электроника СС БИС»: одну такую машину планировали установить в Зеленоградском НИИ физических проблем, ещё две — в Институте проблем кибернетики (ИПК) Владимира Андреевича Мельникова и в вычислительном центре Академии Наук СССР. Эти два суперкомпьютера были соединены в двухмашинный комплекс, показавший в ходе испытаний совокупную производительность в 500 мегафлопс. Последнюю, четвёртую ЭВМ должно было получить ОКБ Сухого. В этом же году был завершён эскизный проект второго поколения суперкомпьютера «Электроника СС БИС-2»: в рамках этого проекта планировали создать мощную многопроцессорную систему с массовым параллелизмом производительностью до 10 гигафлопс.

Но тут случилось непредвиденное: Советский Союз перестал существовать. Научно-исследовательским институтам урезали финансирование, начались задержки зарплат, инженеры и программисты в поисках пропитания стали массово увольняться из своих лабораторий и институтов. На рынок хлынули иностранные персоналки, и мощные суперкомпьютеры оказались никому не нужны — их эксплуатация и обслуживание обходились слишком дорого для страны с рыночной экономикой. Монтаж «Электроники СС БИС» у заказчиков был приостановлен, а вскоре все 4 суперкомпьютера разобрали на цветмет.

▍ Заключение


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

К 1992 году он подготовил предварительный проект «Электроники СС БИС-3»: векторной супер-ЭВМ третьего поколения с массовым параллелизмом и вычислительной мощностью более 16 млрд. операций в секунду (16 гигафлопс). Этот суперкомпьютер должен был включать 64 процессора с архитектурой, совместимой с первым поколением «Электроники СС БИС». В конструкции машины планировали использовать микросхемы со степенью интеграции 30 тысяч вентилей на кристалл, всего — 120 000 000 вентилей. Работать все эти процессоры должны были на тактовой частоте 200 МГц (5 нс).


Фрагменты проекта «Электроники СС БИС-3». Источник фото

Однако 7 мая 1993 года академик Мельников скончался, и все дальнейшие работы по развитию суперкомпьютеров этой серии были прекращены. Так закрылась ещё одна яркая страница в истории отечественного IT, страница, которая могла стать значительной вехой в развитии советской, а позже — российской кибернетики.

© 2024 ООО «МТ ФИНАНС»

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻