[Beowulf] Teaching Scientific Computation (looking for the perfect text)

Nathan Moore ntmoore at gmail.com
Tue Nov 20 10:33:43 PST 2007

I regularly teach a college course in a physics department that deals with
scientific computation.  After students take the course, I expect that
they'll be able to write simple "c-tran" style programs for data analysis,
write basic MD or MC simulations, and be fairly fluent in Mathematica.

In the past, I figured that with the breadth of topics included in the
course, Fortran, specifically the basic, simple, and reliable F77 dialect
(w/ some F90 conveniences) was the language to teach.  In my own head, my
rationale was:
- Most students can grasp the basics of fortran in half a day's reading, so
I can spend more class time on science and math (probably because there are
no pointers - I think that C is much harder for students and sometimes
"seems" less like mathematical syntax than f77)
- "Classical Fortran" is a great text and is readable for self-study (I know
of no such text for C/C++)
- several free compilers exist (g95 seems ok so far)
- Netlib, lapack, and numerical recipes cover the math library adequately
- F77 is compiled (Perl/python are too slow for an MD/MC sim and I figure
that students should know at least on compiled language and one scripting
language to be competent)
- MPI is a relatively basic addition to the language (again, no pointers,
allocation, or addressing)

After reflection though, I've started to wonder about the wisdom of my
choice.  Specifically (like RGB), I love the GSL library, and extending GSL
to fortran in an intro class is non-trivial.  Additionally, most vendors
supply "fast" hardware libraries in C (I may be ignorant, but if a student
wants to call an AMD ACML fast-math function(
http://developer.amd.com/acml.jsp), or write a linear algebra function to
run on a graphics card(http://developer.nvidia.com/object/cuda.html), the
vendors seem to assume that you'll write the code in C).

Also, and more relevant, I assume that most employers word-associate
"Fortran is to backwards as C is to competence".

So, I'm thinking about reworking the class to favor C, and fearing 3 weeks
of pointer and addressing hell.  For those of you who teach scientific
computation (and also those of you who hire undergrads), I'd be grateful for
your thoughts.  One specific question I have is what text covers scientific
programming and touches on MPI using the C language.


Nathan Moore

- - - - - - -   - - - - - - -   - - - - - - -
Nathan Moore
Assistant Professor, Physics
Winona State University
AIM: nmoorewsu
- - - - - - -   - - - - - - -   - - - - - - -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20071120/77755bc2/attachment.html>

More information about the Beowulf mailing list