Assuming you are talking about the high end Cray vector systems, you
will be much better off with Fortran.
1) Most of the codes run on Cray systems are very large Fortran codes
for things like weather and climate modeling, computational physics and
chemistry, etc. Given the focus of the customer base, a lot of work goes
into the Fortran compiler, and optimizations are aimed at Fortran
constructs. Your best optimization chances with a C program are if you
write it to look just like a Fortran program (sometimes called Ctran).
2) Vectorization and parallelization depend on the compiler's ability to
analyze data dependencies in the code. This is made significantly more
difficult in programs that use pointers, which is the common programming
model in C. Fortran's support for arrays and aliasing rules for dummy
arguments allow for much better automatic vectorization and parallelization.
3) If you are going to migrate a "legacy" Fortran code, you should
convert it to Fortran 95 or Fortran 2003. Modern Fortran constructs
like modules provide better ways enhance code maintainability than are
available in C.
4) Intro computer classes these days don't teach either Fortran or C,
but rather Java. Given that the engineer is going to need to learn
something new, might as well make it Fortran. Riverside is a pretty
high brow research institute. An engineer who is not smart enough to
learn Fortran is probably not going to cut is as an employee at all.
Cheers,
Bill
Naomi Greenberg wrote:
>I am particularly interested in speed on a Cray using vectorization and
>parallelization
>
>
>
--
Bill Long [log in to unmask]
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
|