- •Введение в параллельные и распределенные
- •Автор курса и преподаватель
- •Задачи курса
- •Для чего это нужно ?
- •Научные и промышленные задачи, требующие
- •Химия
- •Как решается задача
- •Оценка времени и ресурсов
- •Молекулярная биохимия
- •Как решается задача
- •Микро (нано) электроника
- •Ядерная физика
- •Использование распределенных вычислений
- •Программа курса
- •Лекции
- •Семинарские занятия (15 занятий)
- •Лабораторные работы (6 работ)
- •Практические занятия (6 занятий)
- •Литература
- •Что такое параллельные и распределенные вычисления?
- •Определение параллельных и распределенных вычислений
- •Особенности параллельных вычислений
- •Параллельно – значит
- •Не одновременно – значит не параллельно
- •Примеры параллельного выполнения
- •Двухпроцессорный
- •Асинхронный режим
- •Примеры не параллельного выполнения
- •Операционная система с разделением времени
- •Использование
- •Производительность
- •Пути повышения производительности
- •Новые технологии
- •Увеличение тактовой частоты
- •Параллельные вычисления
- •Уровни параллелизма
- •Параллелизм на уровне машинных инструкций
- •Параллелизм на уровне процедур
- •Параллелизм на уровне объектов
- •Параллелизм на уровне
- •Какой уровень лучше?
- •Сложности, связанные с параллелизмом
- •Параллельные алгоритмы
- •Декомпозиция, связь и синхронизация
- •Декомпозиция
- •Пример декомпозиции
- •Связь
- •Пример связи
- •Синхронизация
- •Использование специальных параллельных алгоритмов
- •Пример - конвейер
- •Состояния конвейера
- •Сложность
- •Специальные параллельные программы
- •Аппаратные средства параллельных вычислений
- •Примеры параллельных систем
- •Законы Гроша (Grosch) и Мура (Moore)
- •Истинный и псевдопараллелизм
- •Параллелизм и конкуренция
- •Выводы относительно параллелизма
- •Распределенные
- •Распределенные
- •Преимущества распределенных систем
- •Использование ресурсов, которые находятся на разных
- •Специализация
- •Децентрализация
- •Обеспечение надежности
- •Сложности
- •Параллельные и распределенные вычисления
- •Система с совместно используемой памятью
- •Система с зеркалированием
- •Выводы
- •Вопросы
Какой уровень лучше?
Для каждой задачи – свой
Для повышения скорости вычислений — повышать уровень
Для уменьшения задержек — понижать уровень
Часто в одной и той же параллельной программе применяется сразу несколько уровней
Например, параллельная программа выполняется на 4-х узлах кластера – уровень приложений, на каждом узле
используется многопоточная обработка – уровень процедур, а каждый поток выполняется на процессоре с конвейерной обработкой – уровень инструкций
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Сложности, связанные с параллелизмом
Необходимость специальных параллельных алгоритмов
Необходимость специальных параллельных программ
Необходимость специальных аппаратных устройств для параллельных вычислений
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Параллельные алгоритмы
Классическое определение: Алгоритм – последовательность операций, которую необходимо выполнить для решения задачи
Параллельный алгоритм – последовательность нужно разбить на одновременно выполняемые последовательности - распараллелить
Очень часто задача распараллеливания чрезвычайно сложна
Иногда применяются свои уникальные «параллельные» подходы
Не все алгоритмы можно эффективно распереллелить
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Декомпозиция, связь и синхронизация
Каждый параллельный алгоритм имеет три составляющие:
Декомпозиция
Связь
Синхронизация
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Декомпозиция
Декомпозиция – разбиение задачи на части, которые выполняются параллельно
Декомпозиция данных – данные, с которыми работает программа разбиваются на меньшие части и с каждой частью выполняются свои операции
Декомпозиция функций – последовательность действий разбивается на участки, которые выполняются параллельно
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Пример декомпозиции
Расчет прогноза погоды для Украины
Территория разбивается на более мелкие области и для каждой области выполняется расчет на своем процессоре, параллельно с остальными
CPU1
CPU10
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Связь
Разные процессоры должны обмениваться между собой информацией
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Пример связи
Расчет прогноза погоды для Украины
Между соседними областями должен выполняться обмен информацией о состоянии погоды на границе областей
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Синхронизация
Обеспечение того, что все параллельно выполняющиеся части в определенные моменты времени находятся в нужном состоянии
Например, задача решена, только когда все параллельно выполняющиеся части завершают свою работу
Чтобы данные, считанные из переменной корректными, нужно гарантировать, что их в эту переменную записали
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р
Использование специальных параллельных алгоритмов
Пример: найти сумму |
S =a1+ a2+ .. .+ aN |
for (i=0; i<N; i++) S+=a[i];
В таком виде задача существенно последовательная
Для распараллеивания воспользуемся ассоциативность сложения
a1+ a2+ . . .+ a N / p |
} |
S 1 |
} |
S =S1+ S 2+ . . .+ S |
|
aN / p+ 1+ aN / p+ 2+ .. .+ a2N/ p |
S 2 |
|
|
||
a( p−1) N / p+ 1+ a( p−1) N / p+ 2+ .. .+ aN |
S p |
|
|
||
|
|
|
|
|
|
ІОЦ КНУ імені Тараса Ше
вченка, 2005 р