Fortran M's process placement constructs are based on the concept of a
virtual computer: a collection of virtual
processors , which may or may not have the
same topology as the physical computer on which a program executes.
For consistency with Fortran concepts, a Fortran M virtual computer is an
-dimensional array, and the constructs that control the placement
of processes within this array are modeled on Fortran's array
manipulation constructs.
The PROCESSORS declaration is used to specify the shape and size of
the (implicit) processor array on which a process executes. This is
similar in form and function to the array DIMENSION statement. It has the general form PROCESSORS(I
,...,I
) where
and the I
have
the same form as the arguments to a DIMENSION statement. For
example, the following declarations all describe a virtual computer
with 256 processors.
processors(256)
processors(16,16)
processors(16,4,4)
The PROCESSORS declaration in the main program specifies the shape and size of the virtual processor array on which that program is to execute. The mapping of these virtual processors is specified at load time. This mapping may be achieved in different ways on different computers. Usually, there is a one-to-one mapping of virtual processors to physical processors. Sometimes, however, it can be useful to have more virtual processors than physical processors, for example, if developing a multicomputer program on one processor.
A PROCESSORS declaration in a process specifies the shape and size of the virtual processor array on which that particular process is to execute. As with a regular array passed as an argument, this processor array cannot be larger than that declared in its parent, but can be smaller or of a different shape.