>
> 5. SMP
> ------
snip
> Several hardware manufacturers make SMP systems, and several
> compiler companies now offer parallel programming on SMP systems.
It makes no sense to me to list SMP as a separate category for
compilers. SMP is a hardware architecture, primarily addressed in
Fortran compilers through OpenMP or automatic parallelization. Cluster
or distributed parallel processing is primarily targeted by MPI, though
you can use MPI on a single SMP system and there exists "Cluster OpenMP"
as well, so the distinction is blurred.
Furthermore, MPI is typically implemented as a library, not needed
explicit compiler support. Most any compiler can support MPI if you
have a suitable implementation.
My recommendation is that you focus on the programming models available
(OpenMP, MPI, autoparallel) and not get bogged down in hardware
implementations. I'll also note that there are additional parallel
programming models, such as POSIX threads, or OS-dependent thread
libraries, that can be used from Fortran as well. All a Fortran
compiler would need to take advantage of these is support for
"recursive" routines, VOLATILE, perhaps the ability to get the address
of a variable (LOC()), and a thread-safe run-time library. If you
expanded your definition of parallel to that, there are many other
compilers that could be mentioned (including the HP OpenVMS compiler,
and even DEC/Compaq/HP VAX Fortran which supports autoparallel).
Steve
|