Results 1 -
8 of
8
Extracting and Implementing List Homomorphisms in Parallel Program Development
- Science of Computer Programming
, 1997
"... this paper, we study functions called list homomorphisms, which represent a particular pattern of parallelism. ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
this paper, we study functions called list homomorphisms, which represent a particular pattern of parallelism.
Parallelizing Functional Programs by Generalization
- Journal of Functional Programming
, 1997
"... List homomorphisms are functions that are parallelizable using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
List homomorphisms are functions that are parallelizable using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential representations of a function, based on cons- and snoc-lists, respectively, there is also a representation as a homomorphism. Our contribution is a mechanizable method to extract the homomorphism representation from a pair of sequential representations. The method is decomposed to a generalization problem and an inductive claim, both solvable by term rewriting techniques. To solve the former we present a sound generalization procedure which yields the required representation, and terminates under reasonable assumptions. We illustrate the method and the procedure by the parallelization of the scan-function (parallel prefix). The inductive claim is provable automatically.
Regular Substitution Sets: a Means of Controlling E-Unification
- Proceedings 6th Conference on Rewriting Techniques and Applications
, 1995
"... Abstract. A method for selecting solution constructors in narrowing is presented. The method is based on a sort discipline that describes regular sets of ground constructor terms as sorts. It is extended to cope with regular sets of ground substitutions, thus allowing different sorts to be computed ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. A method for selecting solution constructors in narrowing is presented. The method is based on a sort discipline that describes regular sets of ground constructor terms as sorts. It is extended to cope with regular sets of ground substitutions, thus allowing different sorts to be computed for terms with different variable bindings. An algorithm for computing signatures of equationally defined functions is given that allows potentially infinite overloading. Applications to formal program development are sketched. 1 Motivation Solving equations by narrowing has important applications, e.g. in the area of formal software development. However, the usual narrowing strategies are only able to restrict the set of application positions 1. Ordered paramodulation [1] is able to provide a succession in which the defining equations have to be selected, but it cannot guarantee that an appropriate one is selected first. Bockmayr [2] has shown, under some general conditions, that narrowing strategies essentially enumerate the whole term universe rather than specifically selecting the appropriate equations of a defined function to narrow with or the appropriate constructor to insert into the solution. In this paper, we present an approach to restrict the set of applicable defining equations in a narrowing step that is based on dynamic computation of function signatures, rather than their declaration by a user. The main idea is as follows 2: As e.g. in [7], we distinguish between constructors and equationally defined functions; each well-defined ground term can be reduced to a ground constructor term, viz. its unique normal form. For a term v, let V be the set of all possible values of v, i.e., the set of all normal forms of admitted ground constructor instances of v. Then, a goal equation v1 = v2 cannot be solved if V1 " V2 = fg; in this case, it can be pruned from the search
Abstraction and Performance in the Design of Parallel Programs
, 1997
"... ion and Performance in the Design of Parallel Programs Der Fakultat fur Mathematik und Informatik der Universitat Passau vorgelegte Zusammenfassung der Veroffentlichungen zur Erlangung der venia legendi von Dr. Sergei Gorlatch Passau, Juli 1997 Contents 1 Introduction 2 2 Outline of the SA ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
ion and Performance in the Design of Parallel Programs Der Fakultat fur Mathematik und Informatik der Universitat Passau vorgelegte Zusammenfassung der Veroffentlichungen zur Erlangung der venia legendi von Dr. Sergei Gorlatch Passau, Juli 1997 Contents 1 Introduction 2 2 Outline of the SAT Approach 6 2.1 Performance View . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Abstraction View . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Design in SAT: Stages and Transformations . . . . . . . . . . 9 2.4 SAT and Homomorphisms . . . . . . . . . . . . . . . . . . . . 11 3 List Homomorphisms 12 4 Extraction and Adjustment 14 4.1 The CS-Method . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Mechanizing the CS-Method . . . . . . . . . . . . . . . . . . . 17 4.3 Almost-Homomorphisms: the MSS Problem . . . . . . . . . . 19 5 Composition of Homomorphisms 21 5.1 Rules of Composition . . . . . . . . . . . . . . . . . . . . . . . 21 5.2 Derivation by Transformation...
Towards polytypic parallel programming
, 1998
"... Data parallelism is currently one of the most successful models for programming massively parallel computers. The central idea is to evaluate a uniform collection of data in parallel by simultaneously manipulating each data element in the collection. Despite many of its promising features, the curre ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Data parallelism is currently one of the most successful models for programming massively parallel computers. The central idea is to evaluate a uniform collection of data in parallel by simultaneously manipulating each data element in the collection. Despite many of its promising features, the current approach suffers from two problems. First, the main parallel data structures that most data parallel languages currently support are restricted to simple collection data types like lists, arrays or similar structures. But other useful data structures like trees have not been well addressed. Second, parallel programming relies on a set of parallel primitives that capture parallel skeletons of interest. However, these primitives are not well structured, and efficient parallel programming with these primitives is difficult. In this paper, we propose a polytypic framework for developing efficient parallel programs on most data structures. We showhow a set of polytypic parallel primitives can be formally defined for manipulating most data structures, how these primitives can be successfully structured into a uniform recursive definition, and how an efficient combination of primitives can be derived from a naive specification program. Our framework should be significant not only in development of new parallel algorithms, but also in construction of parallelizing compilers.
Parallelizing Functional Programs by Term Rewriting
, 1997
"... List homomorphisms are functions that can be computed in parallel using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward se ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
List homomorphisms are functions that can be computed in parallel using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential representations of a function, based on cons- and snoc-lists, respectively, there is also a representation as a homomorphism. Our contribution is a mechanizable method to extract the homomorphism representation from a pair of sequential representations. The method is decomposed to a generalization problem and an inductive claim, both solvable by term rewriting techniques. To solve the former we present a sound generalization procedure which yields the required representation, and terminates under reasonable assumptions. We illustrate the method and the procedure by the parallelization of the scan-function (parallel prefix). The inductive claim is provable automatically. Keywords: P...
A Calculational Framework for Parallelization of Sequential Programs
- In International Symposium on Information Systems and Technologies for Network Society
, 1997
"... this paper, we propose ..."
Weight Computation of Regular Tree Languages
- Journal of Applied Logic
, 2004
"... We present a general framework to define an application--dependent weight measure on terms that subsumes e.g. total simplification orderings, and an O(n log n) algorithm for the simultaneous computation of the minimal weight of a term in the language of each nonterminal of a regular tree grammar, b ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We present a general framework to define an application--dependent weight measure on terms that subsumes e.g. total simplification orderings, and an O(n log n) algorithm for the simultaneous computation of the minimal weight of a term in the language of each nonterminal of a regular tree grammar, based on Barzdins' liquid--flow technique.

