[Beowulf] A start in Parallel Programming?
Peter St. John
peter.st.john at gmail.com
Tue Mar 13 09:06:26 PDT 2007
I know it's easy to always say "study more"; I'm sure your professors have
plenty for you to do. However, if you want to program stuff yourself, I urge
you accept (at least) two languages. C/C++ is the only way to go for such
things as linux kernel hacking. LISP is a huge window of insight into AI and
is a completely different way of thinking. But particularly, I don't think
we start to understand prgramming at a higher level until we have learned
two; it's like, we learn English from constant use, but we don't grok "past
pluperfect" until someone tries to teach us French. Right now you are in a
perfect environment to learn and use both. You don't need to become a
Language Lawyer in either.
The great fun of computing is that you can tinker with your own working
models of anything. Write a compiler, a database, a network, a finite
representation of p-adics, whatever you want, for any of your classes. So
coding, like reading and writing, is a basic useful skill :-)
Similarly, in math, I urge you to take at least a little in each of Algebra,
Geometry, and Analysis :-)
On 3/13/07, Kyle Spaans <3lucid at gmail.com> wrote:
> 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!
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beowulf