Data Movement

next up previous contents index
Next: Parallelism Up: Factors that Affect Previous: Vectorization

Data Movement


What often limits the actual performance of a vector-or scalar- floating-point unit is the rate of transfer of data between different levels of memory in the machine. Examples include: the transfer of vector operands in and out of vector registers , the transfer of scalar operands in and out of a high-speed scalar processor, the movement of data between main memory and a high-speed cache  or local memory , and paging between actual memory and disk storage in a virtual memory system.

It is desirable to maximize the ratio of floating-point operations to memory references, and to re-use data as much as possible while it is stored in the higher levels of the memory hierarchy (for example, vector registers or high-speed cache).

A Fortran programmer has no explicit control over these types of data movement, although one can often influence them by imposing a suitable structure on an algorithm.

Tue Nov 29 14:03:33 EST 1994