Tuesday, June 1, 2010

Parts and Wholes

Technique Tuesday

Part of the fun of an optical illusion is the way that it jumps in your perception from one thing to another. Similarly, being able to see things (particularly the situations in which you find yourself) in more than one way is an important skill.

One of the interesting things about working with computers is the number of orders of magnitude you need to understand. You can work with events that take anywhere from nano-seconds to months or years to complete. You need the mental agility to move across all those scales to build robust systems. The parts at one scale become the wholes at the next.

People working with systems must always be on their guard against the subtle trap of premature optimization. Premature optimization is at best a waste of time (e.g., optimizing a component used rarely enough that it makes no different in terms of overall performance). More often, it introduces errors by optimizing a component at the expense of a system.

Systems tend to work best when their components aren't all running at maximum. The ENIAC, the first general purpose electronic computer, contained about 18,000 vacuum tubes. The mean time between failure for those tubes in 1946 was such that on paper you could never have that many tubes functioning at the same time. By the simple expedient of running the tubes at a fraction of their rated power the engineers were able to create a relatively reliable system.

The key is to understand the role of the parts in the context of the larger system.

Image: luigi diamanti / FreeDigitalPhotos.net