Results 1 -
5 of
5
Parallelization via Context Preservation
- In IEEE Intl Conference on Computer Languages
, 1998
"... Abstract program schemes, such as scan or homomorphism, can capture a wide range of data parallel programs. While versatile, these schemes are of limited practical use on their own. A key problem is that the more natural sequential specifications may not have associative combine operators required b ..."
Abstract
-
Cited by 17 (16 self)
- Add to MetaCart
Abstract program schemes, such as scan or homomorphism, can capture a wide range of data parallel programs. While versatile, these schemes are of limited practical use on their own. A key problem is that the more natural sequential specifications may not have associative combine operators required by these schemes. As a result, they often fail to be immediately identified. To resolve this problem, we propose a method to systematically derive parallel programs from sequential definitions. This method is special in that it can automatically invent auxiliary functions needed by associative combine operators. Apart from a formalisation, we also provide new theorems, based on the notion of context preservation, to guarantee parallelization for a precise class of sequential programs. 1 Introduction It is well-recognised that a key problem of parallel computing remains the development of efficient and correct parallel software. This task is further complicated by the variety of parallel arc...
A Query Language for NC
- In Proceedings of 13th ACM Symposium on Principles of Database Systems
, 1994
"... We show that a form of divide and conquer recursion on sets together with the relational algebra expresses exactly the queries over ordered relational databases which are NC -computable. At a finer level, we relate k nested uses of recursion exactly to AC k , k 1. We also give corresponding resul ..."
Abstract
-
Cited by 14 (9 self)
- Add to MetaCart
We show that a form of divide and conquer recursion on sets together with the relational algebra expresses exactly the queries over ordered relational databases which are NC -computable. At a finer level, we relate k nested uses of recursion exactly to AC k , k 1. We also give corresponding results for complex objects. 1 Introduction NC is the complexity class of functions that are computable in poly-logarithmic time with polynomially many processors on a parallel random access machine (PRAM). The query language for NC discussed here is centered around a form of divide and conquer recursion (dcr ) on finite sets which has obvious potential for parallel evaluation and can easily express, for example, transitive closure and parity. Divide and conquer with parameters e; f; u defines the unique function ', notation dcr (e; f; u), taking finite sets as arguments, such that: '(;) def = e '(fyg) def = f(y) '(s 1 [ s 2 ) def = u('(s 1 ); '(s 2 )) when s 1 " s 2 = ; For parity, we t...
Data Movement Optimisation in Point-Free Form
"... Abstract. Programs written in point-free form express computation purely in terms of functions. Such programs are especially amenable to local transformation. In this paper, we describe a process for optimising the transport of data through point-free programs. This process systematically applies lo ..."
Abstract
- Add to MetaCart
Abstract. Programs written in point-free form express computation purely in terms of functions. Such programs are especially amenable to local transformation. In this paper, we describe a process for optimising the transport of data through point-free programs. This process systematically applies local transformations to achieve effective global optimisation. We describe the strategies we employ to ensure this process is tractable. This process has been implemented as an intermediate stage of a compiler. The optimiser is shown to be highly effective, producing code of comparable efficiency to hand-written code. 1
Synthesizing Divide-and-Conquer Algorithms via Induction
"... ) Abstract We propose an inductive method to synthesize parallel divide-and-conquer programs from sequential recursive functions. Traditionally, such parallelization methods are based on schematic rules which attempt to match each given sequential program to a prescribed set of program schemes ..."
Abstract
- Add to MetaCart
) Abstract We propose an inductive method to synthesize parallel divide-and-conquer programs from sequential recursive functions. Traditionally, such parallelization methods are based on schematic rules which attempt to match each given sequential program to a prescribed set of program schemes that have parallel counterparts. Instead of relying on specialized program schemes, we propose a new approach to parallelization based on elementary transformation rules. Our approach requires an induction to recover parallellism from sequential programs. To achieve this, we apply a second-order generalisation step to selected instances of sequential equations, before an inductive derivation procedure. The new approach is systematic enough to be semi-automated, and shall be shown to be widely applicable using a range of examples. 1 Introduction Most programs are more easily written via sequential specifications. Functional programs are no exception. As an example, the ubiquituous list...
Deriving Efficient Divide & Conquer Algorithms from Sequential Specification
"... We propose an inductive method to synthesize parallel divide-and-conquer programs from sequential recursive functions. Traditionally, such parallelization methods are based on schematic rules which attempt to match each given sequential program to a prescribed set of program schemes that have p ..."
Abstract
- Add to MetaCart
We propose an inductive method to synthesize parallel divide-and-conquer programs from sequential recursive functions. Traditionally, such parallelization methods are based on schematic rules which attempt to match each given sequential program to a prescribed set of program schemes that have parallel counterparts. Instead of relying on specialized program schemes, we propose a new approach to parallelization based on elementary transformation rules. Our approach requires an induction to recover parallellism from sequential programs. To achieve this, we apply a second-order generalisation step to selected instances of sequential equations, before an inductive derivation procedure. The new approach is systematic enough to be semi-automated, and shall be shown to be widely applicable using a range of examples.

