Как рассчитать время выполнения (ускорение)

Я застрял, пытаясь рассчитать ускорение. Итак, заданный вопрос был:


Вопрос 1

Если 50 % программы улучшены в 2 раза, а остальные 50 % улучшены в 4 раза, то каково общее ускорение за счет улучшений? Подсказки: Учтите, что время выполнения программы на машине до усовершенствования (без усовершенствования) равно T. Затем найдите общее время выполнения после усовершенствования T'. Ускорение составляет T/T'.


Единственное, что я знаю, это ускорение = время выполнения до улучшения/время выполнения после улучшения. Итак, могу ли я предположить, что ответ:

Ускорение = T/((50/100x1/2) + (50/100x1/4))

Общее время выполнения после улучшения = T + ускорение

(50/100x1/2), потому что 50% было увеличено в 2 раза, и то же самое происходит в 4 раза.


Вопрос 2

Давайте гипотетически представим, что выполнение (2/3)rd программы может выполняться бесконечно быстро за счет какого-либо усовершенствования/улучшения конструкции процессора. Тогда во сколько раз улучшенный процессор будет работать быстрее по сравнению с неулучшенным (исходным) компьютером?

Могу ли я предположить, что это в 150 раз быстрее, так как 100/(2/3) = 150

Есть идеи? Заранее спасибо.


person BlackMamba    schedule 18.01.2016    source источник
comment
Пожалуйста, не портите свои посты.   -  person elixenide    schedule 22.01.2016


Ответы (1)


Начнем с вопроса 1.

Общее время равно сумме времени двух таймов:

T = T1 + T2

Затем T1 увеличивается в два раза. T2 улучшается в 4 раза:

T' = T1' + T2'
   = T1 / 2 + T2 / 4

Мы знаем, что и T1, и T2 составляют 50 % от T. Так:

T' = 0.5 * T / 2 + 0.5 * T / 4
   = 1/4 * T + 1/8 * T
   = 3/8 * T

Ускорение

T / T' = T / (3/8 T) = 8/3

Второй вопрос решается аналогично:

T' = T1' + T2'

T1' уменьшается до 0. T2 — оставшаяся 1/3 от T.

T' = 1/3 T

Ускорение

T / T' = 3

Следовательно, программа работает в три раза быстрее, чем раньше (или в два раза быстрее).

person Nico Schertler    schedule 18.01.2016
comment
Эй, еще один вопрос, как результат этого анализа в соответствии с законом Амдала? Я знаю, что закон Амдала - это ситуация, когда ускорение за счет параллелизма ограничено тем компонентом приложения, который нельзя улучшить. Что мы имеем в виду в этой ситуации? - person BlackMamba; 18.01.2016
comment
Это в основном второй вопрос. Второй компонент (T2) не улучшен (или не может быть улучшен). Если вы можете бесконечно улучшать все остальные компоненты, вы все равно ограничены ускорением в 3 раза. - person Nico Schertler; 18.01.2016
comment
Хорошо, большое спасибо! Я думаю, мне нужно потратить больше времени на это. - person BlackMamba; 18.01.2016