Results 11 -
17 of
17
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...
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 ..."
List Homomorphism with Accumulation
- In Proceedings of Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD
, 2003
"... This paper introduces accumulation into list homomorphisms for systematic development of both efficient and correct parallel programs. New parallelizable recursive pattern called is given, and transformations from sequential patterns in the form into (H-)homomorphism are shown. We illustrate ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper introduces accumulation into list homomorphisms for systematic development of both efficient and correct parallel programs. New parallelizable recursive pattern called is given, and transformations from sequential patterns in the form into (H-)homomorphism are shown. We illustrate the power of our formalization by developing a novel and general parallel program for a class of interesting and challenging problems, known as maximum marking problems. 1.
Automatic Inversion Generates Divide-and-Conquer Parallel Programs
"... Divide-and-conquer algorithms are suitable for modern parallel machines, tending to have large amounts of inherent parallelism and working well with caches and deep memory hierarchies. Among others, list homomorphisms are a class of recursive functions on lists, which match very well with the divide ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Divide-and-conquer algorithms are suitable for modern parallel machines, tending to have large amounts of inherent parallelism and working well with caches and deep memory hierarchies. Among others, list homomorphisms are a class of recursive functions on lists, which match very well with the divide-and-conquer paradigm. However, direct programming with list homomorphisms is a challenge for many programmers. In this paper, we propose and implement a novel system that can automatically derive costoptimal list homomorphisms from a pair of sequential programs, based on the third homomorphism theorem. Our idea is to reduce extraction of list homomorphisms to derivation of weak right inverses. We show that a weak right inverse always exists and can be automatically generated from a wide class of sequential programs. We demonstrate our system with several nontrivial examples, including the maximum prefix sum problem, the prefix sum computation, the maximum segment sum problem, and the line-ofsight problem. The experimental results show practical efficiency of our automatic parallelization algorithm and good speedups of the generated parallel programs.
An Analytical Method For Parallelization Of Recursive Functions
, 2000
"... Programming with parallel skeletons is an attractive framework because it encourages programmers to develop efficient and portable parallel programs. However, extracting parallelism from sequential specifications and constructing efficient parallel programs using the skeletons are still difficult ..."
Abstract
- Add to MetaCart
Programming with parallel skeletons is an attractive framework because it encourages programmers to develop efficient and portable parallel programs. However, extracting parallelism from sequential specifications and constructing efficient parallel programs using the skeletons are still difficult tasks. In this paper, we propose an analytical approach to transforming recursive functions on general recursive data structures into compositions of parallel skeletons. Using static slicing, wehave defined a classification of subexpressions based on their data-parallelism. Then, skeleton-based parallel programs are generated from the classification. To extend the scope of parallelization, wehave adopted more general parallel skeletons which do not require the associativity of argument functions. In this way, our analytical method can parallelize recursive functions with complex data flows. Keywords: data parallelism, parallelization, functional languages, parallel skeletons, data flow analysis, static slice 1.
Deriving Sorting Algorithms by José Bacelar Almeida and Jorge Sousa Pinto
, 2006
"... This paper shows how 3 well-known sorting algorithms can be derived by similar sequences of transformation steps from a common specification. Each derivation uses an auxiliary algorithm based on insertion into an intermediate structure. The proofs given involve both inductive and coinductive reasoni ..."
Abstract
- Add to MetaCart
This paper shows how 3 well-known sorting algorithms can be derived by similar sequences of transformation steps from a common specification. Each derivation uses an auxiliary algorithm based on insertion into an intermediate structure. The proofs given involve both inductive and coinductive reasoning, which are here expressed in the same program calculation framework, based on unicity properties. Deriving Sorting Algorithms

