7

# Тема 7 Мультипроцессорные системы

Цель: Рассмотреть основные типы и принципы архитектур мультипроцессорных систем.

План:

1. Общие сведения.

2. Типы архитектур мультипроцессорных систем.

3. Основные принципы архитектуры многопроцессорных систем.

1. Общие сведения

Большие накладные расходы, связанные с обработкой прерываний, нередко делают целесообразным включение в систему дополнительных процессоров. Есть и другие доводы в пользу создания многопроцессорных вычислительных систем.

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

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

Некоторые задачи, например, построение фотореалистичных изображений методом трассировки лучей, взлом шифров полным перебором пространства ключей [www.distributed.net] или поиск внеземных цивилизаций [www.seti.org] поддаются масштабированию очень хорошо: можно включить в работу десятки и сотни тысяч процессоров, передавая при этом между ними относительно малые объемы данных. В этих случаях часто оказывается Целесообразно даже не устанавливать процессоры в одну машину, а использовать множество отдельных компьютеров, соединенных относительно низкоскоростными каналами передачи данных. Это позволяет задействовать процессоры, подключенные к сети (например, к Интернет) и не занятые в данный момент другой полезной работой.

Другие задачи, например, работа с базами данных, поддаются распараллеливанию в гораздо меньшей степени, однако и в этом случае обработка запросов может быть распределена между несколькими параллельно работающими процессорами. Количество процессоров в серверах СУБД обычно измеряется несколькими штуками, они подключены к обшей шине, совместно используют одну и ту же оперативную память и внешние устройства.

Современные суперкомпьютеры этого типа (IBM „SP6000, Cray Origin) состоят из десятков, сотен, а иногда и тысяч отдельных процессорных модулей (каждый модуль представляет собой относительно самостоятельную вычислительную систему, обычно многопроцессорную, с собственной памятью и, нередко, с собственной дисковой подсистемой), соединенных между собой высокоскоростными каналами. Именно к этому типу относился шахматный суперкомпьютер Deep Blue, выигравший в 1997 году матч у чемпиона мира по шахматам Гарри Каспарова [www.research.ibm.com].

2. Типы архитектур мультипроцессорных систем

На данный момент существует две основные архитектуры параллельных компьютеров: симметричные мультипроцессорные системы с общей памятью (SMP) и мультипроцессорные системы с распределенной памятью (MPP).

Архитектура SMP

Основное преимущество SMP – относитильная простота программирования. Все процессоры имеют быстрый доступ к общей памяти и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизующих трансляторов. SMP-компьютеры – это наиболее распространенные сейчас параллельные вычислители. Общее число процессоров в SMP – системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти. Применение технологии типа UPA, основной на коммутации пакетов вместо общей шины и локальной кэш памяти большого объема поднимает число процессоров до 32.

Архитектура MPP

Альтернатива SMP – архитектура MPP. Каждый процессор имеет доступ лишь к своей локальной памяти, а если программе нужно узнать значение переменной, расположенной в памяти другого процессора, то задействуется механизм передачи сообщений. Процессор, в памяти которого находятся нужные данные, посылает сообщение тому процессору, которому они требуются, а последний принимает его. Этот подход позволяет создавать компьютеры, включающие в себя тысячи процессоров. На нем основаны машины, имеющие производительность в квадриллион операций в секунду.

3. Основные принципы архитектуры многопроцессорных систем

Распределенная память

В действительности, оперативная память имеет конечную, и небольшую по сравнению с циклом центрального процессора, скорость доступа. Даже один современный процессор легко может занять все циклы доступа ОЗУ, а несколько процессоров будут непроизводительно тратить время, ожидая доступа к памяти. Многопортовое ОЗУ могло бы решить эту проблему, но такая память намного дороже обычной, однопортовой, и применяется лишь в особых случаях и в небольших объемах.

Одно из основных решений, позволяющих согласовать скорости ЦПУ и ОЗУ, — это снабжение процессоров высокоскоростными кэшами команд и данных (См. Рисунок 11.1).

Рисунок 11.1 - Некогерентный кэш

Другим узким местом многопроцессорных систем является системная шина. Современные компьютеры общего назначения, как правило, имеют шинную архитектуру, т. е. и процессоры, и ОЗУ, и адаптеры шин внешних устройств (PCI и т. д.) соединены общей магистралью данных, системной шиной или системной магистралью. В каждый момент магистраль может занимать только пара устройств, задатчик и ведомый (См. рис. 2). Обычно, задатчиком служит процессор — как центральный, так и канальный — или контроллер ПДП, а ведомым может быть память или периферийное устройство. При синхронизации содержимого кэшей процессорный модуль также может оказаться в роли ведомого (См. Рисунок 11.2).

Рисунок 11.2 - Шинная архитектура

Архитектура распределенной памяти позволяет оптимизировать доступ к операционной памяти.

Традиционные архитектуры с разделенной памятью удобны для систем с небольшим числом процессоров, однако они плохо масштабируются по мере добавления процессоров и памяти. Когда в системе с разделением памяти увеличивается число процессоров, возрастает конкуренция в использовании ограниченной пропускной способности системной шины, что снижает производительность соединения процессор – память. Кроме того, добавление процессоров в такую систему требует увеличения количества логики для управления памятью, снижая тем самым производительность системы и увеличивая ее цену.

Эти недостатки отсутствуют в системах с распределенной памятью. В такой системе каждый процессор имеет свою собственную локальную память. Потенциальные узкие места, связанные с шиной процессор-память и необходимостью разрабатывать системы управления кэшем, полностью исключается. С добавлением процессоров добавляется память, пропускная способность соединение процессор-память масштабируется вместе с вычислительной мощностью.

Межпроцессорная сеть

Топология межпроцессорных соединений, обеспечивающая масштабирование до большого числа процессоров без снижения производительности коммуникации или увеличения времени ожидания, является обязательной для MPP – систем.

Соединение между процессорами MPP – системы образуют многомерный куб, называемый гиперкубом. По мере добавления процессоров увеличивается размерность гиперкуба. Соединение двух гиперкубов одинаковой размерности образует гиперкуб следующее размерности. N-мерный гиперкуб содержит 2Cn процессоров. Двухмерный гиперкуб – это квадрат. Трехмерный гиперкуб образует обычный куб, а четырехмерный гиперкуб представляет собой куб в кубе (См. Рисунок 11.3).

Рисунок 11.3 - Гиперкубы с 4, 8 и 16-ю вершинами

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

Рисунок 11.4 - Самый длинный путь в гиперкубе

Например, для семейства суперкомпьютеров nCube 2 гиперкуб максимальной размерности 13 содержит 8192 процессора. В системе nCube 3 числа процессоров может достигать 65536 (16-мерный гиперкуб). Эффективность сетевой топологии измеряется, в частности с числом шагов для передачи данных между наиболее удаленными процессорами в системе. Для гиперкуба максимальное расстояние (число шагов) между процессорами совпадает с размерностью куба – например, в наибольшем 13-мерном семейства nCube. Между процессорами в этой системе никогда не проходит более 13 шагов (См. Рисунок 11.4). Для сравнения, в 2-мерной конфигурации “mesh” (петля) с числом процессоров в двое меньше числа процессоров в максимальной системе nCube2, наибольшее расстояние между процессорами составляет 64 шага. Задержки коммуникации в такой системе значительно увеличивается. Таким образом, никакая другая топология соединения процессоров не может сравниться с гиперкубом по эффективности.

Пользователь может удвоить число процессоров в системе, при этом увеличивая длину пути связи между наиболее удаленными процессорами только на один шаг.

Большое число соединений в гиперкубе создает высочайшую пропускную способность межпроцессорных соединений по сравнению с любой другой сетевой схемой. Большое количество путей передачи данных и компактный дизайн гиперкуба позволяет передавать данные с очень высокой скоростью. Кроме того, гиперкубическая схема характеризуется большой гибкостью, так как она позволяет эмулировать другие популярные топологии, включая деревья, кольца.

Высокий уровень интеграции

Многие преимущества MPP–систем, и, прежде всего высочайшие показатели – надежности и производительности, является результатом использования технологии VLSI (Very Large Scale Integration – сверхвысокая степень интеграции). В большой степени, чем какие либо другие факторы, на надежность компьютера влияет число используемых компонентов. Большее число компонентов неминуемо увеличивает вероятность сбоя системы. По этой причине все функции процессорного узла интегрируются на одном VLSI – устройствах. VLSI – интеграция также сокращает требуемое число соединений, которые могут оказывать решающие влияния на целостность всей системы.

Высокий уровень интеграции сокращает пути передачи данных повышая тем самым производительность системы. Интеграция процессорного узла на один чип оставляет свободными для контроля только простые соединения с памятью и сетевые интерфейсы вместо сложных сигналов синхронизации арбитража и управления, эти простые соединения тестируются и корректируются с помощью методов контроля четкости и ECC (Error Correction Code – код коррекции ошибок), упрощая процесс определений и изоляции ошибок.

Литература: 6, стр. 107-113; 1, стр. 304-310.

Контрольные вопросы:

1. Какие доводы можно привести в пользу создания мультипроцессорных систем?

2. Приведите примеры использования мультипрцесорных систем?

3. Какие типы мультипроцессорных систем вы знаете?

4. Расскажите о технологии SMP?

5. Расскажите о технологии MPP?

6. Какие ограничения имеет архитектура SMP?

7. Перечислите принципы мельтипроцесорных систем?