0

In simple terms, a program has 15% running on a sequential portion and 85% is its parallel portion.

How could I figure out the maximum speedup with an infinite amount of processors?

And also, how could I figure out, let's say, how many processors are needed to speed up the program to 80% of its maximum speed?

Using Amdahl's laws. I've tried looking around the internet, google, etc. Haven't found anything that could help me out with this simple problem!

X1XX
  • 141
  • 2
  • 13

2 Answers2

2

If you have an infinite number of processors 85% of the job is done infinitely fast, i.e. in amortized negligible time. So the speedup is 1/(15%) i.e. 1/0.15

Basile Starynkevitch
  • 223,805
  • 18
  • 296
  • 547
2

Logically, if you assume infinite processors will speed up the 85% infinitely, that is the run time for that portion is going to be near zero, what you are left with is the 15%. Thus the maximum speedup is ~6.6 times.

How many cpus to speed up to 80% of maximum? Assuming that means you want execution time of 15%/80%=18.75%. Since 15% is needed for the sequential part, the 3.75% must be covering the 85% parallelized. Thus you need 85/3.75 ~23 cpus.

Jester
  • 56,577
  • 4
  • 81
  • 125