История отечественной вычислительной техники

Вычислительные системы с динамической архитектурой

В конце 70-х годов в НИЦЭВТе были начаты научно-исследовательские и опытно-конструкторские работы по созданию вычислительных систем (ВС) для параллельной обработки информации на основе теоретических проработок В. А. Торгашева по машинам с динамической архитектурой.

Под руководством Главного конструктора В. У. Плюснина совместно с коллективом В. А. Торгашева были проведены научно-исследовательские работы и созданы образцы ВС с параллельной архитектурой.

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

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

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

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

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

Главная отличительная черта машин с динамической архитектурой (сетевых динамических систем) – в их основе лежит вычислительная модель, в которой само вычисление рассматривается как автотрансформация сети, и в этом случае распределенное управление становится частным случаем вычисления.

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

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

Основное назначение КА – установка и разрушение связей, а также передача информации по связям. Основной единицей передаваемой информации является пакет, состоящий из описания и тела. Тело соответствует собственно передаваемой информации (данным), а описание содержит информацию, необходимую для организации передачи.

Итак, в основе архитектуры ЭВМ, реализующих автоматные сети, лежит принцип динамической перестройки программы. Отсюда и название – машины с динамической архитектурой.

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

Для представления задач в виде ДАС разработан внешний язык программирования (РЯД), преимуществами которого являются:

  • новая вычислительная модель – ДАС;
  • явное использование простых и структурных отношений;
  • мощный аппарат ссылок, включая кванторы (все, любой), ссылки по образцу, структурные ссылки;
  • представление в языке любых ресурсов системы (память, процессоры, модули и т. д.) и операций над ресурсами.

В период с 1982 по 1985 гг. была создана первая вычислительная система с динамической архитектурой – мультипроцессор ЕС2704, содержащий 24 вычислительных модуля, 12 коммутационных модулей, 6 интерфейсных модулей. Все ВМ разделены на группы по 4 модуля (кластер). Каждый кластер связан с одним ИМ по двухбайтовому каналу и с двумя КМ по двум однобайтовым каналам. Каждый КМ соединен с четырьмя другими КМ, так что длина пути (число КМ, через которые проходит связь) между любыми двумя ВМ не превышает трех. Вычислительный модуль является трехпроцессорной ЭВМ и содержит управляющий, исполнительный и арифметический процессоры, оперативную память, сверхоперативную память и специализированные устройства, обеспечивающие обмен между ВМ и КМ. Все три процессора в ВМ работают одновременно.

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

В ряд организаций страны были поставлены образцы ЕС2704 в основном для решения задач обработки цифровых сигналов (задачи радиолокации, гидролокации и т. п.).

Мультипроцессоры ЕС2704 могут быть объединены в комплекс через интерфейсные модули (до четырех мультипроцессоров в комплексе), что позволяет получить среднюю производительность порядка 400 млн. операций в секунду.

В мультипроцессоре ЕС2704 была использована элементная база ИС500, что не дало возможности вести дальнейшие разработки с применением указанной элементной базы.

Следующей моделью машин с ДА был параллельный суперкомпьютер RS-30-8. Эта модель, содержащая восемь ВМ, построена с использованием микропроцессорной серии TMS320C30 фирмы TI. Модель была разработана для фирмы "Боинг" (моделирование работы и конструирование отдельных устройств самолетов фирмы) и при испытаниях в 1988 г. показала производительность порядка 250 Мфлопс/с (пиковая) и среднюю производительность 150 Мфлопс/с при обработке 32-битовой информации.

В последующие годы был проведен ряд НИР и ОКР по созданию машин с ДА на перспективных образцах процессоров зарубежных фирм.

Ниже приведены некоторые варианты реализации машин с динамической архитектурой.

Обобщенная блок схема элемента МДА (ВМ)

Как ЭВМ с сетевой архитектурой МДА состоит из трех типов элементов: решающих, коммутационных и интерфейсных. Первые предназначены для выполнения вычислений, вторые – для организации связи решающих элементов между собой, а третьи – для связи их с внешними устройствами. Обобщенная блок-схема элемента МДА представлена на рис. 1.

Обобщенная блок-схема элемента МДА

Обобщенная блок-схема элемента МДА

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

Решающий элемент реализуется в МДА в виде вычислительного модуля (ВМ). Управляющий процессор ВМ осуществляет обработку (интерпретацию) ДАС и распределение ее в сети ВМ. Блок ввода-вывода предназначен для буферизации информации между ВМ и сетью и ее форматирования (из 16-разрядного слова в два 8-разрядных и наоборот). Основной узел БВВ – оперативная память, выполняющая роль буфера и управляемая от УП.

Исполнительный процессор ВМ осуществляет подготовку программ и данных для вычислений и управляет вычислениями. Собственно вычисления выполняет операционный блок, специализированный на числовую (символьную) обработку информации, – арифметический (символьный) процессор АП (СП).

Принципиальным отличием коммутационного (КМ) и интерфейсного (ИМ) модулей МДА от вычислительного является специализация их операционных блоков не на вычисление, а на передачу и прием информации соответственно в (из) вычислительную сеть и внешнюю среду. В обоих модулях ОБ представляет собой адаптер, реализующий протокол обмена информацией. Коммутационные модули имеют одинаковые адаптеры. Для интерфейсных модулей они определяются теми внешними устройствами, с которыми осуществляется связь МДА. Другим отличием от вычислительных модулей является более слабая выраженность управляющих и исполнительных подсистем в КМ и ИМ в силу меньшего объема параллельно выполняемых операций.

Возможная структура МДА и блок-схема вычислительного модуля, реализованные в мультипроцессоре ЕС2704

Одна из возможных структур МДА

Одна из возможных структур МДА

На рис. 2 приведена одна из возможных структур МДА. Следует заметить, что приведенная здесь КАС соответствует полнодоступному (при условии, что все операционные автоматы подключаются с одной стороны сети), но блокирующему коммутатору. Для устранения блокировок необходимо, чтобы каждый канал содержал не менее двух (в общем случае не менее К, где К – число каналов нижнего уровня для каждого автомата сети) пространственных или временных подканалов. Максимальная длина пути в такой КАС (т. е. число КА, через которые проходит связь) пропорциональна логарифму по основанию К от числа операционных автоматов.

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

Для установки связей со свободными автоматами целесообразно использовать методы, основанные на индикаторных множествах, которые обеспечивают одновременную установку независимых соединений в сети при минимальных взаимных помехах (в отличие от волновых методов).

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

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

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

Индикаторные множества в МДА используются не только для соединения со свободными автоматами, но также для соединения со структурами, соответствующими системной и прикладной библиотекам конкретных пользователей.

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

Любая программа, находящаяся в МДА, либо непосредственно представлена в индикаторных множествах КАС, либо включается в качестве элемента в программу более высокого уровня (обычно это одна из библиотек), имеющая такое представительство, что дает возможность всегда идентифицировать программу.

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

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

Все автоматы ДАС можно разделить на активные (операторы и отношения) и пассивные (значения). Активный автомат в каждый момент времени выполняет одну из следующих функций: управление, коммутацию или вычисление. Функция управления заключается в вычислении предиката перехода автомата в состояние возбуждения, когда он занимается коммутацией или вычислением. Под вычислением в данном случае понимается изменение внутренней структуры автомата. Коммутация, в свою очередь, делится на внутреннюю (внутри ВМ), межмодульную (связи между различными ВМ) и внешнюю (взаимодействие с внешней средой). Соответственно в вычислительном модуле можно выделить пять процессоров: управляющий, исполнительный и три коммутационных (рис.3).

Блок-схема вычислительного модуля

Блок-схема вычислительного модуля

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

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

Пример распределенных вычислений в МДА

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

На языке РЯД программа данной задачи ОПМ может быть записана в следующем виде:

ОПМ ЭЛЕМЕНТ ОБЩЕЙ БИБЛИОТЕКИ [шифр пользователя];
ОПМ: (МС:=+.((+.(ПР КС)) ТС);
(ПР, КС, ТС, МС) ВНЕШНИЕ ПЕРЕМЕННЫЕ;
ПР ТИП ((ИМЯ: ЦЕЛОЕ), .);
КС ТИП ((ИМЯ: ((ИМЯ : ЦЕЛОЕ) , ,);
ТС ТИП ((ИМЯ: ((ИМЯ :ЧИСЛО) , ,) , ,);
МС ТИП ((ИМЯ::ЧИСЛО) , ,);
);

Графическое представление программы приведено на рис. 4.

Графическое представление программы

Графическое представление программы

Предположим, что программа ОПМ поступает в ВМ1, где она преобразуется из линейной формы в сетевидную. Далее каждое отношение пытается привести объекты, над которыми оно определено, к виду, определяемому этим отношением, либо осуществляет проверку такого соответствия. Отношение принадлежности (ЭЛЕМЕНТ) помещает программу ОПМ в раздел конкретного пользователя общей библиотеки. Отношение размещения (ВНЕШНИЕ ПЕРЕМЕННЫЕ) заменяет неопределенные значения объектов на соответствующие указатели в раздел данного пользователя общей библиотеки или, иными словами, в библиотеку пользователя. Одновременно осуществляется отождествление имен объектов, входящих в структуру, с именами объектов, над которыми задано указанное отношение. Если при этом находятся аргументы, являющиеся неопределенными, или результирующая структура МС, наоборот, определена, или в библиотеке не нашлось элемента с соответствующим именем, то отношение размещения соединяется с системной программой обработки ошибок, которая в данной ситуации во избежание распространения ошибок переводит элемент в неопределенное состояние и выдает пользователю сообщение об ошибке.

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

Оператор 2 выполняет операцию деструктуризации, т. е. удаляет один уровень из входной структуры. Результат оператора I имеет такую же структуру, как объект КС, а результат оператора 2 содержит лишь наименования деталей и их количество без указания названий изделий. Данный оператор так же, как и предыдущий, порождает свои копии, равномерно распределяющиеся по МДА.

Оператор совместного сложения 3 выполняет сложение элементов входной структуры, соответствующих друг другу (в данном случае с одинаковыми именами). В результат включаются и те элементы исходной структуры, для которых не находится соответствующей пары. При выполнении данного оператора порождается множество двуместных операторов сложения, у которых одним аргументом является элемент входной структуры, а другим – результирующая структура в целом. Любой элемент результата остается неопределенным вплоть до полного завершения операции, когда результирующая структура скачком переходит в определенное состояние, минуя частично определенное, после чего может начать работу оператор 4.

Пока результат оператора 3 содержит небольшое число элементов, он находится в ВМ1 и там же выполняются соответствующие двуместные операторы сложения. Однако с ростом числа элементов эта структура начинает делиться и расползаться по другим модулям и соответственно распараллеливается и оператор 3. При достаточно большом объеме вычислений и выполнении оператора 3 (точнее, компонента этого оператора) будут участвовать все ВМ. Распараллеливание здесь обеспечивается с помощью рассмотренного выше механизма очередей. Вторая половина программы выполняется аналогично.

Итак, при решении данной задачи в МДА одновременно выполняется половина операторов программы (сначала 1–3, а затем 4–6), и каждый из этих операторов при достаточно больших объемах данных выполняется одновременно в К модулях. Правда, максимальный параллелизм достигается лишь через некоторое время после начала выполнения программы.

В процессе решения задачи или одновременно нескольких задач архитектура МДА динамически изменяется не только на уровне автоматов, но и на уровне вычислительных модулей. Так, при выполнении операторов 1, 2 или 4, 5 МДА имеет структуру, приведенную на рис. 5, а. Такую же структуру машина имеет при решении систем линейных алгебраических уравнений одним из итерационных способов. При выполнении операторов 3 и 6 в МДА реализуется полный граф связей (рис. 5, б). При решении дифференциальных уравнений в частных производных в МДА формируется линейная структура (рис. 5, в), а при решении задач, связанных с перебором вариантов, – древовидная (рис. 5, г).

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

Различные архитектуры МДА

Различные архитектуры МДА

Кластерная организация МДА[1]

Кластер. Вычислительные модули, входящие в МДА, как правило, имеют неодинаковую связность друг с другом. Группы ВМ, тесно связанные друг с другом коммутационными и интерфейсными связями, образуют кластер. Обычно в кластер входят от 4 до 8 вычислительных модулей, имеющих прямые коммутационные связи каждый с каждым или через один уровень коммутации и один–два интерфейсных модуля. Кроме того, ВМ и ИМ, входящие в кластер, могут иметь общие шины управления. ВМ разных кластеров связаны друг с другом только посредством коммутационных связей.

Вариант кластера – общая шина памяти между вычислительными модулями размыкается и часть внешних коммутационных связей используется для связи ВМ и ИМ в кластере. Этот вариант кластера приведен на рис. 6. В составе ВМ3 показан интерфейсный модуль, подключенный через общую шину памяти. Вариант с разомкнутой шиной памяти в некоторых применениях увеличивает производительность кластера за счет увеличения совокупной пропускной способности общей шины памяти. Внешний интерфейс 1 предназначен для подключения кластера к коммутационному модулю. Интерфейс 2 используется для подключения внешнего абонента, если в состав кластера входит ИМ, подключенный к параллельному порту одного из ВМ кластера.

Кластер из трех вычислительных (ВМ) и одного интерфейсного (ИМ) модулей

Кластер из трех вычислительных (ВМ) и одного интерфейсного (ИМ) модулей

Интерфейсный модуль. Интерфейсный модуль МДА-МП предназначен для подключения быстрых нестандартных устройств ввода/вывода данных. Он имеет 36 внешних программируемых линий, объединенных в четыре группы, каждая из которых может быть определена как входная, выходная или двунаправленная. Интерфейсный модуль ориентирован преимущественно на ввод данных. В тракте приема данных можно выполнять маскирование каналов, выделение фронтов входных сигналов, оцифровку интервалов между фронтами и буферизацию данных. Пиковая скорость приема данных – до 40 Мб/с. Входные и выходные сигналы соответствуют уровням ТТЛ-логики. Объем буферной памяти – не менее 1Кх32 бит (4 Кб).

Кроме того, в интерфейсном модуле размещены оконечные каскады двух последовательных портов ввода/вывода данных.

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

Коммутационный модуль. В системах с большим числом кластеров (или в кластерах с большим количеством ВМ0 появляется необходимость в дополнительных коммутационных связях для организации полнодоступной неблокируемой коммутационной сети. Функции узлов коммутации выполняют коммутационные модули. Коммутационные модули в МДА обеспечивают пакетную коммутацию с буферизацией данных (если это необходимо). Коммутация осуществляется на базе индикаторного механизма. Таблица индикаторов имеет размер 256 записей. В МДА-МП предлагается реализовать двухуровневую коммутацию: первый уровень коммутации – командный, второй – коммутация данных. Командный уровень коммутации используется для обслуживания самой коммутационной сети – выполнения волновых команд установки и сброса индикаторов связей и ресурсов, команд контроля и диагностики. Кроме того, коммутации пакетов данных предшествует командная посылка, которая определяет параметры передачи (номер и тип индикатора, количество передаваемых блоков в пакете). Оба уровня коммутации функционируют независимо. Выделение из общего пакета передаваемых данных управляющей информации для коммутационного модуля увеличивает пропускную способность коммутационного поля.

Основные технические характеристики коммутационного процессора

Число каналов 12 параллельных двунаправленных 2-байтовых каналов
Пропускная способность каналов, Мб/с  
  параллельного 22
  последовательного 2
Максимальная пропускная способность
коммутационного модуля (при конференц-связи), Мб/с
244
Средняя пропускная способность, Мб/с около 100

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

Схема системы без использования коммутационных модулей

Схема системы без использования коммутационных модулей

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

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

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

На рис. 8 показано соединение кластеров через коммутационный модуль.

Подключение кластеров к коммутационным модулям

Подключение кластеров к коммутационным модулям

В отличие от варианта на рис. 7 этот кластер состоит из 7 ВМ. Одна связь в каждом ВМ – для подключения к КМ. На рис. 9 показано соединение коммутационных модулей в матрицу. Незадействованные правые связи коммутационной матрицы можно соединить с незадействованными левыми связями, а верхние с нижними, образовав замкнутое коммутационное поле. Приведенное на рис. 9 коммутационное поле объединяет 9 кластеров (63 ВМ или до 504 ПЭ). Максимальная длина пути между кластерами – через 3 коммутационных модуля.

Объединение коммутационных модулей в плоскостную ортогональную матрицу

Объединение коммутационных модулей в плоскостную ортогональную матрицу

Рекламный лист по процессору ППС-30-3
(разработан и изготовлен в НИЦЭВТ при участии ЛНИИВЦ АН СССР).

Персональный параллельный суперкомпьютер ППС-30-3

Персональный параллельный суперкомпьютер ППС-30-3 является младшей моделью семейства программно-совместимых безотказных параллельных вычислительных систем с динамической архитектурой (ВСДА).

ВСДА – это новый класс систем ЭВМ. В основе ВМДА лежит принципиально новый подход к организации параллельных вычислений в ЭВМ, основанный на теории динамических автоматных сетей.

ВСДА обладает рядом уникальных свойств, позволяющих:

  • Создавать сверхскоростные, сверхнадежные и экономичные системы

а) задача решается параллельно на многих процессорах, причем процесс распараллеливания происходит автоматически;

б) при выходе из строя любого количества процессоров распределенная операционная система автоматически производит следующие действия:

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

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

  • Относительно просто программировать задачи

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

  • Подключать устройства с практически любым интерфейсом

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

  • Организовать на базе ВСДА сверхнадежные вычислительные сети и машины баз данных

ВСДА позволяет эффективно решать следующие задачи:

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

Технические характеристики ППС-30-3

Максимальная пиковая производительность, Мфлоп/с 99
Средняя производительность в реальном масштабе времени, Мфлоп/с 60
Объем оперативной памяти, Мб 12
Количество программируемых процессоров ввода-вывода, шт. До 2
Пропускная способность каждого из каналов ввода-вывода, Мб/с 25
Количество адаптеров с микропроцессором TMS320C30, шт. 3

Заключение

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

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

Высокая популярность в настоящее время языка АПЛ позволяет надеяться, что язык РЯД, обладающий практически всеми преимуществами АПЛ и, кроме того, еще рядом достоинств, может быть достаточно просто освоен массовым пользователем.

Что касается таких достоинств МДА, как отличная производительность при решении параллельных задач, высокая живучесть системы, простота эксплуатации, то они непосредственно следуют из ее архитектуры.

В данном материале использованы теоретические труды д. т. н. В. А. Торгашева, результаты совместных НИР и ОКР, проводимых НИЦЭВТом и ЛНИИВЦ АН СССР.

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

Статья опубликована 04.03.2003 г.

Примечания

1. Материал приведен по результатам ОКР “Параллель”, проведенной НИЦЭВТ и ЛНИИВЦ АН СССР