## Powerlist: a structure for parallel recursion (1994)

### Cached

### Download Links

- [www.cs.utexas.edu]
- [www.cs.utexas.edu]
- [www.cs.utexas.edu]
- [ftp.cs.utexas.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | ACM Transactions on Programming Languages and Systems |

Citations: | 60 - 2 self |

### BibTeX

@ARTICLE{Misra94powerlist:a,

author = {Jayadev Misra},

title = {Powerlist: a structure for parallel recursion},

journal = {ACM Transactions on Programming Languages and Systems},

year = {1994},

volume = {16},

pages = {1737--1767}

}

### Years of Citing Articles

### OpenURL

### Abstract

Many data parallel algorithms – Fast Fourier Transform, Batcher’s sorting schemes and prefixsum – exhibit recursive structure. We propose a data structure, powerlist, that permits succinct descriptions of such algorithms, highlighting the roles of both parallelism and recursion. Simple algebraic properties of this data structure can be exploited to derive properties of these algorithms and establish equivalence of different algorithms that solve the same problem.

### Citations

1631 | The Definition of Standard ML
- Milner, Tofte, et al.
- 1997
(Show Context)
Citation Context ...braic properties of powerlists permit us to deduce properties of these algorithms employing structural induction. 2 Powerlist The basic data structure on which recursion is employed (in LISP[16] or ML=-=[17]-=-) is a list. A list is either empty or it is constructed by concatenating an element to a list. (We restrict ourselves to finite lists throughout this paper.) We call such a list linear (because the l... |

1377 |
Introduction to parallel algorithms and architectures: Arrays, trees, hypercubes
- Leighton
- 1992
(Show Context)
Citation Context ...f their indices differ in exactly one dimension, and by 1 modulo N, where N is the size of that dimension. (This is called “wrap around” adjacency.) The following embedding algorithm is described in [=-=Leighton 1992-=-, Section 3.1.2]; it works as follows. If the array has only one dimension with 2 m elements, then we create a gray code sequence, G m (see Section 4.3). Abbreviate G m by g. We place the i th item of... |

1363 | The Essence of Functional Programming
- Wadler
- 1992
(Show Context)
Citation Context ...length 1 containing a scalar hh2ii powerlist of length 1 containing a powerlist of length 1 of scalar h i not a powerlist h[ ]i powerlist of length 1 containing the empty linear list h h[2] [3 4 7]i h=-=[4]-=- [ ]i i powerlist of length 2, each element of which is a powerlist of length 2, whose elements are linear lists of numbers h h0 4i h1 5i h2 6i h3 7ii a representation of the matrix 0 1 2 3 4 5 6 7 wh... |

778 |
Parallel Program Design: A Foundation
- Chandy, Misra
- 1988
(Show Context)
Citation Context ...uted in O(N log N) sequential steps or, O(log N) parallel steps using O(N) processors. The compactness of this description of FFT is in striking contrast to the usual descriptions; for instance, see [=-=Chandy and Misra 1988-=-, Section 6.13]. The compactness can be attributed to the use of recursion and the avoidance of explicit indexing of the elements by employing | and ⊲⊳ . FFT illustrates the need for including both | ... |

759 |
An algorithm for the machine calculation of complex Fourier series
- Cooley, Tukey
- 1965
(Show Context)
Citation Context ...ent of v; this takes time O(N 2 ) where p; v have length N . Since w(N ) is of a special form the Fourier transform can be computed in O(N log N ) steps, using the the Fast Fourier Transform algorithm=-=[8]-=-. This algorithm also admits an efficient parallel implemntation, requiring O(log N ) steps on O(N ) processors. We derive the FFT algorithm below using the following two properties of w(N ). For each... |

552 | Sorting networks and their applications
- Batcher
- 1968
(Show Context)
Citation Context ...e complexity of IFT is same as that of the FFT. 4.6 Batcher Sorting Networks In this section, we develop some elementary results about sorting and discuss two remarkable sorting methods due to Batcher=-=[3]-=-. We find it interesting that ./ (not j ) is the preferred operator in discussing the principles of parallel sorting. Henceforth, a list is sorted means that its elements are arranged in ascending ord... |

480 |
Can programming be liberated from the von neumann style? a functional style and its algebra of programs
- Backus
- 1978
(Show Context)
Citation Context ... powerlist of length 1 containing a scalar hh2ii powerlist of length 1 containing a powerlist of length 1 of scalar h i not a powerlist h[ ]i powerlist of length 1 containing the empty linear list h h=-=[2]-=- [3 4 7]i h[4] [ ]i i powerlist of length 2, each element of which is a powerlist of length 2, whose elements are linear lists of numbers h h0 4i h1 5i h2 6i h3 7ii a representation of the matrix 0 1 ... |

344 |
The calculi of lambda conversion
- Church
- 1941
(Show Context)
Citation Context ...), etc., are well defined. Hence, τ((p | q) | ′ (u | v)) = τ((p | ′ u) | (q | ′ v)) Crucial to the above proof is the fact that | and | ′ commute; this is reminiscent of the “Church-Rosser Property” [=-=Church 1941-=-] in term rewriting systems. Commutativity is so important that we discuss it further in the next subsection. It is easy to show that τ (p ⊲⊳ q) = (τ p) ⊲⊳ ′ (τ q) and τ (u ⊲⊳ ′ v) = (τ u) ⊲⊳ (τ v) Tr... |

281 | Parallel prefix computation
- Ladner, Fischer
- 1980
(Show Context)
Citation Context ...me level then d is unchanged. It can be shown that after completion of the computation at level (log 2 (len L)), processor i holds the i th element of (ps L). Another scheme, due to Ladner and Fischer=-=[15]-=-, first applies \Phi to adjacent elements x 2i ; x 2i+1 to compute the list hx 0 \Phi x 1 ; :: x 2i \Phi x 2i+1 ; ::i. This list has half as many elements as the original list; its prefix sum is then ... |

270 |
Vector Models for Data-Parallel Computing
- Blelloch
- 1990
(Show Context)
Citation Context ...em may be seen in [25]. They have constructs similar to tie and zip, though they allow unbalanced decompositions of lists. An effective method of programming with vectors has been proposed by Blelloch=-=[5, 6]. He propo-=-ses a small set of "vector-scan" instructions that may be used as primitives in describing parallel algorithms. Unlike our method he is able to control the division of the list and the numbe... |

260 |
Sorting and Searching, Volume 3 of the Art of Computer Programming, Addison-Wesley
- Knuth
- 1973
(Show Context)
Citation Context ...n, we develop certain elementary facts about sorting and prove the correctness of bm. 15 Elementary Facts about Sorting We consider only "compare and swap" type sorting methods. It is known =-=(see Knuth[13]-=-) that such a sorting scheme is correct iff it sorts lists containing 0's and 1's only. Therefore, we restrict our discussion to powerlists containing 0's and 1's, only. For a powerlist p, let (z p) b... |

233 |
A Programming Language
- Iverson
- 1962
(Show Context)
Citation Context ...he reverse of the right half in the two component hypercubes of a larger hypercube. 6 Remarks Related Work Applying uniform operations on aggregates of data have proved to be extremely powerful in APL=-=[9]; see-=- Backus[2] and Bird[4] for algebras of such operators. One of the earliest attempts at representing data parallel algorithms is in Preparata and Vuillemin[21]. In their words, "an algorithm... pe... |

224 |
The cube-connected cycles: a versatile network for parallel computation
- Preparata, Vuillemin
- 1979
(Show Context)
Citation Context ...proved to be extremely powerful in APL[9]; see Backus[2] and Bird[4] for algebras of such operators. One of the earliest attempts at representing data parallel algorithms is in Preparata and Vuillemin=-=[21]. In their-=- words, "an algorithm... performs a sequence of basic operations on pairs of data that are successively 2 (k\Gamma1) ; 2 (k\Gamma2) ; ::; 2 0 = 1 locations apart". An algorithm operating on ... |

185 | Chandy and Jayadev Misra. Parallel Program Design: A Foundation - Mani - 1988 |

144 | NESL: A Nested Data-Parallel Language
- Blelloch
- 1993
(Show Context)
Citation Context ...em may be seen in [25]. They have constructs similar to tie and zip, though they allow unbalanced decompositions of lists. An effective method of programming with vectors has been proposed by Blelloch=-=[5, 6]. He propo-=-ses a small set of "vector-scan" instructions that may be used as primitives in describing parallel algorithms. Unlike our method he is able to control the division of the list and the numbe... |

103 |
An overview of Miranda
- Turner
- 1990
(Show Context)
Citation Context ...list. rev hxi = hxi rev (p j q) = (rev q) j (rev p) The case analysis, as for linear lists, is based on the length of the argument powerlist. We adopt the pattern matching scheme of ML[17] and Miranda=-=[24]-=- 2 to deconstruct the argument list into its components, p and q, in the recursive case. Deconstruction, in general, uses the operators j and ./ ; see Section 3. In the definition of rev, we have used... |

102 |
Parallel algorithms for shared memory machines, Handbook of Theoretical Computer
- Karp, Ramachandran
- 1990
(Show Context)
Citation Context ...in hypercubes, etc.—have surprisingly concise descriptions using powerlists. Simple algebraic properties of powerlists 1 A notable exception is the recursive description of a prefix sum algorithm in [=-=Karp and Ramachandran 1990-=-]. Author’s address: Jayadev Misra, Department of Computer Sciences, The University of Texas at Austin, Austin, Texas 78712, (512) 471-9550, misra@cs.utexas.edu This material is based in part upon wor... |

83 |
Circuit design in Ruby
- Jones, Sheeran
- 1990
(Show Context)
Citation Context ...strings in the sequence are considered consecutive.) Standard Gray code sequences for n = 0; 1; 2; 3 are shown in Figure 3. We represent the n-bit 10 n = 0 h[ ]i n = 1 h[0] [1]i n = 2 h[00] [01] [11] =-=[10]-=-i n = 3 h[000] [001] [011] [010] [110] [111] [101] [100]i Figure 3: Standard Gray code sequence for n, n = 0; 1; 2; 3 strings by linear lists of length n and a Gray code sequence by a powerlist whose ... |

39 |
Connection machine lisp: fine-grained parallel symbolic processing
- Steele, Hillis
- 1986
(Show Context)
Citation Context ...utermost dimension is numbered 0; therefore writing ./ , for instance, without primes, simply zips two lists). The operator for pointwise application also appears in Backus[2] and in Steele and Hillis=-=[23]-=-. Common special cases for the binary operator, op, are j and ./ and their pointwise application operators. In particular, writing ./ m to denote ./ m z --- -- 00 : : : 0 , we define, ./ 0 = ./ and fo... |

31 |
and Vijaya Ramachandran. Parallel algorithms for shared-memory machines
- Karp
- 1990
(Show Context)
Citation Context ...ch Program under Grant No. 003658--219 and by the National Science Foundation Award CCR-- 9111912. 1 A notable exception is the recursive description of a prefix sum algorithm in Karp and Ramachandran=-=[12]-=-. 1 A data structure, powerlist, is proposed in this paper that highlights the role of both parallelism and recursion. Many of the known parallel algorithms--- FFT, Batcher Merge, Prefix Sum, embeddin... |

16 |
An Algebraic Model for Divide-and-Conquer Algorithms and its Parallelism
- Mou, Hudak
(Show Context)
Citation Context ...ction structure. Their style of programming was imperative. It is not easy to apply algebraic manipulations to such programs. Their programming paradigm fits in well within our notation. Mou and Hudak=-=[19]-=- and Mou[20] propose a functional notation to describe divide and conquer-type parallel algorithms. Their notation is a vast improvement over Preparata and Vuillemin's in that changing from an imperat... |

12 |
Divacon: A parallel language for scientific computing based on divide-and-conquer
- Mou
- 1990
(Show Context)
Citation Context ...ure. Their style of programming was imperative. It is not easy to apply algebraic manipulations to such programs. Their programming paradigm fits in well within our notation. Mou and Hudak[19] and Mou=-=[20]-=- propose a functional notation to describe divide and conquer-type parallel algorithms. Their notation is a vast improvement over Preparata and Vuillemin's in that changing from an imperative style to... |

9 |
M.: Automated reasoning about parallel algorithms using powerlists
- Kapur, Subramaniam
- 1995
(Show Context)
Citation Context ...irst strings in the sequence are considered consecutive.) Standard Gray code sequences for n = 0; 1; 2; 3 are shown in Figure 3. We represent the n-bit 10 n = 0 h[ ]i n = 1 h[0] [1]i n = 2 h[00] [01] =-=[11]-=- [10]i n = 3 h[000] [001] [011] [010] [110] [111] [101] [100]i Figure 3: Standard Gray code sequence for n, n = 0; 1; 2; 3 strings by linear lists of length n and a Gray code sequence by a powerlist w... |

7 | Verifying adder circuits using powerlists
- Adams
- 1994
(Show Context)
Citation Context ...n. (The last and the first strings in the sequence are considered consecutive.) Standard Gray code sequences for n = 0; 1; 2; 3 are shown in Figure 3. We represent the n-bit 10 n = 0 h[ ]i n = 1 h[0] =-=[1]-=-i n = 2 h[00] [01] [11] [10]i n = 3 h[000] [001] [011] [010] [110] [111] [101] [100]i Figure 3: Standard Gray code sequence for n, n = 0; 1; 2; 3 strings by linear lists of length n and a Gray code se... |

6 |
Mapping powerlists onto hypercubes
- Kornerup
- 1994
(Show Context)
Citation Context ...ion is to devise compilation strategies for mapping programs (written in the powerlist notation) to specific architectures. The architecture that is the closest conceptually is the hypercube. Kornerup=-=[14]-=- has developed certain strategies whereby each parallel step in a program is mapped to a constant number of local operations and communications at a hypercube node. Combinational circuit verification ... |

4 |
A divide-and-conquer method of solving tridiagonal systems on hypercube massively parallel computers
- Wang, Mou
- 1991
(Show Context)
Citation Context ...o a functional style of programming allows more succinct expressions and the possibility of algebraic manipulations; the effectiveness of this programming style on a scientific problem may be seen in =-=[25]-=-. They have constructs similar to tie and zip, though they allow unbalanced decompositions of lists. An effective method of programming with vectors has been proposed by Blelloch[5, 6]. He proposes a ... |

4 |
Pulse code communication, U.S. Patent 2632058
- Gray
- 1953
(Show Context)
Citation Context ...ction applied to ⊕ and [a0a1 . . . an] yields (a0 ⊕ a1 ⊕ . . . ⊕ an). This function over powerlists is defined by red ⊕ 〈x〉 = x red ⊕ (p | q) = (red ⊕ p) ⊕ (red ⊕ q) 4.3 Gray Code Gray code sequence [=-=Gray 1953-=-] for n, n ≥ 0, is a sequence of 2 n n-bit strings where the consecutive strings in the sequence differ in exactly one bit position. (The last and the first strings in the sequence are considered cons... |

2 | Connection machine lisp: Fine-grained parallel symbolic processing - Jr, Hillis - 1986 |

1 | Mapping powerlists onto hypercubes (in preparation - Kornerup - 1994 |