[Beowulf] Stroustrup regarding multicore

Steve Herborn herborn at usna.edu
Wed Sep 3 13:19:56 PDT 2008

I guess that is why I have always preferred a RAD/JAD environment to a
strict Waterfall one.  One can spend eons creating the world's most perfect
spec, but then the problem changes.  From my perspective ideally the Subject
Matter Expert & the Programmer become tied at the hip with each taking away
a little of the others knowledge by the time the "project" is over & done
with.  When I first started programming in support of Electronic Warfare I
didn't know doodle about RADAR parametric data, know I at least know how to
spell it.  :-)



From: Peter St. John [mailto:peter.st.john at gmail.com] 
Sent: Thursday, August 28, 2008 11:54 AM
To: Perry E. Metzger
Cc: Steve Herborn; Beowulf at beowulf.org
Subject: Re: [Beowulf] Stroustrup regarding multicore


I agree entirely with Perry here. I'd take it further: even in the case of
giving the machinist instructions, "12x12 with holes here and here", it
would help if the machinist has some sense of what you are building. Will
the product be hot enough so that metal expands and contracts? humidity?
should the finish be gloss or matte? copper, aluminum...? The machinist will
help you build a better gizmo if he has some feel for what your are
building, what you need the part for. He will have relevant experience from
his machinist perspective.

Mixed unit tactics are the path to victory, but the mixed units perform
better together if they have some sense of each other's jobs. Some of us
specialize in a very focused way, some of us generalize, but to work as a
team we need to learn some of each other's jobs. 

I think a physicist programming is like an astronomer grinding lenses (maybe
nobody does that anymore). Some astronomers (in the old days) ground their
own lenses and ended up contributing to optics; others never looked through
telescopes, they do math on the measurements taken by others. Some computer
scientists don't program; some mathematicians can hardly use email. But most
of us learn bits and pieces of each others jobs, in varying degrees; it's
necessary to communicate effectively, and what's the subject for one guy is
a tool for another guy.


On 8/28/08, Perry E. Metzger <perry at piermont.com> wrote:

"Steve Herborn" <herborn at usna.edu> writes:
> However, that being said I would think that it is usually easier to teach
> Scientist to code, then a coder the PhD level of the science.

I think either is fine -- you wind up with someone who knows both. The
problem is when you try to segregate the two skills.

I think I finally have the right analogy. A physicist is interested in
advancing physics, not in advancing mathematics, but as the tools of
physics are all made of math, he cannot ignore the math or hope to
turn to a specialized hired mathematician who knows no physics to do
his math thinking for him. The math and the physics are integrated --
you need one mind to see both in order to get anywhere.

Writing good software for physics problems is no different. The
physics and the software are one. You can complain that you want to do
physics, not computing, but that's exactly like complaining you want
to do physics and not math. Indeed, software pretty much *IS* math.

The attempt seems to be to somehow treat the computer science as
though it were the software equivalent of machine shop work.

You're building a new instrument, so you draw up the parts, and then
you ask a machinist to make them. "I need a sheet of metal 12cm by
12cm with holes here and here."  It is somehow imagined that you can
do that with the software -- you make some vague guesses about what
you might need and write a spec (which is imagined to be like a
blueprint for a part) and ask a "software machinist" to make it for

Unfortunately, this misses the point -- the computer programming is
not like machining the parts for the instrument, it is like
*designing* the instrument. That requires both knowledge of both
fields, not just of one. It is not at all like machining.

This is of course a serious problem. It takes at least several years
of effort to become facile with computer software just as it takes
several years of effort to become facile with calculus, differential
equations, etc., etc., and fundamentally one wants to be doing
science, not math or computer programming, but I can't see any real
way around it in the long term if progress is to be made.

Incidentally, THIS IS NOT A NEW ARGUMENT. It was only a little over a
century ago that people scoffed at the idea that engineers needed to
learn higher mathematics. "I'm trying to build a bridge, not to do
math!" was the general sort of attitude that was common. Eventually,
people realized that there was no way around it, you just had to spend
the time to learn the math or you couldn't be productive. I expect
something similar is going to happen here.

Perry E. Metzger                perry at piermont.com

Beowulf mailing list, Beowulf at beowulf.org
To change your subscription (digest mode or unsubscribe) visit


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20080903/647fe9ed/attachment.html>

More information about the Beowulf mailing list