Закон Амдала

В компьютерной архитектуре закон Амдала (или аргумент Амдала [ 1 ] ) - это формула, которая дает теоретическое ускорение в задержке выполнения задачи при фиксированной рабочей нагрузке , которую можно ожидать от системы, ресурсы которых улучшаются.
Закон может быть заявлен как:
«Общее улучшение производительности, достигнутое путем оптимизации одной части системы, ограничено доли времени, когда на самом деле используется улучшенная часть». [ 2 ]
Он назван в честь компьютерного ученого Джина Амдаля и был представлен в Американской федерации общественных обществ -общества (AFIPS) Весенней совместной компьютерной конференции в 1967 году.
Закон Амдала часто используется в параллельных вычислениях для прогнозирования теоретического ускорения при использовании нескольких процессоров. Например, если программе требуются 20 часов, чтобы завершить использование одного потока, а одночасовая часть программы не может быть параллелизирована, тогда только оставшиеся 19 часов ( p = 0,95 может быть параллелизировано ). Поэтому, независимо от того, сколько потоков посвящено параллельному выполнению этой программы, минимальное время выполнения всегда составляет более 1 часа. Следовательно, теоретическое ускорение, больше всего в 20 раз превышает производительность единого потока, .
Определение
[ редактировать ]Закон Амдала может быть сформулирован следующим образом: [ 3 ]
где
- S задержка - это теоретическое ускорение выполнения всей задачи;
- S - ускорение части задачи, которая выигрывает от улучшенных системных ресурсов;
- P - это доля времени исполнения, в течение которого часть извлекает выгоду из улучшенных ресурсов, первоначально занятых.
Более того,
Показывает, что теоретическое ускорение выполнения всей задачи увеличивается с улучшением ресурсов системы, и что независимо от величины улучшения, теоретическое ускорение всегда ограничено частью задачи, которая не может извлечь выгоду из улучшения Полем
Закон Амдала применим только к случаям, когда размер проблемы фиксируется. На практике, по мере того, как становятся доступными больше вычислительных ресурсов, они, как правило, привыкли к более крупным проблемам (более крупные наборы данных), а время, проведенное в параллелизируемой части, часто растет гораздо быстрее, чем последовательная работа по своей сути. В этом случае закон Густафсона дает менее пессимистичную и более реалистичную оценку параллельных результатов. [ 4 ]
Вывод
[ редактировать ]Задача, выполняемая системой, ресурсы которой улучшены по сравнению с начальной аналогичной системой, можно разделить на две части:
- часть, которая не выигрывает от улучшения ресурсов системы;
- Часть, которая выигрывает от улучшения ресурсов системы.
Примером является компьютерная программа, которая обрабатывает файлы. Часть этой программы может отсканировать каталог диска и создать список файлов внутренне в памяти. После этого другая часть программы передает каждый файл в отдельный поток для обработки. Часть, которая сканирует каталог и создает список файлов, не может быть ускорена на параллельном компьютере, но часть, которая обрабатывает файлы, может.
Время выполнения всей задачи до улучшения ресурсов системы обозначено как Полем Он включает в себя время исполнения той части, которое не выиграло бы от улучшения ресурсов и времени выполнения того, что из них выиграет. Доля времени выполнения задачи, которая выиграет от улучшения ресурсов, обозначается Полем Поэтому тот, кто относится к той части, которая не выиграет от нее Полем Затем:
Именно выполнение части выигрывает от улучшения ресурсов, которые ускоряются фактором После улучшения ресурсов. Следовательно, время исполнения той части, которая не выигрывает от нее, остается прежним, в то время как часть, которая извлекается из нее, становится:
Теоретическое время исполнения всей задачи после улучшения ресурсов тогда:
Закон Амдаля дает теоретическое ускорение при задержке выполнения всей задачи при фиксированной рабочей нагрузке , который дает
Параллельные программы
[ редактировать ]Если 30% времени выполнения может быть предметом ускорения, P будет 0,3; Если улучшение сделает затронутую часть в два раза быстрее, S будет 2. Закон Амдаля утверждает, что общее ускорение применения улучшения будет:
Например, предположим, что нам дается последовательная задача, которая разделена на четыре последовательных частях, проценты времени выполнения, P 1 = 0,11 , P 2 = 0,18 , P 3 = 0,23 и P 4 = 0,48 соответственно. Затем нам говорят, что 1 -я часть не ускоряется, поэтому S 1 = 1 , в то время как 2 -я часть ускоряется 5 раз, поэтому S 2 = 5 , 3 -я часть ускоряется 20 раз, так что S 3 = 20 , и 4 -я часть ускоряется в 1,6 раза, поэтому S 4 = 1,6 . Используя закон Амдала, общее ускорение
Обратите внимание, как ускорение в 5 и 20 раз на 2 -й и 3 -й части соответственно не оказывает большого влияния на общее ускорение, когда 4 -я часть (48% времени выполнения) ускоряется только в 1,6 раза.
Серийные программы
[ редактировать ]
Например, с серийной программой в двух частях A и B, для которых t a = 3 s и t b = 1 s ,
- Если часть B сделана для бега в 5 раз быстрее, то есть S = 5 и P = T B /( T A + T B ) = 0,25 , тогда
- Если часть A сделана для работы в 2 раза быстрее, то есть s = 2 и p = t a /( t a + t b ) = 0,75 , тогда
Следовательно, сделать часть A для бега в 2 раза быстрее, лучше, чем сделать часть B , работать в 5 раз быстрее. Процентное улучшение скорости может быть рассчитано как
- Улучшение части A в 2 раза увеличит общую скорость программы в 1,60, что делает ее на 37,5% быстрее, чем исходное вычисление.
- Тем не менее, улучшение части B в 5 в 5, что, по -видимому, требует большего усилия, достигнет общего коэффициента ускорения только 1,25, что делает его на 20% быстрее.
Оптимизация последовательной части параллельных программ
[ редактировать ]Если непараллелизируемая часть оптимизируется фактором , затем
Из закона Амдала следует, что ускорение из -за параллелизма дается
Когда , у нас есть , это означает, что ускорение Измеряется в отношении времени выполнения после оптимизированной непараллелизуемой части.
Когда ,
Если , и , затем:
Преобразование последовательных частей параллельных программ в параллелизируемые
[ редактировать ]Далее мы рассмотрим случай, когда непараллелизуемая часть уменьшается в результате фактора и параллелизируемая часть соответственно увеличена. Затем
Из закона Амдала следует, что ускорение из -за параллелизма дается
Отношение к закону уменьшения возврата
[ редактировать ]Закон Амдала часто связывается с законом уменьшающейся прибыли , тогда как только особые случаи применения закона Амдаля демонстрирует закон об уменьшении отдачи. Если кто -то оптимально выбирает (с точки зрения достигнутого ускорения) то, что должно быть улучшено, то можно увидеть монотонно уменьшая улучшения по мере улучшения. Если, однако, выбирает не оптимально, после улучшения неоптимального компонента и продолжения улучшения более оптимального компонента, можно увидеть увеличение возврата. Обратите внимание, что часто рационально улучшать систему в порядке, который «не оптимальный» в этом смысле, учитывая, что некоторые улучшения более сложны или требуют большего времени разработки, чем другие.
Закон Амдала действительно представляет закон об уменьшении доходности, если рассматривает вопрос о том, какую возврат получает, добавив больше процессоров в машину, если кто-то запускает вычисление с фиксированным размером, которые будут использовать все доступные процессоры в их емкость. Каждый новый процессор, добавленный в систему, добавит менее полезную мощность, чем предыдущий. Каждый раз, когда кто -то удваивает количество процессоров, коэффициент ускорения будет уменьшаться, поскольку общая пропускная способность направляется к пределу 1/(1 - P ).
Этот анализ пренебрегает другими потенциальными узкими местами, такими как пропускная способность памяти и полоса пропускания ввода/вывода. Если эти ресурсы не масштабируются с количеством процессоров, то простое добавление процессоров обеспечивает еще более низкую доходность.
Смысл закона Амдаля заключается в том, что для ускорения реальных приложений, которые имеют как последовательные, так и параллельные части, неоднородные методы вычислений . требуются [ 5 ] Существуют новые модели ускорения и энергопотребления, основанные на более общем представлении гетерогенности, называемых неоднородностью нормальной формы, которые поддерживают широкий спектр гетерогенных многочисленных архитектур. Эти методы моделирования направлены на прогнозирование эффективности и диапазонов производительности системы и облегчают исследования и разработки на уровнях аппаратного и системного программного обеспечения. [ 6 ] [ 7 ]
Смотрите также
[ редактировать ]- Закон Густафсона
- Универсальный закон вычислительной масштабируемости
- Анализ параллельных алгоритмов
- Метод критического пути
- Закон Мура
Ссылки
[ редактировать ]- ^ Роджерс, Дэвид П. (июнь 1985 г.). «Улучшения в проектировании многопроцессорной системы». ACM Sigarch Computer Architecture News . 13 (3). Нью -Йорк, Нью -Йорк, США: ACM : 225–231 [с. 226]. doi : 10.1145/327070.327215 . ISBN 0-8186-0634-7 Полем ISSN 0163-5964 . S2CID 7083878 .
- ^ Редди, Мартин (2011). API -дизайн для C ++ . Берлингтон, Массачусетс : издатели Морган Кауфманн . п. 210. doi : 10.1016/c2010-0-65832-9 . ISBN 978-0-12-385003-4 Полем LCCN 2010039601 . OCLC 666246330 .
- ^ Брайант, Рэндал Э .; Дэвид, О'Халларон (2016), Компьютерные системы: перспектива программиста (3 изд.), Pearson Education, p. 58, ISBN 978-1-488-67207-1
- ^ МакКул, Майкл; Реиндерс, Джеймс; Робисон, Арч (2013). Структурное параллельное программирование: шаблоны для эффективных вычислений . Elsevier. п. 61. ISBN 978-0-12-415993-8 .
- ^ Хилл, Марк Д.; Марти, Майкл Р. (2008). «Закон Амдала в многокрасную эпоху». Компьютер 41 (7): 33–38. Citeseerx 10.1.1.221.8635 . doi : 10.1109/mc.2008.209 .
- ^ Рафиев, Ашур; Аль-Хаянни, Мухаммед Ан; Ся, Фэй; Шафик, Ришад; Романовский, Александр; Яковлев, Алекс (2018-07-01). «Модели ускорения и масштабирования мощности для гетерогенных много ядерных систем» . IEEE транзакции на многомасштабных вычислительных системах . 4 (3): 436–449. doi : 10.1109/tmscs.2018.2791531 . ISSN 2332-7766 . S2CID 52287374 .
- ^ Аль-Хаянни, Мухаммед А. Ноаман; Ся, Фэй; Рафиев, Ашур; Романовский, Александр; Шафик, Ришад; Яковлев, Алекс (июль 2020 г.). «Закон Амдала в контексте гетерогенных многоъядерных систем-опрос» . IET компьютеры и цифровые методы . 14 (4): 133–148. doi : 10.1049/iet-cdt.2018.5220 . ISSN 1751-8601 . S2CID 214415079 .
Дальнейшее чтение
[ редактировать ]- Амдаль, Джин М. (1967). «Достоверность единого процессора подхода к достижению крупномасштабных вычислительных возможностей» (PDF) . АФИПС ТУЩЕСТВО (30): 483–485. doi : 10.1145/1465482.1465560 . S2CID 195607370 .
Внешние ссылки
[ редактировать ]
- Джин М. Амдаль (1989), Оральное историческое интервью с Джином М. Амдалом , Институт Чарльза Бэббеджа , Университет Миннесоты, HDL : 11299/104341 . Амдал обсуждает свою аспирантуру в Университете Висконсина и его дизайн Wisc . Обсуждает его роль в дизайне нескольких компьютеров для IBM, включая Stretch , IBM 701 и IBM 704 . Он обсуждает свою работу с Натаниэлем Рочестером и управлением IBM процесса проектирования. Упоминает работу с Ramo-Woldridge , Aeronutronic и Computer Sciences Corporation
- «Закон Амдала» Джоэла Ф. Кляйн, Проект Demancation Wolfram (2007)
- Закон Амдала в многокрасную эпоху (июль 2008 г.)