Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

магПП2013 / lec01

.pdf
Скачиваний:
14
Добавлен:
19.04.2015
Размер:
680.99 Кб
Скачать

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

Соседние файлы в папке магПП2013