Реферат: Анализ работы многопроцессорных систем и обоснованность их применения в АСУ
--PAGE_BREAK--
При различии времени обработки в разных элементах волновые матричные процессоры оказываются более эффективными, чем систолические.
Рис. иллюстрирует различие между систолическими и волновыми матрицами процессорных элементов. Для реализации и систолических, и волновых мультипроцессоров, в которых каждый элемент представляет собой 32-разрядный микропроцессор, могут быть применены транспьютеры Т414. Возможен и другой подход, при котором матрица строится из одноразрядных микропроцессоров, причем множество таких элементарных процессоров размещается конструктивно в одной интегральной схеме.
Геометрически-арифметический параллельный процессор (GAPP)фирмы NCRпредставляет собой двумерную однокристальную матрицу, содержащую 72 одноразрядных процессора, каждый из которых имеет ЗУПВ емкостью 128 бит. Из нескольких GAPPмогут быть построены матрицы большой размерности, предназначенные для обработки изображений и сигналов, а также для работы с базами данных. Обработка слов данных с помощью GAPPосуществляется параллельно, причем действия над словами переменной длины выполняются путем последовательной обработки их разрядов (параллельная обработка слов – последовательная обработка битов). GAPPпредставляет собой скорее матричный процессор класса ОМКД, нежели систолическую матрицу, так как в нем имеется возможность подачи данных на все ячейки. Однако эта способность GAPPреализуется с помощью протяженных межсоединений, которые снижают скорость. В то же время GAPPможет служить основой для построения систолических матриц.
Процессоры CLIPфирмы Stonefield (разработанный в Лондонском университетском колледже в 70-х годах) и DAPфирмы ICLявляются матричными процессорами, представляющими собой БИС, содержащие одноразрядные процессорные элементы. CLIPприменяется главным образом для обработки изображений, а ICL DAPв основном используется для реализации алгоритмов быстрой обработки сигналов и числовых расчетов.
Интегральный систолический матричный процессор был разработан в исследовательском центре GEC Hirst.МА717 представляет собой систолическую матрицу, в которую данные вводятся через периферийные элементы, а движение их по матрице происходит в виде протоков от элемента к элементу. Рабочая частота устройств, реализуемых на принципах этой систолической архитектуры, может почти в два раза превышать рабочую частоту процессоров GAPP.
Матричные процессоры.
Для реализации обработки сигналов матрицы МКМД могут быть организованы в виде систолических или волновых матриц. Систолическая матрица состоит из отдельных процессорных узлов, каждый из которых соединен с соседними посредством упорядоченной решетки. Большая часть процессорных элементов располагает одинаковыми наборами базовых операций, и задача обработки сигнала распределяется в матричном пространстве по конвейерному принципу. Процессоры работают синхронно, используя общий задающий генератор тактовых сигналов, поступающих на все элементы.
В волновой матрице происходит распределение функции между процессорными элементами, как в систолической матрице, но в данном случае не имеет места общая синхронизация от задающего генератора. Управление каждым процессором организуется локально в соответствии с поступлением необходимых входных данных от соответствующих соседних процессоров. Результирующая обрабатывающая волна распространяется по матрице по мере того, как обрабатываются входные данные, и затем результаты этой обработки передаются другим процессорам в матрице.
Вычислительная поверхность Meiko.
Вычислительная поверхность Meikoбыла разработана инженерами и программистами, работавшими над проектированием транспьютера Inmos;они поставили перед собой задачу построить на основе транспьютеров гибкую, наращиваемую мини-суперЭВМ, характеризующуюся отношением стоимость/производительность около 250 долл./(млн. операций/с) и максимальной производительностью свыше 1000 млн. операций/с.
Фирма Meikoотказалась от использования жестких фиксированных топологий вычислительной поверхности, так как оценила эти топологии как компромисс, не позволяющий достичь абсолютной гибкости. Для различных областей применения требуются различные конфигурации; оптимальные топологии оказываются неодинаковыми для разных задач, решение которых может потребовать использования различных ресурсов. Так, например, для одних применений может понадобиться большая доля вычислительных ресурсов, а для других – наличие быстрых методов обращения к базам данных.
Гибкость вычислительной поверхности обеспечивается за счет наличия набор модульных подсистем, которым может быть придана любая топологическая конфигурация, соответствующая конкретному применению. Вычислительную поверхность можно рассматривать как целое процессорное хозяйство, работающее в многозадачном окружении, в котором на каждый вычислительный элемент приходится отдельная независимая задача. В этой ситуации многие реальные прикладные задачи могут решаться практически без каких-либо модификаций. С другой стороны, параллельность, внутренне присущая машине, может быть эффективно реализована в таких ситуациях, когда машина рассматривается со стороны задачи как однородный обрабатывающий ресурс.
Для того чтобы главная ЭВМ имела возможность создавать физическое отображение всей физической поверхности, предусмотрена поддерживающая инфраструктура. Пользуясь отображением и конфигурацией электронных средств, эта инфраструктура обеспечивает соединение топологических элементов в соответствии с высокоуровневым описанием, полученным из прикладной программы, которая должна быть загружена. Программные средства определяют как описание, выводимое на основе прикладной программы, так и машину, на которой эта программ будет выполняться. Программы могут быть написаны на языке Оккам или на других языках, таких, как Фортран, Си, Паскаль и т.д. Эти программы, выполняемые в соответствии с закономерностями языка Оккам, обеспечивают связь процессора с другими процессорами, которые, возможно, осуществляют копии той же программы.
Процесс формирования топологии обеспечивает иерархическое управление исходной программой, автоматическую рекомпиляцию, выдачу сообщений об ошибках в процессе выполнения, загрузку и прогонку программ в распределенном мультипроцессоре с использованием однофункциональных ключевых команд.
Производительность малой настольной вычислительной поверхности М10 может достигать 250 млн. операций/с; она ориентирована на использование ее в качестве персонального вычислительного ресурса, рабочей станции или системы проектирования. В более крупных системах используются модули типа М40, каждый из которых является основой для построения вычислительных средств в диапазоне от вычислительных установок, имеющих суммарную производительность 1100 млн. операций/с и одновременно адресуемую динамическую память с произвольной выборкой объемом 42 Мбайт, до машин баз данных с памятью 315 Мбайт, производительностью 400 млн. операций/с и пропускной способностью дисковой памяти более 75 Мбайт/с. модуль М40 имеет компактное конструктивное оформление размерами 40 дюйм ´20 дюйм ´20 дюйм и, обладая неограниченными соединительными возможностями, может быть включен в состав системы аналогичных модулей, имеющей необходимые масштабы.
Для создания заказных модулей вычислительные поверхности предусмотрен ряд плат и подсистем. Чтобы поверхность представляла логически оформленное вычислительное средство с точки зрения прикладного программиста, все вычислительные элементы соответствуют одной и той же обобщенной модели (см. рис. ниже). Каждый элемент построен на основе транспьютера и имеет наряду со специализированными функциональными блоками свой собственный интерфейс с глобальной супервизорной шиной и собственную локальную память. Каждый элемент снабжен восемью <img width=«437» height=«501» src=«ref-1_1965075030-30090.coolpic» v:shapes="_x0000_s1031">
однонаправленными последовательными коммуникационными каналами, имеющими быстродействие 10 или 20 Мбит/с.
В число специализированных функциональных плат входят следующие:
1) Счетверенное вычислительное устройство, включающее четыре элемента, каждый из которых содержит транспьютер Т414, ЗУПВ емкостью 256 Кбайт с обнаружением ошибок, восемь однонаправленных последовательных каналов связи и интерфейс супервизорной шины;
2) Запоминающее устройство большой емкости, содержащее транспьютер Т414, ЗУПВ емкостью 8 Мбайт с обнаружением ошибок, восемь однонаправленных последовательных каналов связи, интерфейс супервизорной шины и периферийный интерфейс SCSIс ЦДП-управлением и быстродействием 2 Мбайт/с. Для подключения к этому интерфейсу имеются винчестерские диски емкостью 500 Мбайт и лазерные диски емкостью 2 Гбайт;
3) Локальное главное устройство(стандарт IEEE 488), содержащее транспьютер Т414, ЗУПВ емкостью 3 Мбайт с обнаружением ошибок, ЭППЗУ емкостью 128 Кбайт, восемь однонаправленных последовательных каналов, интерфейс супервизорной шины, параллельный интерфейс IEEE 488и сдвоенный последовательный интерфейс RS-232;
4) Элемент индикации, содержащий транспьютер Т414, внутреннее статическое ЗУПВ емкостью 128 Кбайт, двупортовая память индикации емкостью 1,5 Мбайт, восемь однонаправленных последовательных каналов связи, интерфейс супервизорной шины, внешний тракт элементов изображения с рабочей частотой 70 МГц (200 Мбайт/с) и генератор цветовых видеосигналов в соответствии со стандартами CCIR/RS-343. Множество элементов индикации может быть объединено для формирования увеличенной памяти кадра и расширения пропускной способности при формировании изображений.
Существуют вычислительные элементы повышенной производительности, построенные на базе транспьютера Т800, который имеет расширенные возможности для выполнения операций с плавающей запятой и внутреннее ЗУПВ емкостью 4 Кбайт.
Гиперкуб, или двоичный N-куб.
Гиперкубическая архитектура впервые была разработана в Калифорнийском технологическом институте; основной ее принцип состоит в использовании множества микропроцессоров, каждый из которых снабжен локальной памятью, для формирования вычислительных узлов, соединенных между собой двухпунктовыми связями. Гиперкуб размерности nобъединяет N=2nузлов, которые независимо работают над выполнением отдельных частей полной программы. Так, куб размерности 6 содержит 64 узла, каждый из которых связан с шестью ближайшими соседями в пределах 6-размерного куба.
Данные могут вводиться в узлы посредством сообщений, посылаемых по каналам связи от процессоров, выполняемых в других узлах, или от управляющего процессора куба. Для управления посылкой и получением сообщений служат специальные примитивы операционной системы. Ширина полосы пропускания сигналов связи гиперкуба растет с увеличением числа узлов пропорционально N log2N, задержка в худшем случае составляет log2N.
Гиперкуб можно определить индуктивно; гиперкуб порядка N+1может быть построен путем удвоения гиперкуба порядка Nи соединения двух наборов узлов. Такой подход позволяет создавать программное обеспечение для гиперкубов любых размерностей; необходимо лишь определить размерность на время выполнения программы. Возможно также разделить большую гуперкубическую машину на субкубы, отвести каждой программе узлы в количестве, обеспечивающем максимально эффективное ее выполнение, и использовать узлы, являющиеся в данный момент избыточными, для других программ вместо того, чтобы оставлять их без применения.
Гиперкуб представляет собой сеть с максимально возможной плотностью соединений; его объем может охватывать тысячи процессоров, потому что для удвоения количества процессоров к каждому узлу должен быть добавлен всего один коммуникационный канал. Плотность взаимосвязи узлов определяет практичность использования всей системы соединений, представляющей собой принципиально важную аппроксимацию параллельной вычислительной системы, так как конкретная конфигурация связей зачастую непредсказуема.
Если узлы пронумированы от 0 до 2n-1, каждый процессор непосредственно связан со всеми теми, номера которых отличаются от его номера одной двоичной цифрой. Отбрасывая некоторые связи гиперкуба, можно отобразить в него многие другие виды сетевой топологии, к числу которых относятся следующие:
1) Решетки, или сетки размерностью до N;
2) Кольца;
3) Цилиндры;
4) Тороиды;
5) Топология ''бабочка'' для БПФ.
В гиперкубах используется высокоуровневая форма параллелизма, которую называют параллельной обработкой, обеспечивающей асинхронное выполнение операций в мультипроцессорной системе. Для увеличения производительности отдельных узлов, в работе которых имеет место значительная доля векторной обработки, может быть применен этот вид обработки. Максимальная производительность, которая может быть достигнута в подобной вычислительной системе, определяется как произведение производительности параллельной, векторной и скалярной обработки для данного применения. Для обеспечения максимальной производительности, достижимой с учетом ограничений, налагаемых степенью параллельности, которая присутствует в решаемой прикладной задаче, необходимо использовать языки параллельного программирования, такие, как Оккам.
Базовый элемент мультипроцессорных систем
с однотипными процессорами.
Транспьютеры представляют собой микропроцессоры, рассчитанные на работу в мультипроцессорных системах с однотипными процессорами. Особенностью транспьютеров является наличие коммуникационных быстрых каналов связи, каждый из которых может одновременно передавать по одной магистрали данные в процессор, а по другой – данные из него. В составе команд транспьютеров имеются команды управления процессами, поддержки языков высокого уровня, встроенная память емкостью 2 Кбайт.
<img width=«440» height=«513» src=«ref-1_1965105120-20570.coolpic» v:shapes="_x0000_s1037">
На основе транспьютеров строятся структуры МКМД (множественный поток команд, множественный поток данных).
На рисунке показана тороидальная матрица транспьютеров. Разрядность местной памяти каждого транспьютера наращивает разрядность памяти системы. Таким образом, полная разрядность памяти пропорциональна количеству транспьютеров в системе. Суммарная производительность также возрастает прямо пропорционально числу транспьютеров, входящих в систему.
В дополнение к параллельной обработке, реализуемой транспьютерами, предусмотрены специальные команды для разделения процессорного времени между одновременными процессорами и обмена информацией между процессами. Хотя программирование транспьютеров может выполняться на различных языках высокого уровня, для повышения эффективности параллельной обработки был разработан специальный язык Оккам.
Типичными представителями транспьютеров являются модели Т212, Т414, Т800 фирмы Inmos. Их основные характеристики приведены в таблице:
Характеристика
Т212
Т414
Т800
Разрядность
16
32
32
Адресное пространство
64 Кбайт
4 Гбайт
4 Гбайт
Емкость встроенной памяти
2 Кбайт
2 Кбайт
4Кбайт
Скорость обработки данных, Мбайт/с
20
40
40
Каналы связи: организация (число каналов ´ число портов)
4 ´ 2
4 ´ 2
4 ´ 2
Скорость обмена, Мбит/с
10
10 или 20
20
В качестве объекта более подробного рассмотрения остановимся на транспьютере Т414, так как он стал первым 32-разрядным микропроцессором, который сделал реальностью параллельную обработку.
<img width=«565» height=«340» src=«ref-1_1965125690-37762.coolpic» v:shapes="_x0000_s1038"> продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по коммуникациям