2015-06-24 5 views
-1

Для программы, которая является 70% -ной параллелизуемой, что будет ускорением относительно однопроцессора от его запуска на многопроцессорном 4,8 и 16-way, предполагающем идеальную балансировку нагрузки.Архитектура компьютера/сборка, закон Amdahl

Так что я с трудом решая эту проблему, я знаю, что уравнение:

Улучшено время выполнения = зависит выполнение времени/(коэффициент улучшения + влияет время выполнения)

Но я не уверен, что мне следует подключать, и почему я должен или как должен переписать уравнение для решения проблемы.

Спасибо!

ответ

2

Может быть, картина помогает:

  +----------------+----------+----------+----------+----------+ 
1 core: |  non-par. |    parallelizable    | 
      |  (1 - Q) |      Q     | 
      +----------------+----------+----------+----------+----------+ 
          | 
        ||  | 
          | 
      +----------------+----------+ --+ 
n cores: |    |   |  | 
      +----------------+----------+  | 
          |   |  | 
          +----------+  +-- n times 
          |   |  | 
          +----------+  | 
          |   |  | 
          +----------+ --+ 


time:  |- (1 - Q) * T -|------------------ Q * T ------------------| 
      |    | Q*T/n | Q*T/n | Q*T/n | Q*T/n | 

Таким образом, если в очередной раз является T и фракция Q параллелизуемо, то общее время, которое требуется, когда распараллеливание к п ядер (1 − Q) * Т + Q * Т/п.

(Wikipedia article использует Q = 1 − B).

Интересные случаи Q = 0, когда нет скорости вверх на всех и алгоритм требует времени T на любое количество ядер, и Q = 1, когда алгоритм совершенно параллельно и принимает время T/nn сердечники.