Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем
.pdf49 2 Глава 10. Параллелизм как основа высокопроизводительных вычислений
процессоров, где единое управляющее устройство контролирует множество про цессорных элементов. Все процессорные элементы получают от устройства управ ления одинаковую команду и выполняют ее над своими локальными данными. В принципе в этот класс можно включить и векторно-конвейерные ВС, если каж дый элемент вектора рассматривать как отдельный элемент потока данных.
MIMD
MIMD (Multiple Instruction Stream/Multiple Data Stream) - множественный по ток команд и множественный поток данных (рис. 10.5, г). Класс предполагает на личие в вычислительной системе множества устройств обработки команд, объе диненных в единый комплекс и работающих каждое со своим потоком команд и данных. Класс MIMD чрезвычайно широк, поскольку включает в себя всевоз можные мультипроцессорные системы. Кроме того, приобщение к классу MIMD зависит от трактовки. Так, ранее упоминавшиеся векторно-конвейерные ВС мож но вполне отнести и к классу MIMD, если конвейерную обработку рассматривать как выполнение множества команд (операций ступеней конвейера) над множе ственным скалярным потоком.
Схема классификации Флинна вплоть до настоящего времени является наибо лее распространенной при первоначальной оценке той или иной ВС, поскольку позволяет сразу оценить базовый принцип работы системы, чего часто бывает до статочно. Однако у классификации Флинна имеются и очевидные недостатки, например неспособность однозначно отнести некоторые архитектуры к тому или иному классу. Другая слабость - это чрезмерная насыщенность класса MIMD. Все это породило множественные попытки либо модифицировать классификацию Флинна, либо предложить иную систему классификации.
Контрольные вопросы
1. Сравните схемы классификации параллелизма по уровню и гранулярности. Каковы, на ваш взгляд, достоинства, недостатки и области применения этих схем классификации?
2.Для заданной программы и конфигурации параллельной вычислительной сис темы рассчитайте значения метрик параллельных вычислений.
3.Поясните суть закона Амдала, приведите примеры, поясняющие его ограничения.
4.Какую проблему закона Амдала решает закон Густафсона? Как он это делает? Сформулируйте области применения этих двух законов.
5.Укажите достоинства и недостатки схемы классификации Флинна.
Глава 11
Организация памяти вычислительных систем
В вычислительных системах, объединяющих множество параллельно работающих процессоров или машин, задача правильной организации памяти является одной из важнейших. Различие между быстродействием процессора и памяти всегда было камнем преткновения в однопроцессорных ВМ. Многопроцессорность ВС приво дит еще к одной проблеме - проблеме одновременного доступа к памяти со стороны нескольких процессоров.
Взависимости от того, каким образом организована память многопроцессор ных (многомашинных) систем, различают вычислительные системы с общей па мятью (shared memory) и ВС с распределенной памятью (distributed memory). В си стемах с общей памятью (ее часто называют также совместно используемой или разделяемой памятью) память ВС рассматривается как общий ресурс, и каждый из процессоров имеет полный доступ ко всему адресному пространству. Системы
собщей памятью называют сильно связанными (closely coupled systems). Подобное построение вычислительных систем имеет место как в классе SIMD, так и в массе MIMD. Иногда, чтобы подчеркнуть это обстоятельство, вводят специальные под классы, используя для их обозначения аббревиатуры SM-SIMD (Shared Memory SIMD) и SM-MIMD (Shared Memory MIMD). .
Вварианте с распределенной памятью каждому из процессоров придается соб ственная память. Процессоры объединяются в сеть и могут при необходимости обмениваться данными, хранящимися в их памяти, передавая друг другу так назы ваемые сообщения. Такой вид ВС называют слабо связанными (loosely coupled systems). Слабо связанные системы также встречаются как в классе SIMD, так и в классе MIMD, и иной раз, чтобы подчеркнуть данную особенность, вводят под классы DM-SIMD (Distributed Memory SIMD) и DM-MIMD (Distributed Memory MIMD).
Внекоторых случаях вычислительные системы с общей памятью называют
мультипроцессорами, а системы с распределенной памятью — мулътикомпьютерами.
4 9 4 Глава 11. Организация памяти вычислительных систем
Различие между общей и распределенной памятью - это разница в структуре виртуальной памяти, то есть в том, как память выгладит со стороны процессора Физически почти каждая система памяти разделена на автономные компоненты, доступ к которым может производиться независимо. Общую память от распреде ленной отличает то, каким образом подсистема памяти интерпретирует поступив ший от процессора адрес ячейки. Для примера положим, что процессор выполняет команду Load RO , i, означающую "Загрузить регистр R0 содержимым ячейки i ". В слу чае общей памяти i - это глобальный адрес, и для любого процессора указывает на одну и ту же ячейку. В распределенной системе памяти i - это локальный адрес. Если два процессора выполняют команду load RO, i, то каждый из них обращается
к i-й ячейке в своей локальной памяти, то есть к разным ячейкам, и в регистры R0 могут быть загружены неодинаковые значения.
Различие между двумя системами памяти должно учитываться программис том, поскольку оно определяет способ взаимодействия частей распараллеленной программы. В варианте с общей памятью достаточно создать в памяти структуру данных и передавать в параллельно используемые подпрограммы ссылки на эту структуру. В системе с распределенной памятью необходимо в каждой локальной памяти иметь копию совместно используемых данных. Эти копии создаются пу тем вкладывания разделяемых данных в сообщения, посылаемые другим процес сорам.
Память с чередованием адресов
Физически память вычислительной системы состоит из нескольких модулей (бан ков), при этом существенным вопросом является то, как в этом случае распределе но адресное пространство (набор всех адресов, которые может сформировать про цессор). Один из способов распределения виртуальных адресов по модулям памяти состоит в разбиении адресного пространства на последовательные блоки. Если память состоит из п банков, то ячейка с адресом i при поблочном разбиении будет находиться в банке с номером i/п. В системе памяти с чередованием адресов (inter leaved memory) последовательные адреса располагаются в различных банках: ячей ка с адресом i находится в банке с номером i mod п. Пусть, например, память состо ит из четырех банков, по 256 байт в каждом. В схеме, ориентированной на блочную адресацию, первому банку будут выделены виртуальные адреса 0-255, второму - 256-511 и т. д. В схеме с чередованием адресов последовательные ячейки в первом банке будут иметь виртуальные адреса 0, 4, 8, ..„ во втором банке — 1, 5, 9 и т. д. (рис. 11.1, а).
Распределение адресного пространства по модулям дает возможность одновре менной обработки запросов на доступ к памяти, если соответствующие адреса от носятся к разным банкам. Процессор может в одном из циклов затребовать доступ к ячейке i, а в следующем цикле - к ячейке j Если i и j находятся в разных банках, информация будет передана в последовательных циклах.. Здесь под циклом пони мается цикл процессора, в то время как полный цикл памяти занимает несколько циклов процессора. Таким образом, в данном случае процессор не должен ждать, пока будет завершен полный цикл обращения к ячейке i. Рассмотренный прием позволяет повысить пропускную способность: если система памяти состоит из