магПП2013 / lec01
.pdf1
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