Distribution Model

The distribution model fields are used (as a hint) to indicate how the data (for each dimension of an array) is to be distributed amongst the accelerator nodes. Each dimension of an array may be distributed in one of three ways:

BLOCK

BLOCK distribution divides the indices of a dimension into contiguous, equal-sized blocks of size N/P, where N is the number of elements in the array dimension and P is the number of expected accelerator nodes. The distribution size field is automatically computed (cannot be changed), and is set to N/P.

Note: for BLOCK data distribution, the expected number of accelerator nodes must be exact - the expected number of accelerator nodes cannot be set to 0 (all available).


Cannot load figure 1
Figure 1: A 1-dimensional array using BLOCK distribution with 4 accelerator nodes.

Cannot load figure 2
Figure 2: A 2-dimensional array using BLOCK distribution with 4 accelerator nodes.

Cannot load figure 3
Figure 3: A 3-dimensional array using BLOCK distribution with 4 accelerator nodes.

CYCLIC

CYCLIC distribution distributes the elements of a dimension evenly among the accelerator nodes in a round robin fashion. The distribution size (entered by the user) determines how many elements are to be distributed to each accelerator node. The user defined distribution size must be an integer between 1 and the size of the dimension.

Note: the CYCLIC data distribution model can only be used when the dimension of the array is 1 or 2.


Cannot load figure 4
Figure 4: A 1-dimensional array using CYCLIC distribution with 4 accelerator nodes.

Cannot load figure 5
Figure 5: A 2-dimensional array using CYCLIC distribution with 4 accelerator nodes.