[Beowulf] A start in Parallel Programming?
Jeffrey B. Layton
laytonjb at charter.net
Tue Mar 13 10:42:37 PDT 2007
Glen Beane wrote:
> Kyle Spaans wrote:
> does that mean I
>> should suck it up and learn Fortran/C/C++?
> If you really want to get into parallel programming, you really should know C (actually I think everyone should know C). C++ isn't too much of a stretch once you know C (if you learn the concepts of OO programming), but I find that when I'm writing serious number crunching code that just reads in a datafile, crunches it, and spits out an output file I don't bother with OO. As someone under the age of 30 that knows Fortran, I wouldn't recommend bothering to pick it up unless you need to work on legacy code.
> also keep in mind that there are MPI bindings for other languages. If you want to learn about parallel programming concepts you might be able to develop code faster in something like Python instead of C, but I still like to stick with C for my "real work".
Ouch this hurts! I've gotten the same rubbing from RGB. I hate to
say it, but I'm a Fortran programmer ("Hi! My name is Jeff and I'm
a Fortran programmer. Hi! Jeff!"). I know C reasonably well (except
for the esoteric garbage) and I code in Python and the usual assortment
of shell/interpreted language.
The recent development of Fortran has been remarkable. Considering
the world was stuck with Fortran77 for many, many years, the new
features of Fortran are quite refreshing. If you really want you can even
do OO programming with Fortran (some of it is very useful IMHO).
I know this will set off a language war, but I've found that anything
technical or scientific I need to code is always easier in Fortran than
anything else (well except Matlab, but I usually prototype in Matlab
and move to Fortran for extra speed). For many other tasks, I use
Python or bash or perl or whatever I have handy.
So my general opinion about coding for clusters is to use whatever you
want. You can usually find thread libraries or MPI libraries for that
language. Of course, it's always best if you code in Fortran :)
More information about the Beowulf