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 18 (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 wellrecognised 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 16 (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 polylogarithmic 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 PointFree Form
"... Abstract. Programs written in pointfree 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 pointfree programs. This process systematically applies lo ..."
Abstract
 Add to MetaCart
Abstract. Programs written in pointfree 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 pointfree 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 handwritten code. 1
Synthesizing DivideandConquer Algorithms via Induction
"... ) Abstract We propose an inductive method to synthesize parallel divideandconquer 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 divideandconquer 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 secondorder generalisation step to selected instances of sequential equations, before an inductive derivation procedure. The new approach is systematic enough to be semiautomated, 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 divideandconquer 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 divideandconquer 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 secondorder generalisation step to selected instances of sequential equations, before an inductive derivation procedure. The new approach is systematic enough to be semiautomated, and shall be shown to be widely applicable using a range of examples.