Главная > Оптика > Оптические вычисления
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

10.4.2. Архитектуры параллельной обработки

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

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

Классификация, представленная в [25] и изображенная на рис. 10.29, предлагает интересный вариант разбиения параллельных систем на категории исходя из числа процессоров и относительной степени сложности отдельного процессора. Традиционные монопроцессорные архитектуры изображены на рис. 10.29. По мере перехода к большему числу процессоров обычно происходит снижение степени сложности каждого отдельно взятого процессора, при этом следует стремиться достичь оптимального соотношения между ценой всей системы в целом и нарастанием ее сложности. Матрицы микрокомпьютеров представляют собой набор компьютеров, которые посылают сообщения друг другу посредством коммуникационной сети, как это изображено на рис. 10.30. Такие системы обычно характеризуются слабой связью элементов в противовес системам с сильной связью, т. е. отдельные компьютеры не делят между собой основную память и устройства ввода-вывода, хотя один компьютер всегда может привлечь ресурсы другого с помощью коммуникационной сети. Применение таких систем в символьных вычислениях, вероятно, будет происходить при решении задач, которые влекут за собой использование более чем одной базы знаний. Каждый процессор может работать с заданной частью задачи таким образом, чтобы свести к минимуму внутрипроцессорные связи.

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

Самые современные типы параллельных машин, оснащенные памятью, усиленной логикой и системами искусственных нейронных сетей, можно рассматривать как устройства

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

Рис. 10.28. (см. скан) Блочная диаграмма универсального параллельного компьютера.

Рис. 10.29. (см. скан) Классификация параллельных процессоров в зависимости от сложности узлов.

Рис. 10.30. Матрица микрокомпьютеров.

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

Последний элемент, изображенный на рис. 10.29, или запоминающее устройство с произвольной выборкой (ЗУПВ) представлено для сравнения с системами с разбиением на мелкие структурные элементы. Вследствие отсутствия возможности соединений ЗУПВ не могут работать как мультипроцессоры.

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

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

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

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

Вообще говоря, не существенно, к каким категориям

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

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

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

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

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

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

Рис. 10.31. Усиление возможностей системы межэлементных соединений посредством многопортовых устройств памяти.

Для простоты на рис. 10.32 изображены только перекрестные соединения размерности . Следует заметить, что для приборной реализации перекрестных соединений размером число переключателей составит а число двунаправленных линий связи Для больших значений реализация такой системы с помощью технологии электронных интегральных схем становится грандиозной задачей; особенно сложной является разработка двунаправленных линий связи с эквивалентными полосами частот и приемлемым уровнем перекрестных наводок. Кроме того, электронные компоненты имеют очень ограниченный коэффициент разветвления по выходу, например для коэффициента разветвления по выходу электронного вентиля предел составляет приблизительно 10. Решение этой проблемы электронными методами заключалось в возврате к многоступенчатым переключающим сетям. Один из многих возможных вариантов показан на рис. 10.33, а, где каждый переключающий элемент имеет коэффициент объединения по входу, равный 2, и коэффициент разветвления по выходу, также равный 2. Сеть соединений является трехступенчатой, все переключатели в вертикальном столбце должны функционировать как одна ступень сети. Эта сеть межэлементных соединений составлена из двенадцати перекрестных переключателей, назначение которых изображено на рис. 10.33, б. В данном случае необходимо всего 48 переключателей () вместо 64,

Рис. 10.32. Соединение процессор — память на основе перекрестного переключателя .

Рис. 10.33. Многоступенчатая сеть переключений: а — топология основной сети, б - комбинация состояний переключателя.

требующихся для перекрестной схемы . Следует отметить, что, к сожалению, многоступенчатая конструкция оставляет возможность для появления конфликтных ситуаций. Для реализации соединений в перекрестных схемах малых размеров существуют многочисленные топологии (например, дерево, баньян, дельта, сетка и многие др.) и выбор обычно осуществляется между ценой и приемлемой частотой конфликтных ситуаций. Например, если степень конфликтных ситуаций определенной пятиступенчатой замкнутой сети является приемлемой, то схема соединений потребует применения только 146 300 переключателей, а не 1 миллиона, который потребовался бы для перекрестного переключателя. Более подробное обсуждение топологии переключающих сетей представлено в книге [24].

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

<< Предыдущий параграф Следующий параграф >>
Оглавление