My processor noted that an infinite number of processors will allow me to test how much speedup I can achieve.

I am not exactly sure how this applies.

For instance, let's say I have a program that takes $1000$ seconds to execute and is broken into 4 phases(A, B, C, D). If two of the phases are $50%$ parallelizable and the other $2$ are not parallelizable at all, how can I apply the concept that I have infinite available processors to figure out how much maximum speed up I can achieve?

I attached numbers to my example, but a generic one would be just as helpful.

If I am to strictly just apply Amdahl's law, I'd say the answer is just $1/(1-0.5) = 2$ times faster.

  • $\begingroup$ When you say that it's "50 parallelizable", do you mean that two of the phases can be sped up 50 times due to parallelization? $\endgroup$ Apr 24 '17 at 16:07

Don't think of it as "you've been given infinity processors." Think of it as "you can have as many processors as you want, but of course after a certain point more professors won't help, so find out how fast you can make it run with the optimum number of processors."

  • $\begingroup$ I have added my attempt at the answer. Am I on the right track? I do understand what you're saying about the optimum # of procs, because at a certain point the serialization for the processes overpowers the gain from parallelization. $\endgroup$
    – Jonathan
    Apr 24 '17 at 6:48
  • $\begingroup$ Heh. "... after a certain point, more professors won't help ...". That's always been my experience. $\endgroup$ Apr 24 '17 at 12:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.