3

В компьютерной архитектуре закон Амдала дает теоретическое ускорение в латентности выполнения задачи при фиксированной рабочей нагрузке, что можно ожидать от системы, ресурсы которой улучшены.Насколько точным является закон Амдаля?

Slatency является теоретическим ускорением в латентности выполнения всей задачи;

s - это ускорение в латентности выполнения части задачи, которая выигрывает от улучшения ресурсов системы;

p - это процент времени выполнения всей задачи относительно части, которая улучшает ресурсы системы до улучшения.

Slatency = 1/[(1-p) + (p/s)]

Это все теоретические и заставил меня думать, когда это неприменимо. И насколько это точно для оценки производительности процессора?

ответ

3

Часто, когда вы хотите настроить какую-либо часть программы, вы делаете микрообъект для проверки только этого в изоляции.

Это не всегда отражает то, как оно будет себя вести при запуске как части полной программы. (т. е. с другой работой между исполнением той части, которую вы настраиваете, а не в замкнутом контуре.)

например. если вы нашли sin(x) расчеты были дорогими и заменили их поисковой таблицей, которая могла бы выиграть в microbenchmark, потому что достаточно маленький стол остается горячим в кеше при вызове спина к спине без другой совместной работы. Аналогичным образом, микробенчмарки измеряют производительность с использованием начального прогнозирования с ветвлением и без давления в кеш-кеше (что может сделать просмотр цикла более качественным, чем есть).

Но это просто означает, что ваша оценка s является неправильной для функции как части всей программы, а не того, что закон Амдаля является неточным. Это всего лишь случай неправильного использования.


Однако это приведет к реальному ответу на ваш вопрос:

Форсирование одну часть программы таким образом, что приводит к большему объему кэша или TLB промахивается, ошибочность прогнозирования ветвления и т.д. в другие части программы нарушают закон Амдаля.

+0

Спасибо, помощник. Не было известно, что оценка 's' настолько сложна. Но это имеет смысл. –

+2

Закон Amdalh является простой математической связью, и в этом смысле он непогрешим - но основная модель производительности, которую он предполагает (или это обычно предполагается в приложениях для учебников), слишком проста: программа может быть разделена равномерно на две части: одна часть затронута некоторым «улучшением ресурсов» (что в равной степени может быть сокращением ресурсов) и другой частью, на которую не влияет. В чрезвычайно сложной системе, такой как современный хост, обычно нет такого чистого разделения: изменения в одной части имеют произвольные удары по другим частям, как объясняет Питер. – BeeOnRope

 Смежные вопросы

  • Нет связанных вопросов^_^