[Beowulf] Teaching Scientific Computation (looking for the perfect text)
landman at scalableinformatics.com
Wed Nov 21 08:17:10 PST 2007
Jeffrey B. Layton wrote:
> In Fortran it's always been x**y. The good compilers let x and y be any
> data types (I've not tried using a complex as the exponent though).
It should be noted that I haven't been actively using Fortran for the
better part of the last decade. This is not a choice issue, just most
of our work tends to focus on C, Perl, ...
One of the principal advantages of Fortran over C for scientific
computing is the inclusion of Complex as a first class data type. That
means any library/code/function that uses it, knows how to use it, as it
is well defined in terms of a fixed implementation. There are a myriad
of ways to handle complex in C, but you can't easily write
A = B + C*D
with anything like the clarity of Fortran.
Another principal advantage of Fortran over C for scientific computing
is the inclusion of arrays and matrices as first class data types. Yes,
you can do all sort of allocation wonders in C. You can do some
incredible things at lower levels. Just try to use two array packages
which have slightly different conceptions of what an array is, and how
to manipulate it.
Of course, this is usually the time at which the C++ folks come out of
the background and start talking about objects, interfaces, overloading, ...
Anyone ever debugged an overloaded operator? It ain't fun, at any level.
Add to that the (seriously) non-unity abstraction penalty (TANSTAAFL:
objects cost time/memory/...).
Yeah, you can write
A = B + C*D
in C++, but you have to overload the operators. And heaven forbid you
use an FFT package with a slightly differing conception of a vector of
complex as compared to the matrix package you are using.
There is value (significant value) in first class types that scientists
use commonly. There is value in being able to get close to the actual
metal ... er ... silicon.
We usually advise using what you are comfortable with. Fortran will be
with us for decades more.
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics LLC,
email: landman at scalableinformatics.com
web : http://www.scalableinformatics.com
phone: +1 734 786 8423
fax : +1 866 888 3112
cell : +1 734 612 4615
More information about the Beowulf