Fortran 77
- Pros
- Very efficient compilers
- Lots of library support
- Cons
- Language at dead end
- Requires some poor programming practices
Fortran 90
- Pros
- Significant language improvements over Fortran 77
- Better code re-use
- Greater programming flexibility
- Cons
- Less library support (not all constructs are supported by MPI yet)
C
- Pros
- Better software engineering features than Fortran 77, but most are included in Fortran 90
- Excellent library support, but numerical libraries are written first for Fortran
- Cons
- Injudicious use of some constructs (pointers, for example) will mask potential optimizations
- C++, a superset of C, has better code re-use features
C++ (superset of C)
- Pros
- Excellent code re-use and extensibility
- Class libraries for parallelizing are available
- Cons
- Requires calls to external libraries for numerically intensive computing.
High Performance Fortran (HPF)
- Pros
- High-level directives simplify parallelization
- Same code can run across many different parallel architectures
- Cons
- Is not well-integrated with Windows platform
- Is not well-suited for irregular data communication patterns
OpenMP
- Pros
- Shared memory model
- Excellent performance on SMP architecture
- Cons
- Must be combined with another programming language such as MPI for computing on clusters of SMP machines.
Some further remarks concerning language related performance can be found in Compiling and Porting Applications.