next up previous
Next: Discussion and related work Up: HPJava: data parallel extensions Previous: Distributed loops

Other features

We have already described most of the important language features we propose to implement. Two additional features that are quite important in practice but have not been discussed are subranges and subgroups. A subrange is simply a range which is a regular section of some other range, created by syntax like x [0 : 49]. Subranges are created tacitly when a distributed array is subscripted with a triplet, and they can also be used directly to create distributed arrays with general HPF-like alignments. A subgroup is some slice of a process array, formed by restricting process coordinates in one or more dimensions to single values. Again they may be created implicitly by section subscripting, this time using a scalar subscript. They also formally describe the state of the active process group inside at and over constructs.

The framework described is much more powerful than space allows us to demonstrate in this paper. This power comes in part from the flexibility to add features by extending the libraries associated with the language. We have only illustrated the simplest kinds of distribution format. But any HPF 1.0 array distribution format, plus various others, can be incorporated by extending the Range hierarchy in the run-time library. We have only illustrated shift and writeHalo operations from the communication library, but the library also includes much more powerful operations for remapping arrays and performing irregular data accesses. Our intention is to provide minimal language support for distributed arrays, just enough to facilitate further extension through construction of new libraries.

For a more complete description of a slightly earlier version of the proposed language, see [4].


next up previous
Next: Discussion and related work Up: HPJava: data parallel extensions Previous: Distributed loops
Bryan Carpenter 2002-07-11