[Beowulf] A start in Parallel Programming?

Kyle Spaans 3lucid at gmail.com
Tue Mar 13 08:20:39 PDT 2007

Hello Beowulf list.
Some of you may remember me from earlier in the summer. Well, after
nearly a year of lurking, I'm back!

As a background update: I'm at the University of Waterloo, studying
math in a program called Computational Math [solving problems
computationally, sound familiar? haw haw haw]. I'm taking a good
variety of courses [Maths, CS, Physics, and French]. I've gotten
through my first semester OK, and currently I'm living near Toronto on
my 4-month Co-op work term.

I just read this article,
<http://arstechnica.com/articles/paedia/hardware/physx-hpc.ars>, and
it has rekindled my desire to get started in parallel and
multi-threaded programming. By now, I'm plenty comfortable with Linux
[had to compile a custom kernel to get Linux to work on my desktop
because the hard drive controller didn't have drivers in the kernel],
and I've got access to lots of old and cheap computers. I've got even
more computers waiting for me, with remote access, at my dad's house
[more specifically three dual 2GHz Xeon rigs with a gig of Rambus DRAM
each]. Before I fully entrench myself with getting the cluster setup,
I want to make sure I can at least write some trivial parallel code
that I can USE on my cluster. Thanks to all your earlier emails, I've
got a good list of little problems I can start out with, not to
mention problems from my math classes. My question now is, how? Please
let me know if any of these are FAQs or Google'able, I'm a capable
RTFM'er but I just haven't found answers to these questions yet.

Do I really need MPI/OpenMPI/OpenMP/PVM? If so, does that mean I
should suck it up and learn Fortran/C/C++? Or can I just devise my own
message passing system to help me parallelize the workload? For
example, TCP sockets were mentioned. In my CS class I learned Scheme
[a dialect of LISP], and I know Scheme can work with TCP sockets. It
has also gotten me very interested in the Functional Programming
paradigm [but is it ideal for parallel programming?]. If possible, I'd
like to stick with Scheme for now, as it'll make my CS class coming up
this summer all the more interesting.

Speed isn't what I'm worried about right now, I just want to get
started thinking about and writing parallel code.
Thanks for your help!

More information about the Beowulf mailing list