- •Лекция 8. Оценка параллельных алгоритмов
- •8.1. Ярусно-параллельная форма алгоритма
- •8.2. Описание параллельного выполнения алгоритма
- •8.3. Показатели эффективности параллельного алгоритма
- •8.4 Закон Амдаля –формальная модель ускорения кластера
- •8.5 Уточнение закона Амдаля – типичная форма ускорения кластера
8.3. Показатели эффективности параллельного алгоритма
Ускорение,получаемое при использовании параллельного алгоритма для p процессоров, по сравнению с последовательным вариантом выполнения вычислений определяется
,
т.е. как отношение времени решения задач на скалярной ЭВМ к времени выполнения параллельного алгоритма (величина n используется для параметризации вычислительной сложности решаемой задачи и может пониматься, например, как количество входных данных задачи).
Максимальный фактор ускорения Sp(n)=n(линейное ускорение). В общем случаеSp(n)< p, так как параллельный алгоритм обычно не может обеспечить идеальной балансировки нагрузки процессоров.
Отсутствие максимального ускорения обусловлено различными факторами
отсутствие максимального параллелизма в алгоритме и/или несбалансированность нагрузки процессоров
обмены, конфликты памяти и затраты на временя синхронизации
Природа различная – результат один: задержки
Теоретически возможны алгоритмы с суперлинейным ускорением Sp (n)>p. Это возможно, например, в алгоритмах поиска.
Эффективностьиспользования параллельным алгоритмом процессоров при решении задачи определяется соотношением:
![]()
(величина эффективности определяет среднюю долю времени выполнения алгоритма, в течение которой процессоры реально используются для решения задачи).
Как следует из приведенных соотношений, в наилучшем случае Sp(n) = p и Ep(n) = 1.
Для примера пред ставленого на рис.8.2 ускорение и эффективность рас читаны в таблице.
Характеристики параллельности
|
для выражения E: |
для выражения Ep: |
|
T1(n)=n-1=6 |
T1(n)=n-1=6 |
|
Tp(n)=t=5 |
Tp(n)=tp=5 |
|
Sp(n)=1,2 |
Sp(n)=2 |
|
Qp(n)=0.6 |
Qp(n)=0.66 |
Таким образом, выражение Ep имеет лучшие характеристики параллельности, чем выражение E.
8.4 Закон Амдаля –формальная модель ускорения кластера
Выполнение любого параллельного алгоритма включает в себя как последовательную часть так и параллельную.

Рис. 8.4. Иллюстрация закона Амдаля
Обозначим через fту часть алгоритма, которая не распараллеливается, тогда та часть алгоритма, которую можно распределить по процессорам, будет равна(1-f)(затраты на коммутацию не учитываются).
Пусть T1- время выполнения алгоритма на одном процессоре однопроцессорной системы (последовательная машина),p- число процессоров. При переносе расчетов на параллельную машину время расчета распределится следующим образом:
время f T1займет та часть алгоритма, которую невозможно распараллелить,
время (1-f) T1 / pбудет затрачено на распараллеливаемую часть алгоритма.
Истинное время Tp, затраченное на работу на параллельной машине cpпроцессорами, будет рассчитываться по формуле:
Tp=f T1+(1-f) T1 / p.
Определим фактор ускорения расчета Sp(n), достигаемый на параллельной машине cpпроцессорами, какSp=T1 / Tp.
Sp=T1 / Tp=p/(fp+1-f) илиSp = p/(1+(p-1)f)=p/(fp+1-f)
где f- доля операций, выполняемых последовательно.
Эта формула называется законом Амдаля (Gene Amdahl) об ограничении скорости параллельных вычислений. Она была выведена в 1867 году и говорит о том, что даже если часть последовательных вычислений мала, максимальный фактор ускорения для бесконечного числа процессоров не превосходит 1 / f.
Для существенного увеличения фактора
ускорения Spнеобходимо минимизировать долю операцийf,
выполняемых последовательно:f<<1.
Однако даже в этом случае величинаfp
может быть достаточно заметной
при большом числе используемых процессоровp.
Приf<<1закон Амдаля будет преобразован в виде:Sp=p
/ (1+f p)
,
Рис.
8.5. Зависимости ускорения
Из приведенных графиков видно, что при большой доле последовательной части алгоритма f(близкой к1) увеличение числа процессоров не приводит к существенному ускорению выполнения задачи.
При заданном значении fвеличинаSpприближается к своему асимптотическому значению, приблизительно равному1 /f , поэтому существует некоторое критическое значение количества процессоровp, после которого наращивание числа процессоров не приводит к увеличению фактора ускорения.
