<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MATTSTOCKTON.com &#187; Computer science</title>
	<atom:link href="http://www.mattstockton.com/tag/computer-science/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mattstockton.com</link>
	<description>Rants and raves on software, technology, and whatever else I feel like!</description>
	<lastBuildDate>Mon, 28 Jun 2010 01:57:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Applying Amdahl&#8217;s Law to Your Life</title>
		<link>http://www.mattstockton.com/2009/02/05/applying-amdahls-law-to-your-life/</link>
		<comments>http://www.mattstockton.com/2009/02/05/applying-amdahls-law-to-your-life/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 03:56:53 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[your career]]></category>
		<category><![CDATA[Computer science]]></category>
		<category><![CDATA[Improve]]></category>
		<category><![CDATA[Performance improvement]]></category>

		<guid isPermaLink="false">http://www.mattstockton.com/?p=89</guid>
		<description><![CDATA[Ok, I admit it&#8230;this may qualify as the nerdiest / lamest name for a blog post&#8230;ever&#8230;in the history of the blogosphere&#8230;but hear me out on this one, because I&#8217;m going to make a point that might help you focus your energies in work and life to achieve more with the same amount of effort.
I recently [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I admit it&#8230;this may qualify as the nerdiest / lamest name for a blog post&#8230;ever&#8230;in the history of the blogosphere&#8230;but hear me out on this one, because I&#8217;m going to make a point that might help you focus your energies in work and life to achieve more with the same amount of effort.</p>
<p>I recently started the 7th course in my Masters &#8211; Computer Science Program through the <a href="http://cs.uiuc.edu" target="_blank">University of Illnois&#8217; I2CS</a> distance learning program.&nbsp; I didn&#8217;t plan very well, and I&#8217;m down to my final 2 required courses&#8230;of course I save the most dreaded courses for last. I&#8217;m a Software guy, so the prospect of taking Computer System Organization is a bit scary &#8211; and that is what I am taking this semester. I&#8217;m not completely lost yet (but it is only the 3rd week of class, so there&#8217;s still time), and the material actually is quite interesting so far.</p>
<p>In the last class, we learned about <a href="http://en.wikipedia.org/wiki/Amdahl%27s_law" target="_blank">Amdahl&#8217;s Law</a> , which is essentially a formula that allows you to calculate the expected benefit of making a specific performance optimization to a computer system.</p>
<p>As a quick example, lets say you have a system and you want to make it faster. You determine that you can make 50% of the system work 2 times faster. According to Amdahl&#8217;s law, this improvement will improve the overall efficiency of the system by about 33%.&nbsp; The formula for the performance improvement is:</p>
<p>Speedup =&nbsp;&nbsp;&nbsp; 1&nbsp; / [ (1 - p) + (p / s)]</p>
<p>Where p represents the percentage of the process you sped up (50% in our example), and s represents how many times faster you made that percentage of the process (2 in our example).</p>
<p>Amdahl&#8217;s law at it&#8217;s basics is a very simple rule that can give you a good picture of how much you can improve a process &#8211; It can guide you in understanding if improving the process by a certain factor is worth the effort. What is interesting is what happens when you look at cases where you focus on optimizing portions of a process to a very high level &#8211; for example, making 10% of the process work 100 times faster. Let&#8217;s quickly run this calculation:</p>
<p>Speedup = 1 / [(1-0.1) + (0.1/100)] = 10.99% improvement</p>
<p>To go even further, what if we make 10% of the process work 1 million times faster?:</p>
<p>Speedup (with 1 million times faster for 10% of the process) = 1 / [(1-0.1) + (0.1/1000000)] = 11.11% improvement</p>
<p>Really? So we spent all the effort in making it 1 million times faster instead of 100 times faster, and all we got was making the total process <strong>just 0.12% better</strong>? Seems kind of pointless to make all that effort huh?</p>
<p>What if, instead of trying to optimize the heck out of 10% of the process, we tried to slightly optimize 15% of the process. So, we will try to speed up 15% of the process by just 5 times. What does that give us?</p>
<p>Speedup (with 5 times faster for 15% of the process) = 1 / [(1-0.15) + (0.15/5)] = <strong>13.64%</strong></p>
<p>Whoa&#8230;so we were able to get a better overall improvement by focusing on 15% of the process instead of 10% of the process, even though we only improved that 15% of the process by 5 times (compared to 1 million times for 10% of the process).&nbsp; What this is telling me is that in CS, <strong>it is better to focus on improving a larger section of a process by a smaller amount then it is to focus on improving a smaller section of a process by a much much larger amount.</strong></p>
<p>Interesting stuff, but maybe not that interesting unless you&#8217;re trying to optimize some piece of hardware or software, which you probably are not. But I believe that this same idea can potentially help you be more productive / more efficient in your life.</p>
<p>Being a perfectionist is often considered to be a good trait to have in the business world&#8230;but there is a limit. Time is valuable, and if you spend too much time making some specific thing &#8216;too perfect&#8217;&nbsp; (in Amdahl&#8217;s law, optimizing a very small portion of the process to a very high degree), then you lose time that you could potentially spend adding value to something else (in Amdahl&#8217;s law, focusing on another chunk of the overall process). I&#8217;m not arguing here that you should give a half-hearted effort on your tasks&#8230;I&#8217;m just saying that sometimes 90% on task A is good enough, and your time is better spent moving on to task B.</p>
<p>If you&#8217;re anything like me, it is all too easy to fall into the mindset that it must be &#8216;100% perfect&#8217; (or &#8216;completely optimized&#8217;) before you stop working and move on to the next task &#8211; next time you find yourself falling into this trap, remember the simple formula above &#8211; sometimes it&#8217;s best to accept the 90% and move on to the next task &#8230;&nbsp; squeezing the last bit of value out of the almost-perfectly optimized / completed task is a deceiving &#8212; it may not be as valuable as it may seem!</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/13ed18de-5fe8-499c-beae-195e9c32dfc7/"><img class="zemanta-pixie-img" style="border: medium none ; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=13ed18de-5fe8-499c-beae-195e9c32dfc7" alt="Reblog this post [with Zemanta]"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattstockton.com/2009/02/05/applying-amdahls-law-to-your-life/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
