Von Neumann's curse
Imagine a very, very large corn field. Think about a field the size of
Texas or perhaps a factor of ten bigger than that. Now consider how you
would harvest the ripe corn in that field.
Plan A: Get a single harvesting machine and start methodically chewing
through the corn, strip by strip.
Plan B: Get many, many harvesting machines and get them methodically
chewing through strips of corn in parallel with each other.
Plan A, I think you will agree, demonstrates about as much higher order
intelligence as a single ear of corn in that field. Plan B is obviously
the way to go. Why? Because from a harvesting point of view, one strip
of corn in one part of Texas, is utterly unrelated to any another. Thus
the harvesting can happen in parallel. Blindingly obvious right?
Parallelizing the work has other benefits apart from throughput. We can
use cheap and cheerful machines to do the work rather than a very
expensive uber-machine. Who cares if the individual cheap machines break
down? We just replace the ones that fail and forge on. The chances of
corn production stopping completely because of hardware failure are
basically infinitesimally small. What are the chances of hundreds,
perhaps thousands of independent machines all failing at the same time?
Effectively zero.
In IT terminology, the harvesting system exhibits high availability,
fault tolerance and a linear scaling relationship between throughput and
processing power. Nice.
Now lets switch from corn to, say, customers in our reveries. Imagine a
very large set of customers. We need to look at what they have bought
from us in the last month and generate invoices, one for each customer.
Plan A: Get a single invoice processing "machine". Start at one corner
of the customer list and work methodically through to the end.
Plan B: Get many, many invoice processing machines and get them
methodically chewing through strips of customers in parallel.
From a common sense perspective, Plan B is just as compelling as it is
in the corn harvesting example. However, by and large, enterprise
computing does not work that way. We go for Plan A most of the time.
Bigger, faster, more expensive individual machines to do processing of
tasks that could be done faster and cheaper with multiple machines
processing in parallel.
In fact, Plan B is even more compelling in computing than it is in
harvesting corn. The unit cost of processing machines continues to fall
through the floor. So much so that a large Web search engine provider -
who makes extensive use of parallelism - does not even replace
individual processing machines when they break down. Why? Because the
cost of dispatching an engineer to replace it is higher than the cost of
just tacking a new one on the end of the processing rack. This is a
pretty radical shift in the economics of computing.
What an embarrassment of computing power riches surrounds us!
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
Esther Schindler
If the comments are ugly, the code is ugly
claird
SVG a graphics format for 21st century
pasmith
Take Chrome OS for a test spin
Sandra Henry-Stocker
Solaris Tip: Have Your Files Changed Since Installation?
jfruh
Android fragments vs. the iPhone monolith
mikelgan
What Gizmodo missed about the Pro WX Wireless USB disk drive
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.













