Карта сайта  RUS  ENG  

Контактная информация:
198504 Санкт-Петербург, Петергоф,
Университетский просп., 35
тел./факс +7 (812) 4284364
E-mail: kef@csa.ru

Поиск по сайту:

 



Яндекс цитирования

Максимальное ускорение (закон Амдаля)

Процессоры используют часть времени на непосредственно вычисления и часть на обмен сообщениями.
Закон Амдаля связывает ускорение с долей операций, выполняемых последовательно.
Обозначим через f ту часть алгоритма, которая не распараллеливается, тогда та часть алгоритма, которую можно распределить по процессорам будет равна (1-f) (затраты на коммутацию не учитываютя).
Пусть ts -время выполнения алгоритма на одном процессоре однопроцессорной системы (последовательная машина), n - число процессоров.
Поясняющий рисунок:
ris_1_29
При переносе расчетов на параллельную машину время расчета распределится следующим образом:

время f   ts займет та часть алгоритма, которую невозможно распараллелить,

время (1-f) ts / n будет затрачено на распараллеливаемую часть алгоритма.

Истинное время tp, затраченное на работу на параллельной машине c n процессорами, будет рассчитываться по формуле:
tp=f ts+(1-f) ts / n.

Определим фактор ускорения расчета S(n), достигаемый на параллельной машине c n процессорами как S(n)=ts / tр.
S(n)=ts / tр= n / (f n+1-f)
или
S(n)=n  / (1+(n-1)f)=n  / (fn+1-f)  ,
где f-доля операций, выполняемых последовательно. Эта формула называется законом Амдаля (Gene Amdahl)об ограничении скорости параллельных вычислений. Она была выведена в 1967 году и говорит о том, что даже если часть последовательных вычислений мала, максимальный фактор ускорения для бесконечного числа процессоров не превосходит 1 / f.
Для существенного увеличения фактора ускорения S(n) необходимо минимизировать долю операций f, выполняемых последовательно: f<<1. Однако, даже в этом случае величина fn может быть достаточно заметной при большом числе используемых процессоров n.
При f<<1 закон Амдаля будет преобразован в виде:
S(n)=n  / (1+f n)  ,

ris_1_30
Из приведенных графиков видно, что при большой доле последовательной части алгоритма f (близкой к 1) увеличение числа процессоров не приводит к существенному ускорению выполнения задачи.
При заданно значении f величина S(n) приближается к своему асимптотическому значанию, приблизительно равному 1 /f , поэтому существует некоторое критическое значение количество процессоров n, после которого наращивание числа процессоров не приводит к увеличению фактора ускорения.

left up right [Назад] [Оглавление] [Вперед]
Последнее обновление 14.11.2001 WebMaster

© 1996 — 2012 Computational Science Alliance. Web-master: kef@csa.ru