0
$\begingroup$

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.

$\endgroup$
1
  • $\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$
    – Alecto
    Commented Apr 24, 2017 at 16:07

1 Answer 1

1
$\begingroup$

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."

$\endgroup$
2
  • $\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$
    – user40759
    Commented Apr 24, 2017 at 6:48
  • 1
    $\begingroup$ Heh. "... after a certain point, more professors won't help ...". That's always been my experience. $\endgroup$ Commented Apr 24, 2017 at 12:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.