(1) Modularity. Programs are constructed by using explicitly-declared
communication channels to plug together program modules called
processes. A process can encapsulate common data, subprocesses, and
internal communication.
(2) Safety. Operations on channels are restricted so as to guarantee
deterministic execution, even in dynamic computations that create and
delete processes and channels. Channels are typed, so a compiler can
check for correct usage.
(3) Architecture Independence. The mapping of processes to processors
can be specified with respect to a virtual computer with size and
shape different from that of the target computer. Mapping is
specified by annotations that influence performance but not
correctness.
(4) Efficiency. Fortran M can be compiled efficiently for
uniprocessors, shared-memory computers, distributed-memory computers,
and networks of workstations. Because message passing is incorporated
into the language, a compiler can optimize communication as well as
computation.
The CIT Airshed Model is a code used to simulate the time evolution of atmospheric pollutants, specifically in
the Los Angeles basin. The parallel code is based on a sequential Fortran program, and uses FM to implement
a more complex communication structure. You can see more information and a movie.
Particle in Cell
This parallel code uses FM's lightweight threading and communication mechanisms. A set of overheads
provides a brief explanation of the application; a paper provides more details.
Computational Biology (SCIMMS)
SCIMMS is an algorithm for analyzing chromatography data. The parallel code is based on a sequential Fortran
program, and uses FM to implement a fairly simple communication structure. Click here to read more about the
application and its parallel implementation.
For more informaton see the Fortran M Applications Page.
More information can be found at the Fortran M Web pages. (http://www.mcs.anl.gov:80/fortran-m/)
FM Compiler (IBM RS/6000 AIX 3.2 binaries)
FM Compiler (SunOS 4.1.x binaries)
Programming in Fortran M (Postscript)
Programming in Fortran M (Latex source)
1-713-527-6011