APL2: at a glance
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
Compiler and Run-Time Support for Exploiting Regularity within Irregular Applications
IEEE Transactions on Parallel and Distributed Systems
Three Approaches to Type Structure
CAAP '85 Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT), Volume 1: Colloquium on Trees in Algebra and Programming: Mathematical Foundations of Software Development
Hi-index | 0.00 |
This paper presents an array algebra based on the concept of symmetry. The symmetries taken into account are translational, affine and polyhedral symmetry as well as the access symmetry inherent in distributed arrays. The full set of data-parallel array operations is represented in terms of four fundamental skeletons: Map, Juxtapose, Select, and Concatenate; which are strongly typed and overloaded for all combinations of operand symmetries. A hierarchy of three further skeletons are used as parameters to Map in order to express reductions: commutative-associative, associative but not commutative, and neither associative nor commutative. Any user-defined part of the computation is represented in the form of scalar functions as skeleton parameters, without any loss of generality. Successful type inference in the presence of subtyping is enabled by a homomorphism restriction imposed on all overloadings of the skeletons. As a result, we are able to infer the most symmetric type of any well-formed term, which is usually the cheapest one to compute.