
Книги / Книга Проектирование ВПОВС (часть 2)
.pdf
Компьютеры с SIMD-архитектурой достаточно специализированы и ориентируются на решение задач, допускающих матричное представление.
Например, задача обработки изображений, где каждый модуль обработки данных работает на получение одного элемента конечного результата,
аналогично при решении уравнений математической физики и т.д.
MISD-компьютеры
Один из немногих примеров – конвейер процессорных элементов. Все ПЭ управляются по командам из общей памяти программ. Каждый процессорный элемент выполняет в каждом цикле свою команду. Необходимые данные ПЭ получает от своих соседей. После выполнения команды результат передаётся соседям. Таким образом, по мере продвижения данных команды в процессорных элементах меняются в соответствии с программой. На рис. 2.8 дана схема конвейера процессорных элементов. Одной из проблем при построении таких систем является выбор длины систолического массива процессоров. Данная система эффективна, если число логических операций и соответственно число переходов невелико.
Память команд
буфер
процессор
Центральный
буфер
процессор |
Центральный |
буфер
процессор |
Центральный |
Рис. 2.8
MIMD-компьютеры
Этот класс архитектур (рис. 2.6 и 2.7) наиболее богат примерами успешных реализаций. В него попадают симметричные параллельные вычислительные системы, рабочие станции с несколькими процессорами,
71

кластеры рабочих станций и т.д. Довольно давно появились компьютеры с несколькими независимыми процессорами, но вначале на них был реализован только принцип параллельного исполнения заданий, т.е. на разных процессорах одновременно выполнялись независимые программы. Разработке первых компьютеров для параллельных вычислений были посвящены проекты под условным названием СМ* и С.ММР в университете Карнеги (США).
Технической базой для этих проектов были процессоры DEC PDP-11. В нашей стране таковым был проект системы Эльбрус 10. В начале 90-х годов прошлого века именно MIMD-компьютеры вышли в лидеры на рынке высокопроизводительных вычисли-тельных систем.
|
|
|
|
|
|
Команды |
|
|
|
|
|
|
|
|
|
|
|
Центральный |
Центральный |
Центральный |
|
|
|
|
|
|
|||||||||
процессор |
процессор |
процессор |
|
ОП 1 |
ОП 2 |
ОП 3 |
|||||||||||
|
|
|
|
|
|
Потоки данных |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
коммутатор |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
Рис. 2.9 |
|
|
|
|
|
|
|
|||
|
|
|
Центральный |
Центральный |
|
|
Центральный |
|
|
|
|||||||
ОП 1 |
|
|
процессор |
|
|
|
ОП 2 |
|
процессор |
|
|
|
ОП 3 |
||||
|
|
|
процессор |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потоки данных
коммутатор
Рис. 2.10 a
72

Имеются и гибридные конфигурации, в которых память распределена по процессорам, а связь между процессорами осуществляется через коммутатор.
Память программ
Коммутатор
|
|
Устройство |
Устройство |
|
Устройство управления |
управления |
|||
управления |
||||
|
|
|
||
Процессорный |
Процессорный |
Процессорный |
||
элемент |
элемент |
|||
элемент |
||||
|
|
|||
Оперативная |
Оперативная |
Оперативная |
||
память данных |
память данных |
память данных |
||
Поток |
данных |
Поток данных |
Поток данных |
|
|
||||
|
|
Коммутатор
Рис. 2.10 б
В рассматриваемых выше MIMD-машинах с распределенной памятью для обмена данными используется коммутатор, что является узким местом. Так как обработка данных ведётся в параллельном коде, а обмен данными в последовательном коде, что снижает общее быстродействие. Для устранения этого недостатка часто используется топология "гиперкуб". Топология гиперкуб фактически обладает полнодоступной коммутацией, позволяет создавать и другие топологии, такие как "дерево", "кольцо", "решетка" и др. Другой эффективной топологией является иерархическое соединения ПЭВМ. Наиболее используемыми являются многокаскадные соединения один компьютер – с
группой компьютеров нижнего слоя рис. 2.10, а. Недостатком такой системы является слабая связь верхних слоёв с нижними. Например, для получения данных первым компьютером второго слоя от компьютера третьего слоя
73

входящего во вторую или третью группу необходим возврат на самую верхнюю
группу.
|
|
|
|
|
|
|
|
|
Основной |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
Вершина |
|
компьютер |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
коммутатор |
|
|
|
|
|
|
|
|
|
|||
1-й слой |
Компьтер1 |
|
|
|
Компьтер2 |
|
|
|
|
Компьтер3 |
|
||||||||||
Компьтеров |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
коммутатор |
|
|
коммутатор |
|
|
|
коммутатор |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
2-й слой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Компьтеров К |
311 |
К |
312 |
К |
313 |
К |
314 |
К |
К |
322 |
К |
323 |
К |
324 |
К |
331 |
К |
332 |
К |
333 |
К |
|
|
|
|
321 |
|
|
|
|
|
|
334 |
||||||||||
|
|
|
|
|
|
|
|
Рис. 2.11 а |
|
|
|
|
|
|
|
|
|
|
|
||
В топологии |
соединений один |
компьютер |
– со |
всеми |
|
компьютерами |
нижнего слоя этот недостаток устранён. Пример такой структуры приведен на рис. 2.11 б.
Вершина |
Основной |
|
компьютер |
||
|
1-й слой |
К |
К |
21 |
К21 |
21 |
|
|
||
|
коммутатор |
коммутатор |
коммутатор |
2-й слой комп |
комп |
комп |
комп |
комп |
комп |
комп |
комп |
комп |
Рис. 2.11 б
Кроме того, как видно из рисунка в рассматриваемой топологии число коммуникационных линий и, как следствие, пропускная способность у нижних слоях выше, чем на верхних.
Всистеме могут использоваться любые процессоры, чаще это процессоры
сфон-неймановской архитектурой и упрощённой системой команд, но иногда используются и специализированные процессоры.
Классификация Флинна не дает исчерпывающего описания разнообразных архитектур MIMD-машин, порой существенно отличающихся друг от друга.
74
Например, существуют такие подклассы MIMD-компьютеров, как системы с разделяемой памятью и системы с распределенной памятью. Системы с разделяемой памятью могут относиться по классификации Флинна как к MIMD,
так и к SIMD-машинам. То же самое можно сказать и о системах с распределенной памятью.
Развитием концепции MIMD-архитектуры с распределенной памятью является распределенная обработка, когда вместо набора процессоров в одном корпусе используются компьютеры, связанные достаточно быстрой сетью.
Концептуального отличия от MIMD-архитектуры с распределенной памятью нет,
а особенностью является медленное сетевое соединение.
2.4. Кластеры рабочих станций
Кластеры рабочих станций представляют собой совокупность рабочих станций, соединенных в локальную сеть, обычно, в масштабе отдела, факультета или института. Такой кластер можно считать вычислительной системой с распределенной памятью и распределенным управлением. Кластерная система,
при относительно невысокой стоимости, может обладать производительностью,
сравнимой с производительностью суперкомпьютеров. Ведь часто оказывается,
что персональные компьютеры, объединённые в сеть, не всегда загружены работой, так почему бы не превратить их в виртуальный вычислительный комплекс? Необходимое для работы параллельного кластера программное обеспечение – бесплатное, в том числе и операционная система. Еще одним из преимуществ такой, в общем случае гетерогенной (разнородной) вычисли-
тельной системы может быть то, что отдельные части параллельных программ могут выполняться на наиболее подходящих для этого компьютерах.
Для того чтобы построить работоспособный параллельный кластер,
необходимо решить ряд проблем. Прежде всего, следует иметь в виду, что довольно часто в сеть объединяются компьютеры различных фирм-
производителей, имеющие разную архитектуру, работающие под управлением разных операционных систем, имеющих разные файловые системы и т. д. То
75
есть возникает проблема совместимости. Имеется и проблема доступа, так как для входа в любой компьютер может потребоваться разрешение работать на нем.
Может быть и так, что время счета измеряется днями, а то и неделями, а
некоторые из рабочих станций кластера время от времени должны быть загружены своей собственной работой. Следовательно, особенно важным оказывается управление такой вычислительной системой, динамичной и специфической.
Некоторые из перечисленных проблем могут быть решены администра-
тивным образом, для решения других требуется специальное программное обеспечение, реже специальная аппаратура. В качестве примера приведем систему управления гетерогенными кластерами рабочих станций Condor. Эта система позволяет пользователю сохранить полный контроль за своей собственной рабочей станцией и не требует от него наличия прав доступа к другим рабочим станциям. Она также обеспечивает достаточно гибкое управление процессом выполнения программ. Важно еще и то, что эта система бесплатная. Есть и коммерческие системы – Codine, LoadLeveler и некоторые другие.
Кластеры рабочих станций обычно представляют собой набор рабочих станций, связанных локальной сетью Ethernet и обычно работающих под управлением ОС Linux. Первые кластеры появились в 1994 г. При организации определяющей стандарты в вычислительной техники I I I Е Е даже был создан специальный комитет по кластерным системам – TFCC (Task Force on Cluster Computing).
Взаимодействие компьютеров в кластере может быть организовано с помощью сети Ethernet 10 или 100 Мбит/с. Это наиболее экономичное решение,
но не самое эффективное (время отклика около 100 микросекунд). В настоящее время кластеры создаются на основе Gigabit Ethernet (1000 Мбит/с) имеющей пропускную способность на порядок больше. Используются и другие возможности, это сети Myrinet, Giganet cLAN и SCI (время отклика 10 – 20
микросекунд). Наибольшая пропускная способность у сети SCI (до 500 Мбит/с),
76
поэтому данный вариант часто используется в кластерах. Кластерные системы можно отнести к MIMD-системам с распределенной памятью.
2.5. Мультипроцессорные и мультикомпьютерные системы
MIMD-компьютеры с разделяемой памятью иногда называют мульти-
процессорными системами. В некоторых мультипроцессорных системах отсутствует общая разделяемая память, вместо нее у каждого процессорного элемента имеется собственная локальная память, но тем не менее каждый процессорный элемент имеет доступ к локальной памяти любого процессорного элемента. В этом случае говорят о наличии глобального адресного пространства.
Такая организация памяти называется распределенно-разделяемой памятью.
Передача данных между процессорными элементами осуществляется через разделяемую память – один ПЭ может произвести запись в ячейку памяти, а все остальные ПЭ могут это значение использовать. С точки зрения программиста,
коммуникации реализуются посредством разделяемых переменных, т. е.
переменных, доступ к которым имеют все параллельные процессы. Примерами вычислительных мультипроцессорных систем могут служить: Cray X-MP, Cray Y-MP, Cray C90, Cray-3.
MIMD-компьютеры, с распределенным адресным пространством, так, что каждый ПЭ имеет собственную, локальную оперативную память, "невидимую"
другими ПЭ, иногда называются мультикомпьютерами. Взаимодействие между ПЭ реализуется обменом сообщений, которые передаются по коммуникацион-
ной сети. С точки зрения программиста это означает, что для взаимодействия между ПЭ используются не разделяемые переменные, а операции пересылки и приема, а также каналы. Поскольку в данном случае нет конкуренции между процессорами за доступ к оперативной памяти, количество ПЭ не ограничено объемом оперативной памяти. Результирующее быстродействие вычислительной системы определяется скоростью работы сети. Примерами мультикомпьютеров являются – nCube (8192 ПЭ, гиперкуб), Cray T3E, кластеры рабочих станций и др.
77
2.6. Сосредоточенные многопроцессорные системы
Сосредоточенные многопроцессорные системы содержат несколько процессоров в одном компьютере. Каждый процессор имеет доступ к общему набору модулей памяти и работает как процессор общего назначения, который может выполнять любой процесс. Распределение процессов между процессорами осуществляет операционная система, причем алгоритм распределения должен обеспечивать равномерную загрузку процессоров. При этом процессы могут перемещаться на освободившиеся процессоры, что является непростой задачей, решение которой возлагается на операционную систему. Примерами симметричных многопроцессорных систем являются
UltraSPARC, IBM RS/6000.
2.7. Методы представления данных и высокоскоростные операционные
устройства
Развитие микроэлектроники существенно ускорилось за последние 15-20
лет. Ещё на заре вычислительной техники Мур сформулировал эмпирический закон, гласивший, что производительность "обычных" компьютеров удваивается каждые полтора года в зависимости от тактовой частоты. Однако вклад увеличения тактовой частоты в повышение производительности не является решающим. Обратимся к известным историческим фактам и проведем простое сравнение. На одном из советских компьютеров – БЭСМ-6, появившемся в 1966
г. и имевшем время такта 0,1 микросекунды, можно было выполнить среднеарифметическую операцию (смесь арифметических операций по Гибссону) приблизительно за 2,8 микросекунды, т. е. в среднем 350 000
среднеарифметических операций в секунду. Сравним эти данные, например, с
характеристиками одного вычислительного узла современного микропроцессора
ADSP21160 (650 МГц), время такта 1,5 нc, а пиковая производительность на
1200MFLOPS. Так как все операции выполняются за один цикл, то пиковая и среднеарифметическая производительность совпадают. Таким образом,
производительность ЭВМ выросла почти в 1200 106/0,35 106=3,7 104 раз. При
78

этом уменьшение времени такта с 0.1 мкс до 1,5 нc, увеличило скорость
выполнения операций всего лишь приблизительно в 65 раз.
|
БСМ-6 |
|
|
|
ADSP21162 |
||
|
1966 г. |
|
|
|
2004 г. |
||
Тактовая частота |
10 МГц |
65 |
|
650 МГц |
|||
|
|
|
|
|
|||
|
0,125·10 |
6 |
|
|
|
|
|
Производительность |
|
3,7·10 |
4 |
1,2·10 |
9 |
оп/c |
|
оп/с |
|
||||||
|
|
|
|||||
|
|
|
|
|
|
|
Уменьшение времени такта связано развитием микроэлектроники и достигает своего предела. Дальнейшее повышение быстродействия связано с использованием новых решений в архитектуре процессоров, и среди них далеко не последнее место занимает принцип распределения операций по специализи-
рованным блокам и параллельная обработка данных, воплощающих идею одновременного выполнения нескольких действий.
Несмотря на многообразие форм параллелизма в архитектуре компьютеров, и обилие сопутствующих проблем, можно выделить лишь два способа параллельной обработки данных: собственно параллелизм и конвейерность. При этом различают однородные параллельные системы, в
которых каждый процессор системы может выполнять любую операцию из всей системы команд, и неоднородные параллельные системы, в которой каждый процессор ориентирован на свой базовый набор операций. Конвейерность предполагает, что всё множество операций разбито на более мелкие операции
(микрооперации) и содержит большое число ступеней, каждая из которых может настраиваться на любую микрооперацию из заданного множества.
В отличие от универсальных систем проблемно-ориентированные системы решают достаточно узкий класс задач и, следовательно, основная цель проектирования таких систем – это достижение максимальной эффективности.
Критерием здесь выступает отношение производительности к объему обору-
дования (стоимости).
79
Производительность достигается за счет новых технологий производства микросхем и/или структурных решений, а объем оборудования (стоимость)
учитывается, как правило, при проектировании многопроцессорных систем.
Производительность систем за счет новых технологий в целом достигает своего потолка, предела 100 – 10 пикосекунд (10 – 100 ГГц). И дальнейшее повышение производительности, возможно, будет достигаться только за счёт новых структурных решений, желательно без существенного увеличения оборудования.
2.7.1. Классификация систем на основе структурных данных
2.7.1.1. Систематика Шора
Как показывает приведенный обзор существующих и существовавших
систем, каждая из них обладает определёнными только ей присущими признаками, которые не могут быть описаны на уровне потока команд и данных.
Поэтому были предприняты попытки ввести при классификации системные и структурные параметры ЭВМ. Система Флинна и Энглера обладают тем недостатком, что они базируются только на типах управления и потоках данных,
но не учитывают, как построена машина из своих собственных частей. Наиболее простая и достаточно наглядная классификация получилось у Шора.
Классификатор Шора построен на учёте этих особенностей. Одним из параметров выбирается форма представления и передачи данных параллельная или разрядная и соответственно учитывается время передачи полноразрядного
слова за такт ( |
|
) или передача слова за n тактов разряд за разрядом ( |
n |
). В |
|
|
отличие от систематики Флина, базирующейся на управлении и потоках данных,
Шор ввёл большее количество квалификационных параметров, таких, как внутренняя структура вычислителя, форма представления данных:
последовательная (разрядная) или пословная (все разряды данных поступают в вычислитель одновременно) и, как следствие, вид обработки последовательный
– разряд за разрядом или параллельный – обработка данных по словам.
Соответственно все структуры делятся по типам машин. В классификации Шора
80