[Beowulf] Re: programming questions here?

Matt rosing at peakfive.com
Mon May 7 09:48:04 PDT 2007


 > At 08:53 AM 5/6/2007, Robert G. Brown wrote:
 > >There are many programmers on the list.  Indeed, I'd guess that the
 > >majority of posters are coders as well as admins, cluster engineers,
 > >researchers.  If you want to see the coders in action, just post a
 > >question like "Is C or Pascal a better language for writing parallel
 > >code."  Just be sure to put on a biohazard suit first.
 > 
 > Actually, if you really want to see a lot of traffic, you need to 
 > post a question like:
 > 
 > "I know that SNOBOL is the best language for parallel programming, 
 > but because distro X has a lame implementation, am I really stuck 
 > using the brain-dead constructs of Ada, or would I be better using 
 > distro Y and APL, and rewriting the compiler for my needs."
 > 
 > {Langauge names changed to avoid stepping on too many landmines}
 > 
 > It's the combination of the absolute assertion of superiority for one 
 > choice and the denigration of multiple other choices that will really 
 > bring out the comments.
 > 
 > As you say, fireproof suit required.

SNOBOL, huh? I don't know who's showing their age more, you for
mentioning it or me for knowing what you're talking about :) I'm sure
someone is still using it now but when I used it it was written on punch
cards. But I don't want to start a flame war.  I don't care about what
programming languages people use. I can use whatever you'd like me to
use.

I'm really trying to figure out whether I should stay in the parallel
processing field. I don't get paid to write papers, although I do on
occasion. I get paid to do two rather synergistic activities. First, I
help people maintain (debug, port, optimize, etc) parallel code, and
second I build software tools to help this process. Actually, I don't
get paid to build the tools but I use them. The main tool I built was
a preprocessor that takes fortran plus user defined directives and
parallelizes the code, or instruments the code, or helps debug the
code, or whatever might benefit from rewriting the code. I've used
this tool on several 100k+ LOC programs and it's a very powerful
technique. 

After doing this for a number of years I've come to the conclusion
that developing and maintaining parallel code is so expensive that
few people can afford to maintain old code and add new features.
Debugging, porting, and optimizing parallel code is a real time sink.
Numerical code is even worse.  For example, it took months of time to
get one code from 1.5% of peak performance on one processor to 20% on
1800 processors. The code has evolved from early days on a CM-2 and
it's difficult to understand. It can take weeks to find out why some
variable starts losing 5 or 6 digits of accuracy when running over
1000 processors.

One big question I have is what other people have these kinds of
problems? Does anyone know how much money they're spending on
maintaining old code as opposed to creating new? I'd like to extend
the tools I've built and find customers that either want these tools
or would pay me to help them, but I first want to find some potential
customers to find out what they need to make sure I'm on the right
track.

Thanks,

Matt




More information about the Beowulf mailing list