2012-04-28 2 views
2

Я перешел на предыдущий экзамен на курс моей компьютерной архитектуры, и у меня появился неправильный ответ, как я могу рассчитать наилучшее возможное ускорение? Я понимаю, что theres ограничение относительно того, сколько программы можно ускорить, просто не уверен в форуме (он проблема - часть b). Любая помощь будет поддержана и очень благодарна спасибо!расчет наилучшего ускорения

  1. (6 баллов) Для ускорения приложения, предложены два усовершенствования со следующими ускорениями:
    Форсировочной = 25
    Форсировочных = 15

    Усиление- для использования 40% инструкций и улучшения 2 можно использовать для 30% инструкций. Два улучшения не перекрываются.

    a) Что такое ускорение, если применяются оба расширения?

    b) Если вы продолжаете совершенствовать эти два усовершенствования, какое лучшее ускорение вы можете достичь?

+0

Что означает Ускорение 25? –

+0

Скотт, я не думаю, что это важно (я бы предположил, что 25x, а не 25%, но я согласен, что это неясно), потому что часть (b) - это то, с чем ищет jfisk. –

+0

Я думаю, что это можно вычислить по закону Амдаля (http://en.wikipedia.org/wiki/Amdahl%27s_law). –

ответ

0

Вместо того чтобы пытаться запомнить формулу, использовать здравый смысл. Представьте себе, что обе части ускоряющегося кода могут ускоряться бесконечно: то есть, чтобы не занимать времени вообще. Что останется? Сколько времени потребуется?

+0

Нет, в этом заявлении говорится, что вы продолжаете продвигать эти улучшения, и к закону [amdahl] (http://en.wikipedia.org/wiki/Amdahl%27s_law), скорость ограничена. – amit

+0

Я надеялся подтолкнуть jfisk к открытию закона Амдаля для него. Я не уверен, почему вы говорите «нет» - возможно, вы думали, что я говорю «если вы ускорите эти части кода бесконечно, ничего не останется»? Это не было моим намерением. –

+0

Тогда я вас неправильно понял и возвращаю комментарий. отредактируйте ответ, чтобы я мог удалить -1. – amit

0

t Пусть будет общий пробег иней, то:

(а) Так как вы не требуете для этого раздела, я даю полное решение, для будущих читателей.
t' = modified run time = 0.4t/25 + 0.3t/15 + 0.3t = 0.336t,
Таким образом, speedup = t/t' = t/0.336t ~= 2.97

(б) вопрос задает держать опережения ЭТИХ окон скорости, так что вы не можете улучшить всю программу. Тогда лучшая скорость вы можете получить, согласно amdahl's law ограничена последовательной, неуправляемой частью. Закон Амдаля гласит, что максимальная скорость будет 1/SEQUENTIAL_PART Какова последовательность в вашем случае? Убедитесь, что вы понимаете, почему.

Идея закона Амдаля заключается в том, что вы можете ускорить улучшенную часть до бесконечной скорости, общая скорость будет по-прежнему ограничена не улучшенной частью.

+0

Обычно считается плохим стилем, чтобы дать полные явные ответы на проблемы домашних заданий учащихся. Лучше всего предоставить достаточную помощь, чтобы они могли найти решения для себя. –

+0

@GarethMcCaughan: Я принимаю комментарий и отредактировал ответ, чтобы быть более информативным и менее кормящим. – amit

+0

Да, это лучше. –