title: Working through an example of Amdahl's Law with respect to percentage speedup
body: <p>I am reading through "Computer Architechture: A Quantitative Approach 5th ed" and am trying to grasp Amdahl's law, when it comes to speeding up portions of the system i.e. speed up a certain percentage of the system by a certain percentage . It is easy to understand when you are talking about speeding up a system by a certain factor e.g. a system that is 10 times faster.</p>
  
  <p>To give a concrete example:</p>
  
  <p>You have a system, where a certain sub-system accounts for 70% of the execution time and you wish to develop a speedup which will improve the latency of this sub-system by 50%.</p>
  
  <p>From the book, Amdahl's Law is listed as:</p>
  
  <p>SpeedupOverall = 1/((1-FractionEnhanced)+(FractionEnhanced/SpeedupEnhanced))</p>
  
  <p>I gather from the explanation of the Fractional Enhancement ("The fraction of the computation time in the original computer that can be converted to take advantage of the enhancement"), that: FractionEnhanced = 70% or 0.7.</p>
  
  <p>My question here is how to reflect the speedup. The book lists it as "The improvement gained by the enhanced execution mode, that is, how much faster the task would run if the enhanced mode were used for the entire program". The book says that this would be the time that the original mode over the improvement time; in this case 70/50, or 1.4. However, where my confusion comes in is with this  <a href="http://www.cs.iastate.edu/~prabhu/Tutorial/CACHE/amdahl.html" rel="nofollow">website</a>, where by examining the java applet code, it seems that speedup enhanced would be 1 + the percentage speedup, or 1.5. Maybe I am overthinking this as well, but I am also thinking how it could also be .7/(0.7 - 0.7*0.5), or 2 (since, 70%*50% is the actual latency reduction, in terms of the actual sub-sbstem, right?).</p>
  
  <p>Working the math out, we get the following answers:</p>
  
  <ol>
  <li><p>For SpeedupEnhanced = 70/50 = 1.4: SpeedupOverall = 1/((1-0.7)+ .7/1.4) = 1.25</p></li>
  <li><p>For SpeedupEnhanced = 1+0.5 = 1.5: SpeedupOverall = 1/((1-0.7)+ .7/1.5) = 1.3043</p></li>
  <li><p>For SpeedupEnhanced = 0.7/(0.7-0.7*0.5) = 2: SpeedupOverall = 1/((1-0.7)+.7/2) = 1.54</p></li>
  </ol>
  
  <p>Which one would be the correct speedup here? The second seems to make sense to me, but the book seems to imply that the first is correct. Any help by way of references or explanations as to how to grasp this type of speedup would be greatly appreciated.</p>