АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 8: Параллельные вычисления ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв Л.Н., Ассистент Волканов Д.Ю.
2 План лекции Архитектуры параллельных компьютеров Параллелизм на уровне команд Многопоточность Мультипроцессоры Мультикомпьютеры Классификация Флинна
3 Уровни параллелизма В процессоре –Конвейризация –Суперскалярность –Удлинение длины команд Дополнительные специализированные процессоры Многоядерность Многопроцессорность (Сильносвязанный параллелизм) Кластеры (Слабосвязанный параллелизм)
4 Архитектуры параллельных компьютеров (a) На чипе (b) Сопроцессор (c)Мультипроцессор (d) Мультикомпьютер (e) Грид
5 Параллелизм на уровне команд (a) Конвейер (b) Посл-ть VLIW инструкций (c) Поток команд с отмеченными связками
6 TriMedia VLIW команда Типичная команда TriMedia.
7 Функциональные блоки Операции с константами (5) АЛУ целочисленных операций (5) Сдвиги (2) Загрузка и сохранение из памяти (2) Умножение целых и вещественных чисел (2) АЛУ операций с плавающей точкой (2) Сравнение чисел с плавающей точкой (1) Извлечение квадратного корня (1) Ветвления (3) АЛУ ЦОС (2) Умножитель для ЦОС (2)
8 Особенности Арифметика с насыщением Команды 2-28 байт Отсутствует проверка на совместимость операций во время исполнения Прогнозирование операций Специализированные операции
9 Внутрипроцессорная многопоточность (1) (a) – (c) Три потока. Пустые квадраты означают простой в ожидании данных из памяти (d) Мелкомодульная многопоточность (e) Крупномодульная многопоточность
10 Внутрипроцессорная многопоточность (2) Многопоточность в сдвоенном процессоре (a) Мелкомодульная многопоточность (b) Крупномодульная многопоточность (c) Синхронная многопоточность
11 Варианты повышения производительности Повышение тактовой частоты Размещение на одной микросхеме двух процессоров Введение новых функциональных блоков Удлинение конвейера Использование многопоточности
12 Стратегии управления совместным потреблением ресурсов Дублирование ресурсов Жёсткое разделение ресурсов Полное разделение ресурсов Пороговое разделение ресурсов
13 Многопоточность в Pentium 4 Разделение ресурсов между программными потоками в микроархитектуре NetBurst Pentium 4.
14 Гомогенные однокристальные микропроцессоры Однокристальные мультипроцессоры. (a) Два конвейера (b) Два ядра
15 Гетерогенные однокристальные мультипроцессоры
16 Архитектура CoreConnect An example of the IBM CoreConnect architecture.
17 Мультипроцессоры (a) Мультипроцессор с 16 ЦПУ, разделяющих общую память (b) Изображение, разбивается на 16 частей, каждое обрабатывается своим ЦПУ
18 Мультикомпьютеры (1)
19 Мультикомпьютеры (2)
20 Классификация Флинна (1)
21 Классификация Флинна (2) A taxonomy of parallel computers.
22 Мультипроцессоры с использованием единой общей памяти (shared memory)… –Обеспечивается однородный доступ к памяти (uniform memory access or UMA), –Являются основой для построения: векторных параллельных процессоров (parallel vector processor or PVP). Примеры: Cray T90, симметричных мультипроцессоров (symmetric multiprocessor or SMP). Примеры: IBM eServer, Sun StarFire, HP Superdome, SGI Origin. Классификация вычислительных систем
23 Мультипроцессоры с использованием единой общей памяти… Классификация вычислительных систем
24 Мультипроцессоры с использованием единой общей памяти… Проблемы: Доступ с разных процессоров к общим данным и обеспечение, в этой связи, однозначности (когерентности) содержимого разных кэшей (cache coherence problem), Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд Классификация вычислительных систем
25 Мультипроцессоры с использованием единой общей памяти… Проблема: Обеспечение однозначности (когерентности) содержимого разных кэшей (cache coherence problem) Классификация вычислительных систем При изменении данных необходимо проверять наличие "старых" значений в кэш- памяти всех процессоров (обеспечивается на аппаратном уровне, но становится сложным при большом количестве процессоров)
26 Мультипроцессоры с использованием единой общей памяти… Проблема: Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд… Классификация вычислительных систем
27 Пример: Пусть процессоры выполняют последовательность команд над общей переменной N (в скобках указывается значение этой переменной) Вариант исполнения 1 Вариант исполнения 2 Классификация вычислительных систем Временная последовательность команд может быть различной – необходима синхронизация при использовании общих переменных ! N = N + 1 Печать N
28 Мультипроцессоры с использованием единой общей памяти… Проблема: Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд… Рассмотренный пример может рассматриваться как проявление общей проблемы использования разделяемых ресурсов (общих данных, файлов, устройств и т.п.) Классификация вычислительных систем
29 Для организации разделения ресурсов между несколькими потоками команд необходимо иметь возможность: - определения доступности запрашиваемых ресурсов (ресурс свободен и может быть выделен для использования, ресурс уже занят одним из потоков и не может использоваться дополнительно каким-либо другим потоком); - выделения свободного ресурса одному из процессов, запросивших ресурс для использования; - приостановки (блокировки) потоков, выдавших запросы на ресурсы, занятые другими потоками. Классификация вычислительных систем
30 Мультипроцессоры с использованием единой общей памяти Проблема: Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд Доступ к общей переменной в рассмотренном примере в самом общем виде должен быть организован следующим образом: Классификация вычислительных систем N = N + 1 Печать N Полное рассмотрение проблемы синхронизации будет выполнено позднее при изучении вопросов параллельного программирования для вычислительных систем с общей памятью
31 Мультипроцессоры с использованием физически распределенной памяти (distributed shared memory or DSM): –Неоднородный доступ к памяти (non-uniform memory access or NUMA), –Среди систем такого типа выделяют: cache-only memory architecture or COMA (системы KSR-1 и DDM), cache-coherent NUMA or CC-NUMA (системы SGI Origin 2000, Sun HPC 10000, IBM/Sequent NUMA-Q 2000), non-cache coherent NUMA or NCC-NUMA (система Cray T3E). Классификация вычислительных систем
32 Мультипроцессоры с использованием физически распределенной памяти… Классификация вычислительных систем
33 Мультипроцессоры с использованием физически распределенной памяти: –Упрощаются проблемы создания мультипроцессоров (известны примеры систем с несколькими тысячами процессоров) –Возникают проблемы эффективного использования распределенной памяти (время доступа к локальной и удаленной памяти может различаться на несколько порядков). Классификация вычислительных систем
34 Мультикомпьютеры … –Не обеспечивают общий доступ ко всей имеющейся в системах памяти (no-remote memory access or NORMA), –Каждый процессор системы может использовать только свою локальную память Классификация вычислительных систем
35 Для доступа к данным, располагаемых на других процессорах, необходимо явно выполнить операции передачи сообщений (message passing operations), Основные операции передачи данных: Отправить сообщение (send), Получить сообщение (receive) Пример: Мультикомпьютеры Процессор 1 Процессор 2
36 Данный подход используется при построении двух важных типов многопроцессорных вычислительных систем: –массивно-параллельных систем (massively parallel processor or MPP), например: IBM RS/6000 SP2, Intel PARAGON, ASCI Red, транспьютерные системы Parsytec, –кластеров (clusters), например: AC3 Velocity и NCSA NT Supercluster. Мультикомпьютеры
37 Преимущества: –Могут быть образованы на базе уже существующих у потребителей отдельных компьютеров, либо же сконструированы из типовых компьютерных элементов; –Повышение вычислительной мощности отдельных процессоров позволяет строить кластеры из сравнительно небольшого количества отдельных компьютеров (lowly parallel processing), –Для параллельного выполнения в алгоритмах достаточно выделять только крупные независимые части расчетов (coarse granularity). Кластеры
38 Недостатки: –Организация взаимодействия вычислительных узлов кластера при помощи передачи сообщений обычно приводит к значительным временным задержкам –Дополнительные ограничения на тип разрабатываемых параллельных алгоритмов и программ (низкая интенсивность потоков передачи данных) Кластеры
39 Спасибо за внимание!