[Beowulf] Why one might want a bunch o' processors under your desk.
james.p.lux at jpl.nasa.gov
Tue May 10 07:03:10 PDT 2005
> >It's not laziness, nor a lack of desire, just a lack of appropriate
> Honesty, if you ask me, the only reason it happens is because the
> government pays the bill and not you.
Presumably, relatively few individuals will buy supercomputers (of whatever
type), so the vast majority are bought and used for some business, and as
such, you have to make those sorts of decisions. Even a government agency
wants "value for money". The issue of practicality is independent of
motivation. If only CS wizards can use clusters, then they will remain a
niche item, much like early PCs.
I will readily agree that if I were doing it for myself, and I considered my
time free (as I did in younger, less cynical days), I probably would slog
through coming up with new code. (And, for that matter I AM developing
software, on a cluster, at home on my own time, without much expectation of
However, I DO get paid a salary, and that salary is paid to me to accomplish
something useful for my employer, which may or may not involve trying to
rewrite numerical modeling codes, but certainly involves developing better
deep space communications systems and such. It's true that I have some
flexibility in how I allocate my funding, and it's the difficulty in finding
appropriate resources that funding that causes the problem.
This is true regardless of whether I happen to work (indirectly) for the
government, or purely for business. My wife (who manages a horde of
software types at a Fortune 500 company) faces exactly the same sorts of
problems. Just try and find a good PowerBuilder programmer these days, who
will work at a reasonable price, for a few weeks, on some legacy code.
Sometimes the best "business solution" is to tolerate the inefficiency and
buy a bigger machine. In general, machine time is cheaper than people time,
so let the machine do the work. Furthermore, as time goes on, on a "per unit
of information processed" basis, machine time keeps getting cheaper, and
people time keeps getting more expensive.
To me, this is sort of the essence of engineering: Engineers are lazy, and
want to find a way to accomplish a task with the minimum effort on their
part. Hence, we have plows and tractors instead of digging with a stick,
which in the big picture, is a more efficient way of accomplishing the task.
However, it comes at a cost of requiring a significant capital investment.
Here is where the cluster concept is SO seductive and appealing. Done
properly, it is incredibly scalable. You can start with one machine, add a
few, get more resources, add a few, etc., and bootstrap yourself up. In
fact, my professional life these days is trying to convince folks to invest
in inherently scalable approaches to doing things (phased array antennas in
particular), even though in the short run it is riskier and less cost
effective than traditional centralized approaches.
If you look at the heart of the cluster research (in the computer science
sort of way, not the making them easier to use and sell way), a lot is based
on improving the scalability, so that one doesn't have to care what the size
of the machine is, or what the interconnection is. People are developing
latency tolerant algorithms for various computational tasks, for instance.
More information about the Beowulf