[Beowulf] Re: A start in Parallel Programming?

David Mathog mathog at caltech.edu
Tue Mar 13 13:11:04 PDT 2007

>"Robert G. Brown" <rgb at phy.duke.edu> wrote:

> Also you can do amazing things with C and actually
> understand what the computer is doing when you do them.

I'd like to add that by "understand" you could read "debug with ease". 
Parallel debugging is miserable enough without having to wonder where
the variable in question is actually stored, whether or not the language
has bothered to create it yet, whether or not it has removed it yet, or
for that matter, what mangled name corresponds to the nice one you used
in the source code.  

For the original poster - parallel debugging is miserable because
you need to keep track of messages flying back
and forth, and the times and orders various logic is followed on N
machines, and the bug you saw in node A in one run might show up on node
B on another run, out of the 1000 nodes in play.  So, for instance,
even if you use the most accurate clock available and log 
debug events to separate files on each node, there may be enough jitter
in the clocks (or not enough accuracy in the times) that from this post
mortem information you still may not be able to discern the order in
which key events transpired.  Also if you try to send all of this
information to a  single node the act of doing so will generally
perturb the timing of the run and may very well prevent you from
ever finding the source of a bug.  This is all worst case of course,
in many instances parallel debugging just means following what happens
on one compute node, and that's pretty much the same as normal debugging.

> Nobody knows why CPS departments no longer teach students
> to code in C (and instead teach a bizarre mix of C++, java, lisp, and
> god-knows-what else first.

I know, I know!  The folks who teach computer science consider
functional languages like C and Fortran to be both uninteresting and old
fashioned.  They also tend not to use those languages in their research,
which is often on esoteric subjects having little to do with "crunching
these numbers as fast as possible with as much accuracy as possible."
They think these sorts of languages, along with God forbid, assembly
language, should be taught in trade schools and not the CS department. 
This causes endless battles and the occasional undergraduate revolt,
because all of those Engineering, Physics, and etc. students paying
35000 dollars a year to the University don't want to also attend a
trade school, and they need and want to learn how to write fast
efficient code in exactly those languages that the CS types don't
want to teach.


David Mathog
mathog at caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech

More information about the Beowulf mailing list