next up previous contents
Next: struct Location Up: Ranges Previous: Ranges

General Definitions

Level: A non-negative integer, characteristic of any range.

Primitive range: The range of a process dimension. The global subscripts are simply the coordinates of the process dimension.

A primitive range has level 0.

Subrange: A range defined as a (strided) subinterval of some parent range.

A subrange retains an alignment relation to the parent range--the mapping of a subrange element to the process dimension is the same as that of the corresponding element of the parent range. Subranges can be used to implement the general alignment options of HPF.

The level of a subrange is the same as the level of the parent range.

Template range: A range that is not a subrange of any range except itself. Template ranges thus include primitive ranges, block-distributed ranges with (in HPF terms) identity alignment, and cyclic-distributed ranges with identity alignment.

Template ranges can be used to represent the dimensions of an HPF template.

Parent template range: Any range is a subrange of its unique parent template.

Kernel range: Any range of level higher than 0 is distributed over some kernel range.

The level of a range's kernel one less than range's own level. For example, the kernel of a range with HPF-like block distribution or simple cyclic distribution is a primitive range--a process-dimension range. The kernel of a range with HPF-like block-cyclic distribution, on the other hand, is a range with simple cyclic distribution.

Global subscript: The primary subscript associated with a range. A value from the interval tex2html_wrap_inline14121 size() - 1. Sometimes just called the subscript.

Template subscript: For any element of a range, the associated global subscript in the parent template range.

Kernel subscript: For any element of a range, the associated global subscript in the kernel range (for level 1 ranges this is the process coordinate).

Block: The section of a range associated with a particular fixed value of the kernel subscript (for level 1 ranges, the section of the range mapped to a particular process coordinate). Any element of the range lies in a particular block. Note that elements of a block need not have contiguous global subscripts--in cyclic distribution format, adjacent elements of the block have template subscript differing by the extent of the kernel.

Shell subscript: For any element of a range, a subscript identifying the position of the element within its own block. In general there is a one-to-one mapping between between legal kernel-subscript/shell-subscript pairs and legal template subscripts.

  figure7609
Figure 3.1:  Illustration of various subscripts for a block-distributed subrange.

  figure7613
Figure 3.2:  Illustration of various subscripts for a cyclic-distributed subrange with stride 2.


next up previous contents
Next: struct Location Up: Ranges Previous: Ranges

Guansong Zhang
Fri Oct 9 12:29:23 EDT 1998