Virtual Computers



next up previous contents index
Next: Process Placement Up: Mapping Previous: Mapping

Virtual Computers

 

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.

 



Steve Tuecke
Tue Aug 30 12:20:34 CDT 1994