- •10.1. Виды параллельной обработки
- •10.1.1. Классификация систем параллельной обработки
- •10.2. Матричная обработка данных
- •Массив процессорных элементов
- •10.3. Архитектура мультипроцессорных систем общего назначения
- •10.4. Коммуникационные сети
- •10.5. Организация памяти в мультипроцессорных системах
- •10.6. Программный параллелизм и общие переменные
- •10.6.1. Доступ к общим переменным
- •10.6.2. Согласованность кэша
- •10.6.3. Блокировка и согласованность кэш-памяти
- •10.7. Мультикомпьютерные системы
- •10.8. Общая память и передача сообщений
- •10.8.1. Система с общей памятью
- •10.8.2. Система с передачей сообщений
- •10.9. Производительность мультипроцессорных систем
- •10.9.1. Закон Амдала
- •10.9.2. Показатели производительности
10.6.3. Блокировка и согласованность кэш-памяти
Следует отметить, что схемы управления блокировкой для доступа к переменным и схемы согласования кэш-памяти независимы и играют одинаково важную роль. Рассмотрим ситуацию, когда согласованность кэша поддерживается посредством сквозной записи и при этом запись общих переменных сопровождается обновлением кэша. Предположим, что содержимое переменной SUM в примере из раздела 10.6.1 считывается в кэши двух процессоров, выполняющих задачи Т1 и Т2. Если команды чтения являются частью последовательности операций обновления переменной и для их взаимоисключения не используется механизм блокировок, описанный в разделе 10.6.1, тогда опять может произойти обсуждавшаяся в указанном разделе ошибка. Если, как и раньше, задача Т1 запишет новое значение ошибки, в переменной SUM окажется неправильное значение 22. В этом случае достигается согласованность кэш-памяти, но для получения правильных результатов все же необходима блокировка.
10.7. Мультикомпьютерные системы
В разделе 10.5 было введено понятие мультикомпьютерных систем. Теперь мы подробно рассмотрим основные особенности таких систем.
мультикомпьютерная система структурирована так, как показано на рис. 10.4. Каждый процессорный узел в этой системе представляет собой самодостаточный компьютер, взаимодействующий с другими процессорными узлами при помощи передаваемых по сети сообщений. Системы подобного типа часто называют системами с передачей сообщений, в противоположность системам с общей памятью, рассматривавшимся в первой части данной главы.
В мультикомпьютерных системах требования к коммуникационной сети менее строги, чем в мультипроцессорных системах с общей памятью. Сеть системы с общей памятью должна обладать достаточно высоким быстродействием, иметь широкую полосу пропускания, поскольку процессорные модули часто обращаются к удаленным модулям памяти, из которых состоит общая память. Медленная сеть заметно снизит производительность такой системы.
Сообщения в мультикомпьютерной системе передаются гораздо реже, поэтому в ней нет такого интенсивного трафика. Значит, для связи процессорных узлов может использоваться более простая и дешевая сеть. Появление терминов сильносвязанная система и слабосвязанная система, используемых соответственно по отношению к системам с общей памятью и системам с передачей сообщений, обусловлено именно разницей в интенсивности взаимодействия узлов сети.
В мультикомпьютерных системах может использоваться любая из сетей, описанных в разделе 10.4. Так как трафик в сети относительно невелик, ее физическая реализация обычно получается недорогой. Узлы сети часто соединяются линиями с последовательной передачей битов, управляемыми интерфейсами ввода-вывода. Интерфейсная схема компьютера-источника считывает из памяти сообщение посредством механизма прямого доступа к памяти, преобразует его в последовательный формат и передает по сети компьютеру-приемнику. Адреса источника и места назначения включаются в заголовок сообщения для использования в процессе маршрутизации. Сообщение достигает компьютера-приемника и записывается в буфер памяти при помощи его интерфейса ввода-вывода.
В 1980-х годах были очень популярны сети гиперкубической топологии. Сети подобного типа использовались в нескольких мультипроцессорных системах с передачей сообщений, и в них применялась последовательная передача битов. Примерами таких систем являются IPSC компании Intel, NCUBE/ten компании NCUBE и СМ-2 компании Thinking Machines. Позднее, в начале 1990-х годов, для систем с передачей сообщений, равно как для систем с общей памятью, стали использоваться другие топологии. Например, в системе СМ-2 производства Thinking Machines применялась сеть с передачей сообщений топологии толстого дерева, ширина соединений в которой равнялась 4. В системе Paragon компании Intel использовалась ячеистая сеть с шириной соединений 16. Для более эффективной передачи сообщений в каждый узел сети помещалось специальное коммуникационное устройство. Например, в системе Paragon использовался процессор сообщений, освобождавший процессор приложений от участия в передаче данных.