Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 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