Results 1 
4 of
4
An Analytical Method For Parallelization Of Recursive Functions
, 2001
"... 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

Cited by 7 (0 self)
 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, we have defined a classification of subexpressions based on their dataparallelism. Then, skeletonbased parallel programs are generated from the classification. To extend the scope of parallelization, we have 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.
Parallel Algorithms for the Hamiltonian Cycle and Hamiltonian Path Problems in Semicomplete Bipartite Digraphs
, 1998
"... We give an O(log 4 n)time O(n 2 )processor CRCW PRAM algorithm to find a hamiltonian cycle in a strong semicomplete bipartite digraph, B, provided that a factor of B (i.e. a collection of vertex disjoint cycles covering the vertex set of B) is computed in a preprocessing step. The factor is f ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We give an O(log 4 n)time O(n 2 )processor CRCW PRAM algorithm to find a hamiltonian cycle in a strong semicomplete bipartite digraph, B, provided that a factor of B (i.e. a collection of vertex disjoint cycles covering the vertex set of B) is computed in a preprocessing step. The factor is found (if it exists) using a bipartite matching algorithm, hence placing the whole algorithm in the class RandomNC. We show that any parallel algorithm which can check the existence of a hamiltonian cycle in a strong semicomplete bipartite digraph in time O(r(n)) using p(n) processors can be used to check the existence of a perfect matching in a bipartite graph in time O(r(n) + n 2 =p(n)) using p(n) processors. Hence, our problem belongs to the class NC if and only if perfect matching in bipartite graphs belongs to NC. We also consider the problem of finding a hamiltonian path in a semicomplete bipartite digraph. 1 Introduction A semicomplete digraph is a digraph with no pair of nonad...
Parallel Algorithm for Shortest Pairs of EdgeDisjoint Paths
"... Let G = (V , E) be a directed graph having a nonnegative cost associated with each edge. Let s 2 V be a special vertex called the source and W V be a set of other vertices called sinks in G. In this paper, a parallel algorithm is proposed for nding a pair of edgedisjoint paths from s to each p ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Let G = (V , E) be a directed graph having a nonnegative cost associated with each edge. Let s 2 V be a special vertex called the source and W V be a set of other vertices called sinks in G. In this paper, a parallel algorithm is proposed for nding a pair of edgedisjoint paths from s to each possible sink t 2 W such that the sum of the costs of the two paths is minimized. This algorithm has processor and time complexities same as those needed to nd shortest paths from s to all sinks t 2 W , i.e., n 3 = log n processors and O(log 2 n) time. 1
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 dataparallelism. Then, skeletonbased 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.