
- •Уровни параллелизма
- •К понятию уровня параллелизма тесно примыкает понятие гранулярности.
- •Параллелизм уровня задания
- •Параллелизм уровня команд.
- •Метрики параллельных вычислений.
- •Misd – множественный поток команд и одиночный поток данных
- •Simd – одиночный поток команд и множественный поток данных.
- •Память с чередованием адресов.
- •Модели архитектур распределенной памяти.
- •Мультипроцессорная когерентность кэш – памяти.
- •Программные способы
- •Аппаратные способы решения проблемы некогерентности
- •Совместно используемая кэш – память.
- •Некэшируеые данные.
- •Протоколы на основе справочника
- •Топологии вс.
- •Метрики сетевых соединений.
- •Функции маршрутизации данных
Misd – множественный поток команд и одиночный поток данных
Из определения следует, что в архитектуре ВС присутствует множество процессоров, обрабатывающих один и тот же поток данных. Примером могла бы служить ВС, на процессоры которой подается искаженный сигнал, а каждый процессор обрабатывает этот сигнал с помощью своего алгоритма фильтрации. На сегодня таких ВС нет и данный класс пуст. Но тем не менее такой класс может быть чрезвычайно полезен при разработке новых концепций в построении ВС.
Память
команд
УУ
УУ
УУ
АЛУ
АЛУ
АЛУ
Память данных
Команды
Данные
Рис.
Simd – одиночный поток команд и множественный поток данных.
ВС данной архитектуры позволяют выполнять одну арифметическую операцию сразу над многими данными – элементами вектора. Представителями этого класса считаются матрицы процессоров , где единое управляющее устройство контролирует множество процессорных элементов. Все процессорные элементы получают от устройства управления одинаковую команду и выполняют ее над своими локальными данными. В этот класс включаются векторно – конвейерные ВС
К
Память
команд
Память данных
УУ
АЛУ
АЛУ
АЛУ
оманды
Даные
Данные
Данные
Рис.
MIMD – множественный поток команд и множественный поток данных. Предполагает наличие у вычислительной системе множества устройств обработки команд , объединенных в единый комплекс и работающих каждое со своим потоком команд и данных. Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможные мультипроцессорные системы.
Организация памяти вычислительных систем.
В ВС, которые объединяют в себе множество проц6ессоров или машин, задача правильной организации памяти является одной из важнейших. Различие между быстродействием процессора и памяти всегда было камнем преткновения в однопроцессорных ВМ. Многопроцессорность ВС приводит к еще одной проблеме – проблеме одновременного доступа к памяти со стороны нескольких процессоров.
В зависимости от того, каким образом организована память многопроцессорных систем, различают ВС общей памятью и ВС з распределенной памятью. В системах с общей памятью ( совместно используемой) память В рассматривается как общий ресурс и каждый процессор имеет полный доступ ко всему адресному пространству. Системы с общей памятью называют сильно связанными. Подобное построение имеет место как в классе SIMD, так и в классе MIMD.
В варианте с распределенной памятью каждому из процессоров придается собственная память. Процессоры объединяются в сеть и могут при необходимости обмениваться данными ,хранящимися в их памяти, передавая друг другу так называемые сообщения. Такой вид ВС называют слабо связанными.
В некоторых случаях ВС с общей памятью называют мультипроцессорами, а ВС с распределенной памятью – мультикомьютерами.
Различие между общей и распределенной памятью – это различие в структуре виртуальной памяти, то есть в том, как память выглядит со стороны процессора. Физически почти каждая система памяти разделена на автономные компоненты, доступ к которым может производиться независимо. Общую память от распределенной отличает то, каким образом подсистема памяти интерпретирует поступивший от процессора адрес ячейки. Для примера положим, что процессор выполняет команду load Ro, i. В случае общей памяти адресс i – это глобальный адрес и для каждого процессора указывается одна и та же ячейка. В случае распределенной памяти I – это локальный адрес. Если несколько процессоров выполняют одну и ту же команду, то в их регистры будут загружены разные данные.
Различие между двумя системами памяти должно учитываться программистами, поскольку оно определяет способ взаимодействия частей распределенной программы. В варианте с общей памятью достаточно создать в памяти структуру данных и передавать в параллельно используемые подпрограммы ссылки на эту структуру. В системах с распределенной памятью необходимо в каждой локальной памяти иметь копию совместно используемых данных. Эти копии создаются путем вкладывания разделяемых данных в сообщения, посылаемые другим процессорам.