C, Safety and Sanity

On the Beowulf list the semi-mythical RGB wrote an interesting digression on getting started in parallel programming:

C is like an M-1 tank armed with pocket nukes and with a built in levitation system and antimatter propulsion system — misuse it and you can blow up whole worlds, but it can solve lots of problems very quickly. Safe is a kiddy bike with training wheels — not fast, not powerful, but if you pedal long enough you can get where you want to go.

Unless you get run over by a tank, that is.

Talking about parallel programming, André Pang has a nice blog post quoting Edward A. Lee’s essay “The Problem with Threads” which investigates the problems with concurrency and non-determinism in parallel programming. Edward Lee talks about non-determinism he gives a two analogies, the best of which is the one that André picked up on:

To offer a third analogy, a folk definition of insanity is to do the same thing over and over again and to expect the results to be different. By this definition, we in fact require that programmers of multithreaded systems be insane. Were they sane, they could not understand their programs.

I’m glad I’m not a parallel programmer.. 🙂