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

Лекции / Лекция 5

.odt
Скачиваний:
30
Добавлен:
06.07.2016
Размер:
103.82 Кб
Скачать

Технологии и методы программирования. Лекция 5.

Правила проектирования вычислительных систем.

1) Выбор вычислительной схемы должен выполняться так, чтобы диаметр графа был минимален.

2) Tp<=T+T1/p

3) p>=T1/T

4) если p>=T1/T то Tp<=2*T

Докажем теорему: Для любого количества процессоров верхняя граница времени выполнения параллельного алгоритма не превышает суммы минимального времени выполнения и времени выполнения алгоритма одним процессором, делённого на количество процессоров.

Доказательство:

Построим расписание H для бесконечного числа процессоров. Nτ – количество операций, происходящих на итерации τ, 0<=τ<=T, измеряется в условных единицах. Время реализации итерации на бесконечном количестве процессоров — 1, на одном — Nτ следовательно, на p процессорах итерация τ будет обработана за Nτ /p условных единиц времени. Tp=Σ Nτ /p< Σ(Nτ /p+1)=T1+T, что и требовалос доказать.

Правила составления расписаний для p процессоров:

1) Сначала составляется расписание для T:

Выделяются независимые итерации и составляется расписание из расчёта, что все дотупные независимые итерации могут быть сделаны за раз. В результате получается Tитераций и набор значений Nτ — количество операций в итерациях

2) Адаптация для p процессоров:

Следует учесть, что каждая из T итераций на p процессорах будет выполнена за Nτ/p условных единиц времени.

Оценка эффективности параллельного алгоритма.

1) Оценка ускорения, то есть отношения времени работы на одном процессоре к времени работы на p процессорах. Sp(n)=T1(n)/T(n)

2) Оценка эффективности, то если отношения ускорения к числу процессоров: Ep=T1(n)/(p*Tp(n)). Эффективность показывает, какую долю вносит в ускорение каждый процессор.

Возможна сверхлинейность ускорения — то есть возрастание эффективности с количеством процессоров. Она возникает из-за неравенства условий выполнения последовательного и параллельного алгоритмов. Так, для параллельного алгоритма данные могут полностью уместиться в оперативной памяти процессоров, в то время как при последовательном выполнении часть информации придётся хранить во внешней памяти, что увеличит время выполнения. Помимо этого, вычислительная схема параллельного алгоритма может быть сама по себе более эффективна, чем у последовательного.

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

3) Оценка стоимости, то есть произведения количества процессоров на время выполнения. Cp=p*Tp(n). Критерий оптимальности утверждает, что алгоритм эффективен, пока стоимость параллельного алгоритма пропорциональна стоимости алгоритма последовательного.

Пример:

Вычисление частичных сумм.

Схема последовательного алгоритма:

Каждая итерация использует результаты предыдущих, поэтому распараллеливание невозможно.

Каскадная схема:

N/2 процессоров, N+1 операций сложения, log2N времени. Ускорение: Sp(n)=(n-1)/log2(n). Эффективность: Ep(n)=(n-1)/(n/2*log2(n)), стремится к 0 при увеличении количества процессоров. Для получения алгоритма с не стремящейся к 0 эффективностью, необходимо уменьшить число процессоров, причём в зависимости от размера задачи.

Пусть p=n/log2(n). Тогда часть операций в итерациях приходится делать последовательно.

На первом этапе делается log2(n) операций последовательно, на втором — столько же итераций. Таким образом, общее время — 2log2(n), Sp(n)=(n-2)/(2*log2(n)), Ep(n)=(n-1)/2n, что при увеличении количества процессоров стремится к 0,5 — цель достигнута. Вообще, уменьшение числа процессоров в log2n раз — стандартное решение. Стоимость алгоритма — Cp=p*Tp=2n=2*T1 – пропорциональна времени последовательного алгоритма.

Соседние файлы в папке Лекции