1. Введение в
1 дисциплину
Основные понятия.
Принципы построения параллельных вычислительных систем. Классификация вычислительных систем.
Типовые схемы коммуникации в многопроцессорных вычислительных системах.
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
2 |
Структура предметной области |
(Параллельные вычисления)
Математические основы параллельных вычислений
Архитектура параллельных вычислительных систем
Технологии параллельного программирования
Параллельные алгоритмы решения задач
Параллельные вычисления в конкретных предметных областях
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
Литература
3
ВИБЦ:
Воеводин В. В. Параллельные вычисления.
Богачев К. Ю. Основы параллельного программирования.
Гергель В. П. Теория и практика параллельных вычислений.
Учебные курсы Интернет Университета Информационных технологий
Гергель В.П. Теория и практика параллельных вычислений. — www.intuit.ru/department/calculate/paralltp/
Основы параллельного программирования с использованием Microsoft Visual Studio 2010. – www.intuit.ru/department/se/baseppvs2010/
Барский А.Б. Параллельное программирование. — www.intuit.ru/department/se/parallprog
Интернет-ресурсы:
www.hpc-education.ru
www.supercomputers.ru
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
4 |
Что такое параллельные |
|
вычисления? |
Параллельные вычисления – процесс обработки данных,
в котором могут одновременно выполняться несколько операций
вычислительной (компьютерной) системы (ВС).
Такие системы называют параллельными вычислительными системами (ПВС).
Способы построения и применения ПВС – технологии
параллельной обработки данных
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
5 |
Параллельные вычислительные |
|
системы |
||
|
Параллельные вычисления – процесс обработки данных, в котором одновременно выполняется более одной операции.
ПВС – вычислительная система, включающая не менее двух одновременно работающих обрабатывающих устройств (процессоров) или ядер одного процессора.
Процессор – CPU (central processing unit), GPU (graphic processing unit).
Ядро (core) – часть процессора, выполняющая один программный поток.
Программный поток (thread) – последовательность команд, выполняющаяся независимо от других последовательностей.
Каждая программа имеет минимум 1 поток.ОС назначает ресурсы каждому потоку.
Поток может создавать другие потоки.
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
6 |
Теоретические и практические |
|
проблемы параллельных вычислений |
Разработка параллельных вычислительных систем (ПВС)
Анализ эффективности параллельных вычислений
Разработка обобщенных параллельных алгоритмов решения задач
Создание СПО для ПВС
Разработка параллельных алгоритмов решения прикладных задач
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
7 |
Показатели производительности |
|
параллельного выполнения |
Ускорение (Speedup) - за счёт параллельного выполнения программы в N потоках:
a(N) = T(1) / T(N)
Эффективность (Efficiency) системы, реализующей N потоков
E(N) = a(N) / N
Масштабируемость (Scalability) системы -
возможность ускорения вычислений пропорционально числу потоков, (т.е. линейное ускорение):
a(N)=N
Суперлинейное ускорение:
a(N)>N
Часто N связывают с числом процессоров или ядер.
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
8 |
Оценки производительности. |
|
Гипотеза Мински. |
Потери производительности при организации параллелизма
Гипотеза Марвина Ли Мински
(Marvin Lee Minsky, искусственный интеллект, нейронные сети)
a=С*log2N, С – коэффициент пропорциональности
Пример: a=10 при N=1000, С=1 (не для любых алгоритмов!)
НО возможно использование параллелизма на 100%
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
9 |
Оценки производительности. |
|
Закон Амдала. |
Максимальный теоретический выигрыш для сочетания параллельных вычислений с последовательными:
Закон Амдала: если p – доля последовательных вычислений, то
a<=1/(p+(1-p)/N)
Это асимптота с верхним пределом 1/p
a= T(1)/T(N)= T(1)/(p*T(1)+(1-p)*T(1)/N)= 1/(p+(1-p)/N
Следствие: увеличение числа ядер менее эффективно, чем распараллеливание
Учет времени обмена данными между потоками(c*N) – есть max:
a<=1/(p+(1-p)/N+c*N)
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
Автор закона (конец 1960 г.г.) –
10 главный разработчик мейнфреймов серии IBM/360 Джин Амдал (Gene Amdahl), основатель
Amdahl — американская корпорация, производитель IBM- совместимых серверов.
Основана в 1968 году, с 1997 года принадлежит Fujitsu.
http://chernykh.net/content/view/455/667/
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
11 |
Закон Амдала |
(графики от riki-koen.livejournal.com/75235.html)
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
12
р=0.1, с=0.001, max=6.25
(чем меньше с, тем быстрее обмен данными)
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1
13 |
Организация параллельных |
|
вычислений – возможные режимы |
Многозадачный режим, или режим разделения времени:
Псевдопараллельность – для выполнения нескольких программ используется один процессор исполняется 1 программа (процесс, задание, задача), прочие – в очереди.
Параллельное выполнение:
Одномоментное выполнение нескольких команд обработки данных из разных потоков или с разными данными на нескольких процессорах (ядрах).
Распределенные вычисления:
Параллельное выполнение на удаленных устройствах
Возможны проблемы с обменом данными
Актуальны для специфических задач.
АЛГОРИТМЫ И ТЕХНОЛОГИИ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ. ЛЕКЦИЯ 1