An Adlib range is a map from an integer interval into a process dimension. Each value, or global subscript, in
the interval is mapped to a particular process coordinate. While the
library does not support completely general, irregular mappings
from global subscript to process coordinate, it does provide many of
the most popular options (block, cyclic,
block-cyclic, etc). In particular the allowed mappings support all
distribution formats and intra-dimensional alignments of HPF 1.0,
and the irregular block distribution format of HPF 2.0.
Adlib currently supports three kinds of range, distinguished by an integer called the level of the range. The simplest distribution formats of HPF (including simple block and simple cyclic distribution) are described by level 1 ranges. Block-cyclic distribution format is described by a level 2 range. For completeness, Adlib adds level 0 ranges. These are ranges that describe an unadorned process dimension, or a subrange of a process dimension.