The Fortran M Language (FM)
FM is a small set of extensions to Fortran that supports a modular
approach to the design of task parallel, message-passing programs. It
has the following features.
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.
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.
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.
Efficiency
FM 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.