Параллельные вычисления презентация

Содержание

7 лекций 7 лабораторных работ по следующим темам: Автоматическое распараллеливание Использование параллельных библиотек OpenMP PTHREADS OpenCL 26 консультаций в а.369а (каждая пятница 12:00-13:30) Рубежный

Слайд 1Параллельные вычисления Учебный год – 2016, весенний семестр Группы P4110, P4114 Лекция 1
Преподаватели:
Балáкшин Павел

Валерьевич
(pvbalakshin@gmail.com),
Соснѝн Владимир Валерьевич
(vsosnin@gmail.com)

Слайд 27 лекций
7 лабораторных работ по следующим темам:
Автоматическое распараллеливание
Использование параллельных

библиотек
OpenMP
PTHREADS
OpenCL
26 консультаций в а.369а (каждая пятница 12:00-13:30)
Рубежный контроль (тестирование)

Структура курса


Слайд 3Балльно-рейтинговая
система (БАРС)


Слайд 4Орг. вопросы
vk.com/club31201840
Анкета:
ФИО
вуз
тема бакалаврской работы
телефон
работа (где и кем)
был

ли подобный курс

Слайд 5Почему С/С++


Слайд 6Почему С/С++ (продолжение)
https://spectrum.ieee.org/computing/software/the-2017-top-programming-languages


Слайд 7Выбор языка технологии параллельного программирования

По материалам исследования Бернгардта Г.В.


Слайд 8Выбор языка технологии программирования (2)

По материалам исследования Бернгардта Г.В.
Над диаграммами указан

размер репозитория

Слайд 9Определения
Параллельные вычисления –
способ организации вычислений, при котором программа представляет из

себя набор взаимодействующих модулей, работающих одновременно.
≠ конвейерная обработка (суперскалярность)
≠ SIMD-расширения (MMX, SSE)
≠ вытесняющая многозадачность
= многоядерное программирование
= распределённые вычисления
«За время существование вычислительной техники скорость срабатывания элементов возросла в 106 раз, а быстродействие вычислений увеличилось в 109 раз».
«С 1986 до 2002 производительность однопроцессорных систем увеличивалась в 1.5 раза ежегодно. С 2002 – только 1.2 раза.»

Слайд 10Зачем нужны параллельные вычисления
1. Для решение Problems of Grand Challenge (быстродействия

существующих вычислительных систем не хватает > 1 Tflops) :
моделирование климата;
генная инженерия;
проектирование интегральных схем;
анализ загрязнения окружающей среды;
создание лекарственных препаратов

2. В повседневной жизни программиста будущего (одноядерные смартфоны и ПК уже почти не продаются).

Слайд 11Классификация параллельных систем (архитектур)
SMP (Shared Memory Parallelism, Symmetric MultiProcessor system) –

многопроцессорность, многоядерность, GPGPU.
MPP (Massively Parallel Processing) – кластерные системы, GRID (распределенные вычисления)

Слайд 12
Архитектура SMP
+ Высокая скорость межпроцессорного обмена.
– Плохая масштабируемость.
+ Простота и дешевизна

разработки ПО.

По материалам проф. Бухановского


Слайд 13
Архитектура MPP
По материалам проф. Бухановского
+ Хорошая масштабируемость.
– Низкая скорость межпроцессорного обмена.

Высокая стоимость специализированного ПО.

Слайд 14
По книге издательства Intel Press
Формы параллелизма


Слайд 15История развития SMP-систем
Частотность использования процессоров с различным числом ядер при создании

суперкомпьютеров

По данным сайта top500.org


Слайд 16Ограниченность роста производительности непараллельных компьютеров
Снижение стоимости многопроцессорных вычислительных систем
Cray T90: 1.8

GFlops ($2,5 млн.),
8 х IBM SP2: 2.1 GFlops ($0.5 млн.)
Появление парадигмы многоядерного построения процессоров.

Что способствует развитию параллельных вычислений


Слайд 17Гипотеза Минского (Minsky): ускорение, параллельной системы пропорционально двоичному логарифму от числа

процессоров.
Закон Мура (Moore): мощность последовательных процессоров удваивается каждые 18 месяцев.
Закон Гроша (Grosch): производительность компьютера возрастает пропорционально квадрату его стоимости.
Сложность освоения принципов параллельного программирования.


Что замедляет развитие параллельных вычислений (1)


Слайд 18Что замедляет развитие параллельных вычислений (2)
Закон Амдала (в любой программе есть

нераспараллеливаемая часть)

Слайд 19
Последовательное и каскадное суммирование
По материалам проф. Гергеля
Пример распараллеливания алгоритма (1)


Слайд 20Пример распараллеливания алгоритма (2)
Поиск максимального элемента массива

По материалам проф. Гергеля


Слайд 21Пример распараллеливания алгоритма (3)
Параллельная сортировка:
Разбить исходный массив на две части.
Отсортировать

каждую часть независимо за своём процессоре.
Выполнить слияния отсортированных кусков.

Вычислительная сложность на двухъядерной системе
С1*N*N ? С1 *N*N/4 + С2 *N
Возможно почти четырёхкратное ускорение на двухъядерной системе!

Слайд 22
Показатели эффективности параллельных программ
p – количество вычислителей (ядер, процессоров)
V – скорость

выполнения работы (ед. работы в секунду

S(p) = V(p)/V(1) – параллельное ускорение
E(p) = S(p)/p – параллельная эффективность


Слайд 23Закон Амдала
где t(p) – время выполнения программы на p вычислителях, k

– доля распараллеленных команд, w(p) – количество условных единиц работы.





Слайд 24Закон Густавсона-Барсиса
где w(p) – количество условных единиц работы, выполненных программой за

время t.





.


Слайд 25
Модификация закона Амдала (по проф. Бухановскому)
N – количество распараллеливаемых операция, M

– количество нераспараллелива-емых операций, tc – время выполнения одной операции, p – количество вычислителей, Ti – время выполнения программы при использовании i параллельных потоков на i вычислителях, α – масштабирующий коэффициент.

Слайд 26
Сравнение с законом Амдала
Пусть N = 100, M = 20, α

= 0.05

Слайд 27Ключевая проблема параллельного программирования
Балансировка нагрузки!


Слайд 28Наинеприятнейшая проблема параллельного программирования
А есть ли гонки при выполнении операции: 1) инкремента;
2)

присваивания.
Исправить: это когерентность кешей! Добавить про гонки!!

?


Слайд 29Домашнее задание №1
Задачи
Повторение/изучение языка Cи.
Исследование эффективности средств автоматического

распараллеливания.

Окружение
Компиляторы: gcc, icc, solarisstudio
ОС: любая разновидность Linux.

Слайд 30Автоматический (компилятору подаётся ключ вида «распараллель всё сам»).
Полуавтоматический (распараллеливающие флаги компилятора

могут иметь параметры, которые программист должен установить).
Автоматизированный (ручное распараллеливание по подсказкам профилировщика или статического анализатора кода).

Виды автоматического распараллеливания


Слайд 31Возможно ошибочное изменение логики программы.
Возможно понижение скорости вместо повышения.
Отсутствие гибкости ручного

распараллеливания.
Эффективно распараллеливаются только циклы.
Невозможность распараллелить программы со сложным алгоритмом работы.

Слабые стороны автоматического распараллеливания


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика