8

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

Уровни и формы параллелизма

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

При анализе параллелизма, реализуемого на ЭВМ, выделяют несколько уровней:

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

  2. Алгоритмический (программный) уровень, на котором учитывается параллелизм независимых по командам или по данным частей алгоритма.

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

  4. Арифметический (разрядный) уровень, на котором обеспечивается параллельное выполнение элементарных логических операций над двоичными разрядами.

Архитектуры на базе одиночных и множественных потоков команд и данных

Анализ форм параллелизма на 2-4 уровнях выполняется с использованием терминологии М. Флинна, которую он применил для классификации структур ЭВМ. М. Флинн ввел понятия потока команд и потока данных, определяя их как последовательность элементов (команд или данных), выполняемую или обрабатываемую процессором. Упомянутые два независимых двузначных понятия дают в комбинации четыре класса архитектур:

  1. ОКОД – одиночный поток команд и одиночный поток данных.

  2. ОКМД – одиночный поток команд и множественный поток данных.

3. МКОД – множественный поток команд и одиночный поток данных.

4. МКМД – множественный поток команд и множественный поток данных.

Основные достоинства этого подхода - это простота и симметрия. Например, архитектуры класса обычных ЭВМ представляются как ОКОД, матричных – как ОКМД, а многопроцессорных – как МКМД. На его основе можно представлять также архитектуры конкретных ЭВМ, указывая соответствующее число потоков их команд и данных. Например, представители трех перечисленных выше классов ОКОД, ОКМД, МКМД – обычные ЭВМ семейств IBM и EC, ЭВМ ILLAC IV, MBK Эльбрус-1 и 2. В полной комплектации они имеют описания в виде (1,1), (1,64) и (10,10) соответственно (здесь обычно указывается общее число потоков данных в системе, а не число потоков данных на каждый поток команд). Классификация по потокам данных и команд может быть использована для качественной оценки форм параллелизма, если рассматривать потоки команд и потоки данных как потоки, связывающие устройства памяти с процессорами.

В то же время этот подход порождает неоднозначность классификации нескольких типов широко распространенных архитектур в основном из-за неопределенности относительно потоков данных. С одной стороны, образованные классы столь широки, что в них попадают машины с принципиально различной структурной организацией. Так, в класс ОКМД попадают векторные и матричные, ассоциативные и ортогональные вычислительные системы. С другой стороны, иногда возникают затруднения с отнесением ЭВМ к тому или иному классу, как, например, в векторно-конвейерных структурах. Векторно-конвейерные однопроцессорные архитектуры могут быть отнесены к классу ОКОД, классу ОКМД, а так же классу МКМД. Поток векторных данных чаще всего характеризуют как множественный, но его можно рассматривать и как одиночный. Неопределенность возникает и для однопроцессорных скалярных ЭВМ со взаимно параллельными функциональными устройствами и конвейерами типа CDC 6600 и 7600, IBM 360/91. Поскольку в наиболее узком месте архитектуры для данных – при их выборке из памяти – имеется один поток, такие ЭВМ можно отнести к классу ОКОД. Но тогда как одиночный следовало бы характеризовать и поток данных в векторных однопроцессорных ЭВМ с функциональными конвейерными устройствами. Если же учитывать параллельность обработки данных устройствами и конвейерами, то рассматриваемые ЭВМ следовало бы отнести к классу ОКМД. Если к тому же учесть и то, что при параллельной работе каждое устройство и каждый конвейер выполняют по одной из команд вместе с другими устройствами и конвейерами, выполняющими свои текущие команды, то рассматриваемые ЭВМ следовало бы отнести к классу МКМД.

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

  • матричные с одноразрядными процессорными элементами (SO-LOMON I, ICL DAP, Goodyear MPP, CLIP, Thinking Connechtion Machine) и с многоразрядными процессорными элементами (SO-LOMON II, ILLAC IV, Burroughs BSP, ПС-2000);

  • ассоциативные(Goodyear STARAN и ASPRO);

  • ортогональные (OMEN 60);

  • ансамбль (PEPE), а также обычно и принципиально отличающиеся от них по архитектуре однопроцессорные векторно-конвейерные ЭВМ:

- с одним или несколькими взаимно параллельными функциональными конвейерами(TI ASC, CDC STAR 100, CDC Cyber 205);

- с конвейерами такого же типа, но способными еще и к зацеплению(Cray-1, Cray X-MP/1, BKM), а также дополнительно и к параллельной обработке вектора(Fujitsu VP, Hitachi S-810, NEC SX-1 и 2, EC 1191).

Таким образом, в данном классе не различаются даже ЭВМ на базе матриц процессорных элементов и векторных конвейеров.

В класс МКМД входят любые системы с двумя и более центральными процессорами:

  • двух- и многопроцессорные конфигурации обычных ЭВМ типа машин общего назначения семейств IBM и EC;

  • двухпроцессорные конфигурации (CDC 6700 и CDC 7700) скалярных ЭВМ с функциональными устройствами и конвейерами (CDC 6600 и CDC 7600 соответственно);

  • системы с относительно небольшим числом разнообразных по архитектуре мощных скалярных процессоров (MKB Эльбрус-2 и 3б ЭВМ Denelcor HEP) и векторно-конвейерных процессоров (Cray X-MP и Y-MP, Crat-2 и 3, ETA-10, NEC SX-3);

  • системы с несколькими управляющими (скалярными) процессорами и векторно-параллельными процессорами (ПС-3000);

  • системы с большим числом микропроцессоров (Meiko Computing, Surface, BBN, Butterfly, NGube/10, FPS T-Series, Ametek System 14 и Series 2010, Intel iPSC).

Если несколько ЭВМ с матрицами процессорных элементов в каждой объединить в систему, то она также будет представителем класса МКМД.

Имеет место и неопределенность класса МКОД. В этот класс можно было бы включить:

  • конвейер из процессоров или ЭВМ с распределением по ним конвейерно исполняемых участков программы, а также истинный мультипроцессор IMP и систему с гибким внутренним разделением общих ресурсов с их выходом на реализацию в виде многопроцессорной скалярной суперЭВМ Denelcor HEP (с другой стороны этот конвейер относится к классу МКМД, так как содержит несколько процессоров или ЭВМ, да и в каждом ЦП HEP реализован параллелизм на уровне процессов, и одновременно можно создать до 50 пользовательских процессов-потоков команд);

  • ЭВМ EC 1065, мультипроцессор которой ЕС 2665 содержит два процессора команд с общим для них набором из четырех функциональных устройств;

  • можно полагать, что ЦП ЭВМ типа МКОД содержит арифметический конвейер с соответствующими ступенями, но все же имеется один поток команд, в рамках которого ступени исполняют как бы свои подкоманды.

Обычно класс МКОД полагается пустым.

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

Для систем с малым и большим числом мощных и менее мощных процессоров данную классификацию можно сделать более подробной следующим образом. Сохраняя прежними два понятия – потоки команд и данных, положим их трехзначными: один (О), мало (М), и много (М) потоков. Два независимых трехзначных понятия дают в комбинации девять классов архитектур: ОКОД, ОКМД, ОКМД, МКОД, МКМД, МКМД, МКОД, МКМД и МКМД. Здесь прежний класс ОКОД сохранен, прежние классы, ОКМД и МКОД разбиты каждый на два, а прежний МКМД на четыре класса. Это позволяет разделять параллельные системы с общим управлением типа матричных, ассоциативных, ортогональных, ансамбля и однопроцессорные векторно-конвейерные ЭВМ по классам ОКМД и ОКМД соответственно. Класс МКМД можно рассматривать для систем с малым числом процессоров типа ОКМД, таких как проектный вариант ILLIAC IV с четырьмя квадрантами по 64 процессорных элементов в каждом, ПС-3000 или же как концептуальный многомашинный вариант ЭВМ М-10.

Девять классов и их характерные представители приведены в таблице:

Потоки команд

(К)

Потоки данных (Д)

Один (О)

Мало (М)

Много (М)

Один

(О)

ОКОД:

-обычные ЭВМ;

-ЭВМ с сокращенным набором команд;

-скалярные ЭВМ с функциональными устройствами и конвейерами.

ОКМД:

-однопроцессорные векторно-конвейерные ЭВМ

ОКМД:

-параллельные системы с общим управлением:

-матричные с одноразрядными и многоразрядными ПЭ;

-ассоциативные;

-ортогональные;

-ансамбль.

Мало

(М)

МКОД.

МКМД:

-системы с малым числом процессоров типа ОКОД или ОКМД;

-обычные мультипроцессоры;

-системы с мощными скалярными процессорами и векторно-конвейерными процессорами.

МКМД:

-системы с малым числом процессоров типа ОКМД.

Много

(М)

МКОД.

МКМД.

МКМД:

-системы с большим числом процессоров.

Схематическое представление различных классов структур

а

ПмК

ПмД

П

ПмД

ПмД

ПмД

ПЭ

ПЭ

ПЭ

ПмК

УУ

) б)

ПмК

П

П

П

ПмК

ПЭ

в

ПмК

ПмК

ПмК

) г)

П

П

П

ПмК

ПЭ

д)

ПмД

ПЭ

УУ

ПЭ

е)

ПмД

П

П

П

ПмД

ПмД

П

П

ПмК

ж

ПмК

ПмК

ПмК

П

П

П

) з) и)

ПмД

ПмК

ПмД

ПмД

ПмД

ПмД

П

П

П

ПмД

ПмК

П

П

ПмК

П

а) - класс ОКОД: включает классические последовательные машины с неймановской архитектурой.

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

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

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

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

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

Более определенной формой представления параллелизма является ярусно-параллельная форма (ЯПФ). Алгоритм вычислений представляется в виде ярусов, причем в нулевой ярус входят операторы (ветви), не зависящие друг от друга, в первый ярус операторы, зависящие только от нулевого яруса, во второй от первого и т.д. Представление параллелизма в виде большого набора количественных характеристик ЯПФ сильно затрудняет задачу изучения связи между классами задач и классами параллельных ЭВМ.