I/O bound? Not sure // Re: Proebsting's Law
london.pm.org at paulm.com
Thu Dec 15 10:26:38 GMT 2005
Je 2005-12-14 20:10:38 +0000, Dominic Mitchell skribis:
> On Wed, Dec 14, 2005 at 12:00:23PM +0000, Paul Makepeace wrote:
> > I bet there's *much* more than 4% difference. Ten years ago I was
> > futzing around with assembly code generated for sparcs, comparing various
> > optimizations. The differences were orders of *magnitude* not percentage
> > points. In fact some of the optimizations appeared to me so clever I
> > could barely follow the assembly language despite it being only about six
> > lines of math & pointer arithmetic in C.
> This is all very well, but the majority of programs are i/o bound, not
> CPU bound.
While in principle I agree, I do wonder how many programs that we're
using & writing actually are i/o bound, to the extent the CPU
speed/compiler efficacy is unimportant.
SpamAssassin (and similar products like blog blacklisting software) for
example is a good example of an app that is definitely CPU bound. They've
done a lot on optimising regexes and flow control.
Who too hasn't experienced an annoying lag waiting for a massive mod_perl
site to restart? My laptop for example is no longer useful for mod_perl
development as its CPU (Pentium 266) is simply too slow. (For whatever
reason I've not looked closely into A::StatINC and A::Reload have never
worked reliably for me.)
One of the servers I have to work on has a slowish CPU and we're being
forced into algorithmic optimisations before completing work on API and
other traditional design-level work because it's CPU bound and interfering
with the edit/test/debug cycle. If it were a couple of times faster it
would be OK.
You could argue these are I/O at the main RAM level but that's still in
the remit of compiler design.
A different angle: As an analogue to the effect where users can perceive
an apparently great difference between interfaces & applications that
respond in 100ms versus in 400ms (or so) I definitely do notice the
difference working on servers that are fast versus average. It's possibly
more of a "feel" thing, but it's there, and real.
> So the optimisation is useful, but less important. Unless
> you're doing mad simulations or calculating pi or searching for aliens
> or something.
In summary, I don't think you have to go to mathematical extremes to
experience the effect of a slow CPU/poor use of it.
Paul Makepeace .............................. http://paulm.com/inchoate/
"What is nana? A goats beard."
More information about the london.pm