Results

**11 - 18**of**18**### A Type System for Parallelization

"... Parallel programming is becoming an important cornerstone of general computing. In addition, type systems have significant impact on program analysis. In this paper, we demonstrate an automated typebased system that soundly synthesizes parallel programs from sequential functional programs. Our t ..."

Abstract
- Add to MetaCart

Parallel programming is becoming an important cornerstone of general computing. In addition, type systems have significant impact on program analysis. In this paper, we demonstrate an automated typebased system that soundly synthesizes parallel programs from sequential functional programs. Our type inference system discovers the parallelizability property of a sequential program in a modular fashion, by exploring a ring structure among the program's operators. It handles self-recursive functions with accumulating parameters, as well as a class of non-linear mutual-recursive functions. We automatically generates parallel code in a mutumorphic form -- a succint model for parallel computation. Transforming into

### Experimentation, Theory

"... Tree contraction algorithms, whose idea was first proposed by Miller and Reif, are important parallel algorithms to implement efficient parallel programs manipulating trees. Despite their efficiency, the tree contraction algorithms have not been widely used due to the difficulties in deriving the tr ..."

Abstract
- Add to MetaCart

Tree contraction algorithms, whose idea was first proposed by Miller and Reif, are important parallel algorithms to implement efficient parallel programs manipulating trees. Despite their efficiency, the tree contraction algorithms have not been widely used due to the difficulties in deriving the tree contracting operations. In particular, the derivation of the tree contracting operations is much difficult when multiple values are referred and updated in each step of the contractions. Such computations often appear in dynamic programming problems on trees. In this paper, we propose an algebraic approach to deriving tree contraction programs from recursive tree programs, by focusing on the properties of commutative semirings. We formalize a new condition for implementing tree reductions with the tree contraction algorithms, and give a systematic derivation of the tree contracting operations. Based on it, we implemented a code generator for tree reductions, which has an optimization mechanism that can remove unnecessary computations in the derived parallel programs. As far as we are aware, this is the first step towards an automatic parallelization system for the development of efficient tree programs.

### B[count++] = A[i];

"... / * copy all bigger elements from A[1..n] into B[] */ count = 0; for (i=0; i<n; i++) { sumAfter = 0; for (j=i+1; j<n; j++) { sumAfter + = A[j]; if (A[i]> sumAfter) ..."

Abstract
- Add to MetaCart

/ * copy all bigger elements from A[1..n] into B[] */ count = 0; for (i=0; i<n; i++) { sumAfter = 0; for (j=i+1; j<n; j++) { sumAfter + = A[j]; if (A[i]> sumAfter)

### Abstract Parallel skeletons for manipulating general trees

, 2006

"... Trees are important datatypes that are often used in representing structured data such as XML. Though trees are widely used in sequential programming, it is hard to write efficient parallel programs manipulating trees, because of their irregular and ill-balanced structures. In this paper, we propose ..."

Abstract
- Add to MetaCart

Trees are important datatypes that are often used in representing structured data such as XML. Though trees are widely used in sequential programming, it is hard to write efficient parallel programs manipulating trees, because of their irregular and ill-balanced structures. In this paper, we propose a solution based on the skeletal approach. We formalize a set of skeletons (abstracted computational patterns) for rose trees (general trees of arbitrary shapes) based on the theory of Constructive Algorithmics. Our skeletons for rose trees are extensions of those proposed for lists and binary trees. We show that we can implement the skeletons efficiently in parallel, by combining the parallel binary-tree skeletons for which efficient parallel implementations are already known. As far as we are aware, we are the first who have formalized and implemented a set of simple but expressive parallel skeletons for rose trees. Ó 2006 Elsevier B.V. All rights reserved.

### unknown title

"... ABSTRACT Parallel programs can be synthesized from sequential functional programs via a technique known as context preservation[6]. This technique has significantly broadened the set of sequential programs eligible for parallelization. However, the ability to automatically detect functions which adm ..."

Abstract
- Add to MetaCart

ABSTRACT Parallel programs can be synthesized from sequential functional programs via a technique known as context preservation[6]. This technique has significantly broadened the set of sequential programs eligible for parallelization. However, the ability to automatically detect functions which admit context-preservation property has not been investigated. In this paper, we propose a type-based approach to automatically detect a class of functions with context-preservation property. In essence, our type system aims to detect an extended-ring property of the subject program, from which context preservation is guaranteed. Through this type system, a sequential program can be automatically transformed to fit into a skeletal form, which can then be parallelized. In contrast to the usual type system that are constructed from the evaluation rules of the underlying language, our type system is constructed from a set of meta-rules that are used to transform programs into skeletal forms suitable for parallelization. 1. INTRODUCTION Systematic parallelization of sequential programs remains a major challenge in parallel computing. Particularly challenging are programs which make use of distributive and associative properties in order to restructure into divideand-conquer style parallelism.

### Mathematical Engineering

- in Proc. Annual European Conference on Parallel Processing (Euro-Par 2003), LNCS 2790 (Springer-Verlag
, 2003

"... Trees are useful data structures, but to design e#cient parallel programs over trees is known to be more di#cult than to do over lists. Although several important tree skeletons have been proposed to simplify parallel programming on trees, few studies have been reported on how to systematically u ..."

Abstract
- Add to MetaCart

Trees are useful data structures, but to design e#cient parallel programs over trees is known to be more di#cult than to do over lists. Although several important tree skeletons have been proposed to simplify parallel programming on trees, few studies have been reported on how to systematically use them in solving practical problems; it is neither clear how to make a good combination of skeletons to solve a given problem, nor obvious how to find suitable operators used in a single skeleton. In this paper, we report our first attempt to resolve these problems, proposing two important transformations, the tree di#usion transformation and the tree context preservation transformation. The tree di#usion transformation allows one to use familiar recursive definitions to develop his parallel programs, while the tree context preservation transformation shows how to derive associative operators that are required when using tree skeletons. We illustrate our approach by deriving an e#cient parallel program for solving a nontrivial problem called the party planning problem, the tree version of the famous maximum-weight-sum problem.

### Enhanced Parallelization via Constraints

, 1997

"... Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes are somewhat narrow in scope, as the properties which enable parallelism are difficult to capture via ad-hoc schemes. We propose a more systematic approa ..."

Abstract
- Add to MetaCart

Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes are somewhat narrow in scope, as the properties which enable parallelism are difficult to capture via ad-hoc schemes. We propose a more systematic approach to parallelization based on the notion of preserving the context of recursive sub-terms. This approach can be used to derive a class of divide-andconquer programs. To enhance the methodology further, we advocate the use of required constraints to widen the class of programs that could be handled. A unique feature of our approach is that it supports both reusability and efficiency. In particular, both general and specialised contraints are gathered to make this marriage possible.

### Parallel Processing Letters, ❢c World Scientific Publishing Company SYSTEMATIC DERIVATION OF TREE CONTRACTION ALGORITHMS ∗

, 2004

"... While tree contraction algorithms play an important role in efficient tree computation in parallel, it is difficult to develop such algorithms due to the strict conditions imposed on contracting operators. In this paper, we propose a systematic method of deriving efficient tree contraction algorithm ..."

Abstract
- Add to MetaCart

While tree contraction algorithms play an important role in efficient tree computation in parallel, it is difficult to develop such algorithms due to the strict conditions imposed on contracting operators. In this paper, we propose a systematic method of deriving efficient tree contraction algorithms from recursive functions on trees. We identify a general recursive form that can be parallelized into efficient tree contraction algorithms, and present a derivation strategy for transforming general recursive functions to the parallelizable form. We illustrate our approach by deriving a novel parallel algorithm for the maximum connected-set sum problem on arbitrary trees, the tree-version of the well-known maximum segment sum problem.