Закон Амдала
Зако́н Амдала (иногда также Закон Амдаля-Уэра) иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей.
Математическое выражение
Предположим, что необходимо решить некоторую вычислительную задачу. Предположим, что её алгоритм таков, что доля <math>\alpha</math> от общего объёма вычислений может быть получена только последовательными расчётами, а, соответственно, доля <math>1 - \alpha</math> может быть распараллелена идеально (то есть время вычисления будет обратно пропорционально числу задействованных узлов <math>p</math>). Тогда ускорение, которое может быть получено на вычислительной системе из <math>p</math> процессоров, по сравнению с однопроцессорным решением не будет превышать величины
<math>S_p = \cfrac{1}{\alpha + \cfrac{1 - \alpha}{p}}</math>
Иллюстрация
Таблица показывает, во сколько раз быстрее выполнится программа с долей последовательных вычислений <math>\alpha</math> при использовании <math>p</math> процессоров.
<math>\alpha</math>\ <math>p</math> | 10 | 100 | 1000 |
---|---|---|---|
0 | 10 | 100 | 1000 |
10% | 5.263 | 9.174 | 9.910 |
25% | 3.077 | 3.883 | 3.988 |
40% | 2.174 | 2.463 | 2.496 |
Из таблицы видно, что только алгоритм, вовсе не содержащий последовательных вычислений (<math>\alpha = 0</math>), позволяет получить линейный прирост производительности с ростом количества вычислителей в системе. Если доля последовательных вычислений в алгоритме равна 25 %, то увеличение числа процессоров до 10 дает ускорение в 3,077 раза (эффективность 30,77 %), а увеличение числа процессоров до 1000 даст ускорение в 3,988 раза (эффективность 0,4 %).
Отсюда же очевидно, что при доле последовательных вычислений <math>\alpha</math> общий прирост производительности не может превысить <math>1 / \alpha</math>. Так, если половина кода — последовательная, то общий прирост никогда не превысит двух.
Идейное значение
Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи с <math>\alpha \ne 0</math>. Не для всякой задачи имеет смысл наращивание числа процессоров в вычислительной системе.
Более того, если учесть время, необходимое для передачи данных между узлами вычислительной системы, то зависимость времени вычислений от числа узлов будет иметь максимум. Это накладывает ограничение на масштабируемость вычислительной системы, то есть означает, что с определенного момента добавление новых узлов в систему будет увеличивать время расчёта задачи.
См. также
Ссылки
Статья в журнале «Компьютерра»
ca:Llei d'Amdahl de:Amdahlsches Gesetz en:Amdahl's law es:Ley de Amdahl fr:Loi d'Amdahl he:חוק אמדל hr:Amdahlov zakon id:Hukum Amdahl it:Legge di Amdahl ja:アムダールの法則 ko:암달의 법칙 pl:Prawo Amdahla pt:Lei de Amdahl tr:Amdahl yasası vi:Luật Amdahl zh:阿姆达尔定律
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....