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

Высокопараллельные многопроцессорные архитектуры выходят за границы модели последовательного счета, и от их создателей требуются опережающие научные подходы и, кроме того, очень здравое рациональное инженерное мышление. В отличие от большинства многопроцессорных разработок (в том числе зарубежных), отечественный многопроцессорный компьютер ПС-2000 и по целям, и по источникам финансирования, и по конструкторским и производственным мощностям разрабатывался и серийно выпускался прежде всего как компьютер разнообразного гражданского назначения. Эта система обладала рекордно высокой для суперкомпьютеров своего времени (1980 год) производительностью, впервые в мире выпускалась серийно.

Архитектурный «ледниковый период»

В 1958 году Джек Килби и Роберт Нойс, независимо друг от друга, предложили первые в мире интегральные схемы. (Килби в 2000 году получил Нобелевскую премию по физике, а Нойс стал одним из основателей Intel в 1968 году. Сейчас оба занимают пятую строчку в рейтинге людей, которые изменили мир. ) Это событие, наряду с другими, положило начало эре массового компьютеростроения. Снижение себестоимости стало обязательным требованием не только для компьютеров массового потребления— разработчики суперкомпьютеров в целях экономии средств и времени перешли на «крупноблочную» сборку многопроцессорных компьютеров. Однако типовая элементная база сыграла злую шутку с разработчиками уникальных и потому более трудоемких архитектурных решений— показатели суперкомпьютеров стали наращивать не за счет качества архитектур и схемных решений, а путем простой смены поколений микропроцессоров. Каждое новое поколение ограничивало возможности архитекторов влиять на качество решений.

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

В результате многопроцессорные архитектуры эволюционировали в кластерные системы. Борьба за снижение стоимости и сроков крупнопанельной сборки свелась к приобретению и монтажу готовых многолезвийных компьютерных блоков и сетевых модулей. Потребность в глубоких архитектурных разработках на уровне мелких «кирпичиков» отпала.

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

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

Инновационный прорыв

Создание в СССР высокопроизводительных вычислительных систем для обработки больших объемов данных к середине 70-х годов стало высокоприоритетной государственной задачей. Только для промышленной обработки собираемых в стране данных сейсморазведки месторождений нефти и газа требовалась суммарная вычислительная производительность около 100 млрд. операций сложения в секунду, что в тысячи раз превышало совокупную мощность имевшегося в стране парка ЭВМ.Еще более мощные системы требовались для обработки в реальном времени акустической, радиолокационной и графической информации, полученной со спутников. Было совершенно ясно, что увеличить производительность на порядки невозможно лишь за счет простого наращивания парка серийных машин.

В 1972–1975 годах в Московском Институте проблем управления была предложена структура и архитектура высокопроизводительного многопроцессорного компьютера ПС-2000– авторскому коллективу удалось найти оригинальное решение, которое соединило высокую эффективную производительность с доступной в то время недорогой и надежной, но медленной элементной базой. По распоряжению Министерства приборостроения, к ИПУ в качестве проектирующей организации подключили НИИ УВМ, входящую в НПО «Импульс» (г. Северодонецк), где разрабатывались и серийно выпускались управляющие мини-ЭВМ СМ-1 и СМ-2. В 1975 году начал финансироваться и был запущен совместный научно-производственный проект. В 1978 году руководству страны продемонстрировали полнофункциональный макет ПС-2000, а в декабре 1980 года Госкомиссии были представлены серийные образцы вычислительных комплексов ПС-2000, и со следующего года начался их промышленный выпуск. С 1981-го по 1988 год Северодонецким приборостроительным заводом было выпущено 180 ВК ПС-2000, в том числе 242 многопроцессорных компьютера ПС-2000.

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

Архитектура ПС-2000

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

Мультипроцессор состоит из набора однотипных процессорных элементов (ПЭ1, ПЭ2, …, ПЭN), связанных между собой регулярным и магистральным каналом, и общего устройства управления (ОУУ) (рис. 1).

Рис. 1. Структурная схема мультипроцессора ПС-2000

Каждый ПЭ, а также ОУУ состоят из нескольких функциональных устройств, включающих самую быструю в компьютере программно доступную регистровую память. Совокупность этих устройств (как в ОУУ, так и всех ПЭ) образует разветвленный конвейерный агрегат с программно конфигурируемыми связями. Каждое функциональное устройство составляет конвейерную ступень. Обмен данными между этими устройствами производится через общий для соседних ступеней регистр. Состав и назначение функциональных устройств каждого ПЭ приведены в табл. 1.

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

Оригинальная архитектура ПС-2000 соединила относительную простоту аппаратных решений систем управления одним потоком команд с беспрецедентно высокой гибкостью программирования высокопараллельной обработки одновременно многих потоков данных. Уникальная гибкость управления ПС-2000 ломает привычные представления о функциональных возможностях SIMD-компьютеров. Невероятно, но в серийном ПС-2000 было сделано, казалось, совершенно немыслимое для компьютеров этого класса. В ресурсах ПС-2000 на программном уровне была эмулирована многопроцессорная архитектура MIMD (много потоков команд, много потоков данных). При этом все ПЭ, работая параллельно под управлением устройства активации, могли одновременно выполнять каждый свою программу, загруженную в собственный модуль оперативной памяти. Например, 64-процессорный SIMD-компьютер ПС-2000 смог параллельно выполнять 64 потока разных программ. Существовавшие на тот момент SIMD-компьютеры этого делать не умели.

Перечислим особенности архитектуры ПС-2000, которые обеспечили ей высокую гибкость и эффективностью вычислений.

  • Команды отличались повышенной функциональной гибкостью управления разнообразными видами аппаратного параллелизма. Это качество достигается за счет многоуровневого иерархического структурирования большого множества одновременно исполняемых операций.
  • Виды программно управляемого параллелизма:
    — одновременное выполнение во всех ПЭ множества разнотипных действий (активация, вычислительные операции, вычисление адресов, доступ к модулям оперативной памяти, межпроцессорные пересылки данных по регулярному каналу);
    — одновременное выполнение любого, программно задаваемого подмножества разнотипных действий (действия в ПЭ; ОУУ; параллельный обмен данным между модулями оперативной памяти ПЭ и набором дисководов через автономные каналы системы внешней памяти – СВП; действия в мониторной подсистеме), управление процессами внешней операционной системы.
  • Наличие значительных объемов регистровой памяти ПЭ, в которых параллельно во всех активных ПЭ реализуются массовые вычисления и межпроцессорные обмены при исполнении циклических участков программ. Для циклов с большим числом повторений доля обращения к более медленным модулям оперативной памяти ПЭ может быть малой. В этом случае регистры реализуют положительный эффект кэширования (причем с параллельным выполнением действий во многих ПЭ).
  • Межпроцессорная конвейеризация регистровых вычислений через регистры B регулярного канала обеспечивает режим программируемых систолических структур, что дает предельно достижимый уровень параллелизма.
  • Набор однотипных устройств адресной арифметики L ПЭ обеспечивает параллельный доступ к памяти М по набору адресов с возможностями инкрементной модификации этих адресов.
  • Набор однотипных устройств активации ПЭ обеспечивает высокий уровень параллелизма при ассоциативной обработке больших массивов данных (поиск и сортировки по программно задаваемым предикатным функциям, теоретико-множественные операции, обработка растровой графики, событийное управление вычислительными действиями и др.).

Система команд

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

Рис. 3. Структура команды Два верхних уровня структуры команды показаны на рис. 3. Все команды имеют одинаковый размер— 64 разряда— и разделены на две равные части— левую и правую. Каждая из них разделена на несколько полей. В каждом поле для соответствующего функционального устройства задается набор трехадресных операций с регистрами. В полях левой части задается управление устройством Т, а также либо S, либо В. В полях правой части задается управление либо устройствами М и L, либо W и устройствами H и HL, либо G.

После простой дешифрации команды все заданные в ее полях действия исполняются параллельно и синхронно на соответствующих устройствах.

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

Эффективность распараллеливания повышается за счет совмещения во времени разнотипных устройств. Например, выполнение массовых вычислений в устройствах S ПЭ совмещается с сопутствующими операциями (подготовка настроек, модификация адресов операндов, считывание операндов, запись результатов, управление конфигурацией решающего поля и т.п.). Таким образом, мультипроцессор ПС-2000 с общим потоком команд максимально использует параллелизм разнотипных и однотипных устройств.

Масштабируемость

Мультипроцессор ПС-2000 компонуется из модулей трех типов, каждый из которых размещается в одной стойке. Модули масштабирования компонуются из устройства обработки (УО), состоящего из 8 ПЭ и ОУУ. Модули имеют следующий состав:

  • базовый – одно УО (8 ПЭ) и одно ОУУ;
  • наращивания 1 — одно УО (8 ПЭ);
  • наращивания 2 — два УО (16 ПЭ).

Минимальная конфигурация (8 ПЭ) состоит из одной стойки, максимальная (64 ПЭ) состоит из пяти стоек в виде «звезды».

Технические характеристики устройств ПС-2000

Быстродействие, разрядность и объемы регистровой и оперативной памяти определялись доступной элементной базой, однако структура и архитектура мультипроцессора не зависит существенным образом от элементной базы.

Устройство S работает с 24-разрядными регистровыми операндами. Однотактные арифметические операции с фиксированной запятой и логические операции над словами выполняются за 0,32 мкс, что соответствует рабочей частоте 3 МГц. Сложение/вычитание в формате плавающей запятой выполнялось за три такта (0,96 мкс), умножение— за пять тактов (1,6 мкс).

Объем одного модуля памяти данных М или Н составлял 1638424-разрядных слова, операции считывания или записи выполняются пословно за 0,96 мкс. Объем памяти программ G составляет 1638464-разрядных слова. Время выдачи каждой команды— 0,32 мкс, время выполнения операции ветвления – от 1,28 до 1,92 мкс.

Регулярный канал обеспечивал массовый обмен данными в режиме сегментируемого многокольцевого сдвига между соседними ПЭ.За 0,32 мкс производится передача и прием N 24-разрядных слов, где N – количество ПЭ в мультипроцессоре ПС-2000.

Магистральный канал обеспечивает «широковещательную» передачу одного 24-разрядного слова всем активным ПЭ либо из регистра KU ОУУ в один такт за 0,32 мкс, либо из любого ПЭ в два такта— за 0,64 мкс.

Регулярный и магистральный каналы могут программно сегментироваться на несколько не связанных между собой одинаковых фрагментов размером 8, 16, 32 или 64 ПЭ.

При тактовой частоте 3 МГц средняя производительность 64-процессорного компьютера ПС-2000 на задачах промышленной обработки данных была близка к пиковой— 200 MFLOPS.

Вычислительный комплекс на базе ПС-2000

В состав вычислительного комплекса (ВК) ПС-2000 (рис. 2) входит мультипроцессор, мониторная подсистема и от одной до четырех подсистем внешней памяти (СВП), обеспечивающих параллельно-асинхронную работу нескольких каналов ввода/вывода в режиме одновременного функционирования многих магнитных носителей информации (на дисках и лентах). При работе с физическими объектами в реальном времени к мультипроцессору можно подключать многоканальные асинхронные потоки информации как через СВП, так и через специальные высокоскоростные каналы.

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

Особенности программирования

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

Заключение

С появлением многоядерных кристаллов активизируется спрос на новейшие многопроцессорные архитектуры, сбалансированные под требования однокристальной реализации. Весьма актуальной поэтому становится задача воплощения архитектуры ПС-2000 на одном кристалле. Масшабируемая по числу процессорных элементов архитектура ПС-2000 позволяет наращивать число элементов пропорционально увеличению количества транзисторов на кристалле. Производительность, близкая к 1 TFLOPS, может достигаться на 512 элементах в одном кристалле.

Прекращение в середине 90-х годов финансирования научных разработок остановило развитие архитектурной линии ПС-2000, правда, есть надежда, что за упущенные 15 лет не произошло отставания, поскольку и за рубежом архитектуры высокопроизводительных систем впали в «ледниковый период». Наш развал и их застой на этот раз совпали. Сейчас, в условиях кризиса классической модели последовательного счета и острого архитектурного голода на многопроцессорные однокристальные архитектуры, система ПС-2000 дает свой полновесный ответ на вопрос: «Что важнее, – элементная база или архитектура?» Компьютер с лучшей архитектурой сумеет показать свои достоинства и на слабой элементной базе, а на лучшей ему не будет равных.

Юрий Затуливетер, Елена Фищенко ({zvt,fish}@ipu.rssi.ru)— сотрудники Института проблем управления РАН (Москва).


Сферы применения ПС-2000

 Наиболее широкое применение ВК ПС-2000 нашел в геофизике— быстрорастущие стеллажи из катушек магнитных лент с записями данных сейсморазведки, годами безмолвно хранивших нефтяные и газовые секреты, предопределили успех ПС-2000. Уже в 70-е годы сейсмическая разведка настолько успешно «просвечивала» и записывала на ленты данные о километровых глубинах недр страны, что буквально «с головой» засыпала катушками архивы вычислительных центров. Однако за год удавалось расшифровывать лишь несколько процентов того, что поступало за один сезон разведки.

Для обработки данных сейсмической разведки месторождений нефти и газа во ВНИИ Геофизики при участии ИПУ РАН была создана система промышленной обработки геофизической информации СОС-ПС.В отрасли успешно эксплуатировалось почти 90 экспедиционных геофизических вычислительных комплексов ПС-2000, обеспечивающих углубленную обработку данных сейсморазведки нефти и газа.

ЭГВК ПС-2000 создавался в соответствии с требованиями Министерства геологии и был единственным в стране проблемно-ориентированным вычислительным комплексом, полностью оснащенным всем оборудованием, необходимым для обработки данных сейсморазведки. ЭГВК ПС-2000 не требовал большой площади, имел по тем временам сравнительно малое энергопотребление, низкие эксплуатационные расходы, обеспечивал высокую надежность при работе в геофизических экспедициях. Применение ЭГВК ПС-2000 позволило отказаться от импорта дорогостоящих зарубежных вычислительных комплексов— подтвержденный экономический эффект от использования ЭГВК ПС-2000 только в области геофизики составил около 200 млн. руб., при том, что на его разработку было затрачено примерно 10 млн. руб.

На базе нескольких комплексов ПС-2000 были созданы высокопроизводительные (до 1 млрд. операций в секунду) системы обработки гидроакустической и телеметрической информации в реальном масштабе времени. Несколько мультипроцессоров ПС-2000 соединялись в вычислительный конвейер. Чтобы обеспечить быстрый ввод/вывод гидроакустической или спутниковой информации, для таких систем создавались специальные высокоскоростные каналы.

ВК ПС-2000 длительное время активно использовались в Центре управления космическими полетами. Первые комплексы ПС-2000 поступили в ЦУП в 1982 году, а последние— в 1988 году. Всего было задействовано восемь 32-процессорных комплексов. ВК ПС-2000 в составе телеметрического вычислительного комплекса ЦУП использовались с 1986 по 1997 год, в качестве системы предварительной обработки телеметрической информации. Обслуживали эксплуатацию орбитальной станции «Мир».

Высокий параллелизм ПС-2000 позволил реализовать новые алгоритмы обработки телеметрической информации. К одной центральной системе «Эльбрус-2» была подключена пара 32-процессорных ВК ПС-2000 для обработки восьми полных потоков телеметрии. Чтобы повысить надежность, параллельно работали два телеметрических комплекса, а на динамических участках полета космических объектов— три.