Distributed Array Sections

In Chapter 1 we introduced the HPJava syntax for forming sections of multiarrays. This syntax carries over with very few changes to distributed arrays.

We have seen that the subscripts in a distributed array *element
reference* are generally either index symbols or (restrictedly)
integer expressions. Options for subscripts in distributed array section
expressions are wider. As for multiarrays, a section subscript is allowed
be a triplet. The section may also have some scalar subscripts, similar
to those appearing in element references.

This fragment includes two examples of distributed array section expressions:

The first array section expression appears on the right hand side of the definition of

Distributed array sections allow us to implement a number of interesting
applications. They are often passed as arguments to library functions
like `remap`, implementing various interesting patterns of
communication and arithmetic on subarrays.

- Two-dimensional Fourier transform
- Cholesky decomposition
- Matrix multiplication with reduced memory
- Subranges
- Restricted Groups
- Mapping of distributed array sections
- Rank-0 Distributed Arrays
- Distributed Array Restriction