S(n)

advertisement
Учебный курс
Архитектура ЭВМ
и язык ассемблера
Лекция 10
заместитель министра связи и массовых
коммуникаций РФ, старший преподаватель
Северов Дмитрий Станиславович
Характеристики параллелизма. Базовые.
• Cтепень параллелизма
– Мгновенная
– Средняя по интервалу времени
• Время выполнения
– Последовательного (один процессор) T(1)
– Распараллеленного ( n процессоров ) T(n)
• Объём вычислений
– На одном процессоре oS
– На нескольких процессорах oP(n)
2
Характеристики параллелизма. Прикладные.
• Ускорение S(n)=T(1)/T (n)
– Собственное (параллельный на 1-м процессоре)
– Линейное
– Суперлинейное
•
•
•
•
Эфективность E(n)=S(n)/n
Избыточность R(n)=o(n)/o(1)
Утилизация U(n)=R(n)E(n)
Качество Q(n)=S(n)T(n)/ R(n)
3
«Законы» Амдала и Густафсона
• Амдал
– Цель: ускорение при постоянной нагрузке
– Предположение: постоянна fA=tS/[tS+tP(1)],
– Вывод: распараллеливание бессмысленно?
S=[tS+tP(1)]/[tS+tP(1)/n]≈1/fA
• Густафсон
– Цель: больше вычислений за то-же время
– Предположение: постоянна fG=tS/[tS+tP(n)]
– Вывод: Смысл есть!
S(n)=fG +(1-fG) n
• А затраты на коммуникацию?
4
Классификация Флинна
• Single instruction stream/ Single Data stream
– Фон-Нейман
– векторно-конвейерные, если «вектор–данное»
• Multiple instruction stream/ Single Data stream
– Пока нет
• Single instruction stream/ Multiple Data stream
– матричные
– векторно-конвейерные, если «данных-вектор»
• Multiple instruction stream/ Multiple Data stream
–
–
–
–
Symmetrical Multi Processing
Non Uniform Memory Access
cache coherent: NUMA
Massively Parallel Processing
5
Системы класса SIMD
• Векторно-конвейрный (со)процессор
– Конвейерное АЛУ
– Векторные регистры и регистры вектора
– Коммутатор и формирователь адресов
• Матричный (со)процессор
– Массив процессорных элементов
• Элемент
• Внешние шины (команд, результатов, ввода/вывода)
• Межсоединения
– Контроллер массива
– Интерфейс ввода-вывода
• VLIW и EPIC
6
Системы класса MIMD
• Единая память
– Физически:SMP(UMА)
– Логически: NUMA
• cc:NUMA
• nc:NUMA
• Раздельная память
– COW: дёшево
• 10 – 100 процессоров
– Кластер: экономно
• 100 – 1000 процессоров
• Специальные сети
• Удобная конструкция
• Соединения
–
–
–
–
Шина
Многопортовая память
Коммутатор
Сети быстрого обмена
• Деревья
• Торы
• Каждый-с-каждым
– Сети хранения (SAN)
– Сети доступа (LAN)
– Сети контроля
– MPP: всего много
• 10К – 100К процессоров
• Несколько сетей
7
(не)согласованность общей памяти
• Строгая согласованность
– Возвращается последняя запись
• Согласованность по последовательности
– Последовательность запросов единая
• Процессорная согласованность
– Записи любого процессора видны любому
процессору в исходном порядке
– Записи в любую ячейку памяти видны любому
процессору в исходном порядке
• Слабая согласованность
– Упорядочены только операции синхронизации
• Свободная согласованность
– Синхронизация захватом и высвобождением
8
«Параллельная» разработка
• Найти параллелизм
• Связать фрагменты
– Местами упорядочить (в последовательность)
• Блокировать/разблокировать
– Организовать обмен
• Отобразить на ресурсы
• Защититься от потерь
• Отладить, отладить, отладить…
9
«Параллельные» инструменты
• Планировщик загрузки
• Расширения «последовательных» языков
– Подсказки компиляторам
– Вызовы обмена и синхронизации
•
•
•
•
•
Parallel Virtual Machine
Open MP
Message Passing interface
GRID Computing
Cloud Computing
• Новые языки:
– x10, Chapel, Fortress, CUDA, OpenCL
• Исполняемык спецификации
10
Что ещё?
• «Ускорители»
– Популярные команды в архитектуру
– Специальные команды в архитектуру
– Специальные процессоры: DSP, CELL
• Потоковые вычисления
– Нет команд
– Схема обработки + схема чтения/записи
• Реконфигурируемые системы
– Программу в логическую схему ПЛИС
– Программу в схему из множества АЛУ/ОУ
– Конструкт программы в специальную команду
11
Download