Apr 5 2009

The Hidden Cost of Customization

If you’re like me, you probably have a bunch of addons for Firefox. I have between 5 and 20, depending on whether I’m running the latest beta (3.1 beta 3), or the stable version.

The problem with this, as I have just experienced, is that you not only increase the chance of failure, but you also increase the cost of repair. Let me explain.

Something happened to my Firefox installation, and anything typed in the location bar would grind Firefox to a halt, then eventually crash it. I tried re-installing it, but the problem remained. I then upgraded to Firefox 3.1 beta, without any further success. Since Firefox has such a large install base, I assumed someone else would have the same problem, and eventually there would be a fix. The plan was to use Safari (4 beta) until then.

However 3.0.9 came out and when I installed it, Firefox didn’t work any better. I resolved myself to do some sleuthing, and eventually figured the problem out, and solved it. The issue was caused by a mix of Google Gears, Adblock, PasswordMaker, and some others.

What’s to learn from this?

Customization is costly. Maintenance costs and instability are exponential to level of customization: if each component has a 1% chance to break per month, and you have 20 components, then you have an 18% chance of failure per month (1 – .99^20). Bear that in mind when you customize anything.

You also lose in security: the more you customize your software, the more lengthy and intricate it becomes to upgrade to the next version. This means that you run software that is always a few patches behind, and you become an easy target for hackers. The vulnerabilities of the version you use are public and easy to exploit.

Rising Probability of Similar Error

Furthermore, the more you customize, the more you reduce the userbase of similar installations. If you use default Firefox on default Ubuntu, then whatever error you encounter, millions of others will as well, and you can count on a patch to soon follow. If you use a highly modified version of Firefox on Ark Linux, you’ll have to do the detective work and patching yourself.

A corollary to this is that it makes an excellent argument for buying Dell when considering using Linux. You’ll have much less problems as the userbase is much larger. If you use a Fujitsu LifeBook 7010, with a tiny userbase, you’ll have many driver issues.

Analogy to Firefox addons

Coming back to my Firefox addon example, I could have waited years until this problem was found and solved. I would have to wait until someone else using Firefox AND Gears AND Adblock AND PasswordMaker AND Mac OS X find the error, come up with a fix, and share with all. This means that you just can’t wait bugs out if you aren’t in the mainstream. Whereas you can if you use plain vanilla Firefox on Ubuntu.

EDIT: Apparently, this is Oracle’s approach. Paraphrasing them, they advise to “stick with us; we will do it all, and make sure everything works together, and do not customize as you can not then take advantage of our innovations“. This goes in the same direction as what I argue in this post. Customization is costlier than it appears.


Feb 12 2008

The Red Queen Race is over and we can coast for the duration.

It is very popular among economists to bring up the Red Queen in Lewis Carroll’s Through the Looking Glass. Notably when assessing the challenge of China and India, to the old world economies of Europe and the United States.

In case you have forgotten. Alice and the Red Queen

The Red Queen is Regent of a “Fast” country.

In the book the queen is somewhat puzzled by Alice’s “Slow sort of country“.

The Red Queen tell Alice “Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!” .

Based on this the Call to arms we hear from economists usually goes something like this:

The western world needs to pull up its collective socks, fix its educational system, think long term and reallocate its resources into less frivolous, less instant gratification endeavors. We must stop dilly-dallying and act like a grown up if we want to preserve our privileged position in the world.

This is not true, we are in great shape.

As a society we have climbed the hill and we can now pretty much coast for the duration.

Few economists and fewer politicians have realized it, but we have entered a new economic phase. Now the current structure of the economy combined with Moore’s law is giving the economy such a tail wind that a substantial yearly growth in the standard of living is not only secure but accelerating almost regardless of what we do, bar nuclear doomsday.

Let me explain. Economists notably Monetarists likes to talk about Units and Price. The economy is made up of a lot of different Units that are transacted at different prices and the GDP is the sum total of all those. Inflation is the delta weighted average of all those prices and real growth is the weighted increase in all those units. Simple as that.

The different units are affected by Moore’s law to a varying degree. Units like Computers, Cell phones and MP3 players follow a Moore’s law almost directly whereas barley, pumpkin and electricity production is affected to a significant lesser degree.

The key point however is that everything is affected to some degree and this portion is growing each year.

Bio Tech is currently exceeding Moore’s law as the capabilities afforded by compute power transformed the industry and a huge catch up is underway. This translates directly into health care units and we will see the effects over the coming decade. We are talking about big chunks of the economy.

Entertainment is being transformed as CGI replaces physical models and actors. Not only in animated movies like Toy Story but all films are affected to a varying degree as A Night at the Museum will attest too. The design content of a car or a dish washer is going up and the cost of the parts is falling relatively. Everything is being transformed.

The key is the content of Moore’s law in the units of the economy and the mix of those units in their totality.

This is where the western world excels. We have transformed our economy towards the elements highly driven by technology acceleration. We spend less than 5% on food and groceries compared to 70% for the developing world.

This transformation is what allows us to coast and help the rest of the world with little impact on ourselves whereas the less fortunate geographical areas has a long haul in front of them.

Assume a conservative 20% extraction of our economy follows Moore’s law 100% and that this portion of the economy continues to grow at its historic rate of 10% annually. The 10% is what we have seen in the pure areas like Computer’s and Communications so it is probably a good if somewhat conservative assumption.

Combine this with the normal 3.0% general price inflation we have seen over the last decade and the result is truly astounding. Based on Moore’s law alone our economy will grow at an annual clip of 2.5% in constant dollars, we will experience a raw 8.7% deflation measured in prices of unchanged units and unit mix and a whopping 15.6% increase in unit based standard of living. Every year regular as a clockwork.   I repeat, this is not a prediction for the overall economic development of the western world this is the impact from Moore’s law alone.

Rather than fret over our lack of “seriousness” we should watch more movie preferably download them from home, buy iPods in bulk, substitute teachers for technology, replace psychiatrists with medication. In general  do everything we can to tilt the economy toward the amazingly free ride afforded us.

All this from shrinking transistors on a die.

Pat Haggerty co-founder of Texas Instruments said back in the 70′s that Semiconductor would replace oil as the “fuel” of the 21′st century.  Astounding prescience.


Jan 20 2007

A Strategy for microprocessor procurement

AMD Opteron x2This article argues that it’s preferable to measure a microprocessors performance in relative terms. Relative to the highest industry performer at any given point because the requirement for increased computing power is predominately driven by external factors. Moore’s law in its broader sense can then be restated as follows: Any specific speed grade processor decays at constant rate relative to the industry, and the half-life of any fixed computing solution is about 18 month.

This re-framing makes it possible to calculate a processors average relative performance over time and to optimize the upgrade decisions relative to that metric. The optimization process is further constrained by selected values for minimum acceptable performance.

The article concludes that based on current processor price performance ratio an annual upgrade cycle with a processor selected from the lower end of the industry offering is vastly superior to the more traditional procurement heuristics.

You think you are in the market for a new PC or an upgrade of some sort. What is the best methodology for selecting a microprocessor speed grade? Buy at the sweet-spot? That’s the advise you will hear most often, but what exactly does that mean or might there be a better way?

The sweet-spot normally means the speed grade where the marginal cost per megahertz from the previous lower grade is “only” 2-3 times the average cost/ Mhz rather than the 8-10 factor you often see at the top. However that seems a little vague and it is of no help whatsoever in determining when to buy nor to determine how often you should upgrade.

The requirement for a increased computing power is almost 100% driven by external factors. It is the usual suspect of next generation operating systems and applications taking advantage of hardware advances to add functionality, that in turn requires better hardware to run effectively.

It’s a positive cycle but it means that whatever configuration you have today, will, over time, become less and less capable of functioning effectively for the intended purpose you acquired it for. This holds true regardless of what the machine is being used for. It applies to everyone, Office workers , CAD engineers and Gamers alike.

Fueling this dynamics is Moore’s law. A consequence of which is that microprocessor complexity doubles every 18′th month. Since clock speed is easily understood by the layman, x86 processor design trade-offs has for years been skewed toward speed as a reliable indicator of performance and we will treat them as synonymous in this article.

Moore’s law in its broader sense now dictates that the speed of the “Top of the line” processor from either Intel or AMD will double every 18′th month. This coupled with the observation that processor speed requirement is externally driven means that the “functional performance” of the current speed king has a half-life of 18 month. The functional performance of any specific speed grade will decay 50% over 18 month, 37% every year, 11% every quarter or 3.9% every month.

As of April 8, 2002 the Intel 2.4Ghz P4 is the highest Industry performer so its Functional Performance would be 100% at this point in time. Were I to buy a 2.4Ghz P4 next quarter its Functional Performance would be 89% as it would have decayed 11% by then.

A 1.8Ghz P4 currently has a Functional Performance of 75% measured against the top offering and again at this point in time, April 2002. The current line-up of Intel processors is presented in Fig 1.

The price of the processor is the amount of cash you have to present at the time of purchase. That is not equal to your expense per time unit. If you buy a processor for $380 and use it for 2 years your negative cash flow the first year is $380, but your expense that year is only $190. The following year the cash flow impact is zero but the expense is still $190This distinction is crucial, as we will try and optimize the performance / expense ratio of our purchase. In this article we will use the term expense to mean the annual linear amortized amount of the purchase price over it’s intended lifespan.

The current prices for the Intel P4′s (Fig. 2) is taken from PriceWatch. The shown price matrix is used for this write-up and even though its a snapshot the price performance ratios are almost constant over time.

Now lets look at different levels of annual expenses and how the lifespan of the various CPU speed grades varies as a result. If we only want to spend $100 per year on processors we obviously need to use the one we buy longer than if we are willing to spend $150/ yr. Equally obvious is it that the more expensive CPU we buy the longer we need to keep it at any given expenditure level. The resulting combination of alternative annual expenditures with the afore mentioned P4 prices can be found in Table 1.

Table 1



Forget the reddish color coding for now. If you only want to spend $200 per year on processors and think it a swift idea to buy the 2.2Ghz model you will have to use that particular one for $498 / $200 = 29.9 month or a little less than 2.5 years before you can afford another one. If you decide to buy the less powerful but cheaper 1.9Ghz model you only need to wait for 12.1 month or little over a year before you can upgrade, etc. .

Now a year has passed or 12.1 month to be precise and you are in the market to buy another processor what do you buy? The #4 slot on the Intel performance chart still cost $202 or thereabouts, but what performance are you getting?

As mentioned earlier Moore’s law translate into 3.85% growth per month, so the performance at the #4 performance point has increased by a factor of (i*t) where i equals 3.85% and t is 12.1, by then. This works out to 1.9 * 1.59 ≈ 3.0 Ghz.

By the twelfth month having chosen to buy the cheaper #4 in the speed-grade hierarchy we can now buy a replacement that brings us back to a functional performance of almost 80% and is 600Mhz faster than the SpeedKing of yore.

Chart 1.


Chart 1 shows the relative performance of the two processor we picked based on an annual expense of $200. At the 12 month mark we can afford to upgrade the original slower #4 1900 processor and again at 24 month.

This results in an average functional performance of the #4 processor of 62.7% with minimum performance never falling below 50%.

Compare this to the initial faster #2 speed-bin 2200Mhz part. Its initial higher price combined with the annual expense constraints of $200 prevents any upgrade. It keeps its relative decay all through the 30 month period, and reaches a miserable 29% at its nadir. Note we are not even the talking about the most expensive top model.

We have now looked at two different speed-bins for a given expense constraint of $200 and seen how the functional performance varies over time for those two examples. Now let’s look at the whole spectrum.

For any given processor / expenditure combination there is only a few data points of interest. The first is the initial functional performance as mentioned in Fig. 1. note that the initial performance is independent of the expense level selected. The second is the lifetime of the processor that we covered in table 1.

The third is the halfway point in the functional performance decay. This metric is not quite the average performance but rather the mean. It tells you how your system will perform halfway through its lifespan. The decay is not linear, the implication being you will suffer a little less system decay during the second half of your processors life. but not enough to make any real difference.

Table 2. shows the various combinations of expense levels and processor possible. You will recognize the $200 / model 1900 combination resulting in an average performance of 62.7% from our example above.

Compare that to the inferior $200 / model 2200 example we used. We can now see that this specific combination results in an average performance of only 51.6% despite its higher starting point.

The optimal processor selection based on that parameter alone, for any given expense level is highlighted in green.

Table 2.



You probably realized that the average functional performance metric is insufficient as the sole measure when we mentioned that the the second and inferior selection at the $200 expense level resulted in a 29% performance at its nadir. We need worst case as well.

In Table 3 you will find the worst case performance points of the same combination as the average numbers above. Notice that the optimal combinations marked in green has shifted pretty much one column to the right. You will notice that the top of the line 2400 processor that was on par with the 2000 model at the $400 level using the average as metric now is clearly inferior. Falling almost 10 percentage points below the #3 speed-bin selection at it’s trough.

Table 3.



The reddish area indicate an arbitrary cut-off level of 33%. This has been selected to more clearly give an impression of the diagonal band nature of the optimal selections. Note that if you are only prepared to spend $50 per year on processors there is no way to avoid the 33% cap. Please go back now to Table 1 and look at the reddish area. The top left area indicate where one would have to use the same system processor for more that 3 years. This is again arbitrarily chosen but there is good reason at the system level not to go beyond that time frame.

The spread of the functional performance is telling as well. Since the data is given from the tables above I have for the sake of brevity omitted it. Suffice it to say that the lower the better and the shorter the replacement cycle is, the smaller the spread. This obviously favors the cheaper processors regardless of expense level. If you are interested in looking at it explicitly it can be found in appendix A.

Selection.

Now we have all the information to make a rational buying decision. In Chart 2. the data has been redrawn to give an continuous performance function of the available choices relative to expenses.

Optimal resource allocation over a wide variety of multifaceted investment choices is a rather large subject so I will for the sake of brevity assume that you have arrived at an annual expense figure by some means. Whether they were handed down by the capital committee or some other form of divine intervention.

In Chart 2 the optimal choice is found at the left hand arc formed by the Model 1800 and Model 2000. The choice is quite simple if you are willing to spend more than $250 per year buy the 2000 if not go for the 1800. This is the easy part. Remember this is only an optimal solution if you stick with an upgrade plan commensurate with the selected expense level. You absolutely need to upgrade often. If you selected the $200 mark and bought the model 1800, Thou Shall Upgrade in 9 month.

Chart 2.



Its interesting to note that what to buy is very insensitive to level of expenditure, however when to buy or rather when to upgrade is what makes the real difference.

From Table 1. you can see that the length of the life cycle for the best choices hovers around 12 month except when the expenses is $50. I have omitted the so called economy models in this analysis as not to get into a IPC effectiveness discussion. However at the lower expenses region you will be better of switching to a Celeron or AMD Duron.

A $50 1.2 Mhz Duron will not do much better on the average performance scale but it will significantly reduce the minimum performance level by more than 10% points to 32% and the life cycle is now precisely 12 month. A much better solution.

If you delay or skip an upgrade cycle you fall in the minimum performance trap that defeats the purpose of trying to apply some intelligence to the procurement process. How bad can it get? Look at the Model 2400 on Chart 3. and you have a pretty good indication.

Chart 3.



So unless you are insanely rich (in which case you would have bought a Mac) you should always pick the low end and upgrade often. Making the case for why that is and getting the conclusion across is the whole point of this article so it bears repeating. You should always pick the low end and upgrade often.

The traditional Weberesque, Puritan, Seal-of-Good-Housekeeping virtue of buy the best and it will server you well for many many years needs to go out the window™.

Recently there has been quite a lot of debate around the notion that the boom and bust cycles are bad for the IT industry, and by implication ultimately for the consumer. Citing that capacity overshots needs to be paid for somehow. This is undoubtedly true, however the debate misses an important point on the impact on the consumer. Any disruption in the upgrade cycles is bad for the consumer, Period.

It seems a little strange that not only should you stay away from the highest performing processor but you should pick something as lowly as number 5 on the list. In the business world things surely must be different!

Is there a rational business case that can be articulated for selecting the top of the line x86 processor? Most likely not as an example will show.

Design engineers and their managers often claim they need “the very best” as their time is so valuable as to easily justify the delta cost of the CPU (and any other high performance system component for that matter). This is nonsense.

Its like arguing that we need to be very productive on Monday and maybe Tuesday but who cares what we all do at the back end ie. Friday, its close to the weekend anyway. No, this is not the way to go about it. The argument about the value of the engineers time is certainly valid, but it needs to translate into a behavior of upgrade often , not spring for the “best” at any given point.

What about situations where you pay outrageous licensing fees based on per processor pricing schemes like Oracle. Maybe, but if it causes even at a slight delay in the upgrade frequency you are hampering overall performance. Second this is a somewhat artificial situation, like a tax or duty scheme that twists the economy into a suboptimal equilibrium resulting in reduced overall Wealth. The proper way to respond is to write to your local elected officials in this case Larry Ellison ;-) . Interestingly enough he might be receptive, not so much out of empathy with your plight, but rather because Oracle is unwittingly (?) subsidizing Intel.

The amount is far from trivial and the economic interplay of “rule based” pricing mechanisms is poorly understood, unfortunately this is outside the scope of this article, so I will stop right here3.

In summary with finite resources available any additional spending incurred now for delta performance will inevitable delay the upgrade cycle thereby reducing the overall performance over time.

What is the implication for the semiconductor industry of this procurement strategy if implemented across the board? It is not at all negative. It will most likely precipitate a flatter price / performance curve but it will not harm the industry, as they are in the business of maximizing the absolute dollar amount per wafer.

Does this methodology apply to all system components? Yes, with some modifications. Components that are not used in its entirety from day one, like a disk drive, needs to be procured using a different model.

Does this methodology apply to the software side of systems cost? Most likely not. Existing software does not follow a log scale functional improvement trajectory but seems to follow a diminishing return path interspersed with periodic advent of whole new classes of functionality.

What simple rule of thumb can we conjure up that capturers the Upgrade Often optimization strategy. Here is my suggestion:

Upgrade every year and only spend as much on the processor that you do not feel guilty doing it next year as well.


Jan 14 2007

Algorithm for Storage replacement optimization

A friend asked me what size disk drive to buy. Is there an optimal size?
Hitachi </p>  <p>Drive
It turns out the answer is yes and the optimal size is e = 2.72. The base of the natural logarithm times the size of the drive you have now. Isn’t this marvelous?

Here is why.

Unless you have very special needs you don’t need to worry about RPM, cache size and the like when you buy a disk drive. The reason is that, at any given time, the performance of the disk drives available in the market is within a very narrow band.

This is because at the less performant end you can not substitute slowness for sufficient cost savings. It has been tried a few times but with little success. At the high performance end the component cost rises dramatically* and the cost of drives accordingly. This leaves high performance drives to a small special requirement niches. The trend toward RAID and JBOD for even big storage farms like Google and Amazon result in the disk market being very homogeneous performance wise.

This leaves the size of your new disk as the only real decision parameter. Furthermore Cost per GB is almost constant over the range of the sizes. If you think otherwise look at Pricewatch.com and check yourselves.

So what is a good replacement strategy?
Continue reading