## Efficient Compilation of High-Level Data Parallel Algorithms (1994)

### Cached

### Download Links

- [www.cs.washington.edu]
- [ftp.cis.upenn.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | In Proceedings of the ACM Symposium on Parallel Algorithms and Architectures |

Citations: | 15 - 2 self |

### BibTeX

@INPROCEEDINGS{Suciu94efficientcompilation,

author = {Dan Suciu and Val Tannen},

title = {Efficient Compilation of High-Level Data Parallel Algorithms},

booktitle = {In Proceedings of the ACM Symposium on Parallel Algorithms and Architectures},

year = {1994},

pages = {57--66},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present a high-level parallel calculus for nested sequences, NSC, offered as a possible theoretical "core" of an entire class of collection-oriented parallel languages. NSC is based on while-loops as opposed to general recursion. A formal, machine independent definition of the parallel time complexity and the work complexity of programs in NSC is given. Our main results are: (1) We give a translation method for a particular form of recursion, called map-recursion, into NSC, that preserves the time complexity and adds an arbitrarily small overhead to the work complexity, and (2) We give a compilation method for NSC into a very simple vector parallel machine, which preserves the time complexity and again adds an arbitrarily small overhead to the work complexity. 1 Introduction There are many advantages to programming in a high-level language. However, while sequential algorithms are most of the time designed and evaluated in reasonably high-level terms, the situation with parallel ...

### Citations

1571 | The Definition of Standard ML
- Milner, Harper
- 1990
(Show Context)
Citation Context ...nt's fast mergesort algorithm [Val75, Jaj92], see the program in figures 1, 2, 3. As we have explained at the beginning of section 4 we are free to use block structure (we choose a syntax close to ML =-=[MTH90]-=-). More importantly, in view of theorem 4.2 we are free to use maprecursive definitions, or other recursive schemas which are convertible to map-recursion. The main function mergesort in figure 1 has ... |

1316 |
Introduction to Parallel Algorithms and Architectures
- Leighton
- 1992
(Show Context)
Citation Context ...can be implemented in O(1) steps. The append operation V i / V j @Vk only requires a monotone routing of the values in Vk . This can be done in O(log n) steps, using the greedy routing algorithm, see =-=[Lei92]-=-, pp. 534. bm route is implemented by a monotone routing, and takes O(log n) steps with the greedy algorithm. For sbm route , suppose first that length(V j ) = length(V l ) = 1, i.e. sbm route compute... |

646 |
An Introduction to Parallel Algorithms
- Jaja
(Show Context)
Citation Context ...keeping with the tenets of data parallelism [HS86], NSC's only parallel operation is map (apply-to-all). We give a precise high-level definition of parallel complexity (in the work and time framework =-=[Jaj92]-=-) for NSC programs. Blelloch [Ble90, Ble93] gives convincing evidence that nested map's on nested sequences (what he calls nested parallelism) can enhance the expressiveness of a data parallel languag... |

302 | Natural semantics
- Kahn
- 1987
(Show Context)
Citation Context ... size(C i ). We use true and false as abbreviations for in 1(()) and in 2 (()). Next, we define the evaluation of some term (also called the operational semantics) in a natural semantics style, as in =-=[Kah87]-=-. This consists of rules which simultaneously define a binary relation M + C meaning that the term M evaluates to the S-object C and a ternary relation F (C) + C 0 meaning that the function F applied ... |

262 |
Vector Models for Data-Parallel Computing
- Blelloch
- 1990
(Show Context)
Citation Context ...ly preserving the time complexity and adding an arbitrarily small overhead to the work complexity (theorem 4.2). It even turns out that some recursive programs which are not contained in the sense of =-=[Ble90]-=- are in fact map-recursive. The major benefit however is that we can compile NSC without the need for an unbounded stack of vectors, as general recursion would require. Avoiding the stack is a good id... |

234 |
Data parallel algorithms
- Hillis, Steele
- 1986
(Show Context)
Citation Context ..., for nested sequence calculus (section 3). We regard NSC as a possible theoretical "core" of an entire class of collection-oriented parallel languages. In keeping with the tenets of data pa=-=rallelism [HS86]-=-, NSC's only parallel operation is map (apply-to-all). We give a precise high-level definition of parallel complexity (in the work and time framework [Jaj92]) for NSC programs. Blelloch [Ble90, Ble93]... |

137 | Nesl: A nested data-parallel language - Blelloch - 1992 |

130 | Naturally embedded query languages
- BREAZU-TANNEN, BUNEMAN, et al.
- 1992
(Show Context)
Citation Context ...e functions of type t ! B and t ! t respectively. ffl Constructs associated with collections (these constructs work on sequences but also make sense for other kinds of collections, like sets and bags =-=[BBW92]-=-): [], [M ] , M@N , flatten(M ), length(M ), get(M ), and map(F ). Here [] denotes the empty sequence, [M ] is the singleton sequence, and @ is the append operator. Next, flatten ([x0 ; : : : ; xn\Gam... |

122 | On the power of languages for the manipulation of complex objects
- Abiteboul, Beeri
- 1988
(Show Context)
Citation Context ...s to prove, by induction, properties about the functions expressible in SA, e.g. lemma 7.2. SA stands in the same relationship to NSA as the relational algebra stands to the nested relational algebra =-=[AB88]-=-. Similar to NSA, SA is a variable-free language, containing some primitive functions, and a set of rules for combining them in order to get more complex functions. We briefly describe SA below. A com... |

106 | Parallelism in Comparison Problems - Valiant - 1985 |

91 | Compiling collection-oriented languages onto massively parallel computers
- Blelloch, Sabot
- 1990
(Show Context)
Citation Context ...en the theoretical design of parallel algorithms and practical programming on massively parallel computers. In the case of data parallelism, the work of Blelloch [Ble90, Ble93] and Blelloch and Sabot =-=[BS90]-=- has made substantial progress on this issue. For example, if we manage to represent an algorithm in a high-level language such as NESL with a certain work and time (a.k.a. element or step) complexity... |

64 | Logical and computational aspects of programming with sets/bags/lists - Breazu-Tannen, Subrahmanyam - 1991 |

62 |
An abstract framework for environment machines
- Curien
- 1991
(Show Context)
Citation Context ...ete set of rules is given in [ST94] where we explain a technical complication caused by the presence of bound variables (lambda abstraction) in the language, namely the need to use environments as in =-=[Cur88]-=-. Thus, to evaluate some closed term M , one has to construct a proof tree, whose nodes are labeled with rules of the operational semantics, such that its root is labeled with some rule with conclusio... |

21 | Abiteboul and Catriel Beeri. The power of languages for the manipulation of complex values - Serge - 1995 |

17 | A Query Language for NC
- Suciu, Tannen
- 1994
(Show Context)
Citation Context ...ications to databases and this naturally brings up important complexity issues. In a previous paper we have shown a tight connection between a related data parallel language for sets and the class NC =-=[SBT94]-=-. This in turn has led us to the more practical questions addressed here. 2 The Target: Bounded Vector Random Access Machines To compile the higher level programming language described in section 3 on... |

13 |
and Uzi Vishkin. Simulation of parallel random access machines by circuits
- Stockmeyer
- 1984
(Show Context)
Citation Context ...n) processors, and NSC-TIME-WORK(T (n); W (n)) the set of functions expressible in NSC with time and work complexitysT (n); W (n). Proposition 6.1 For T (n); W (n), that are suitable (in the sense of =-=[SV84]-=-), we have: CRCW-TIME-PROC(O(T (n)); O(W (n))) ` NSC-TIME-WORK(O(T (n)); W (n) O(1) ) More, we get equality, if in the definition of NSC we restrict the arithmetic operations to the set \Sigma = f+; :... |

8 |
An algebraic model for divideand-conquer and its parallelism
- Mou, Hudak
- 1988
(Show Context)
Citation Context ...bove. Suppose the types are: g : s ! t, d1 ; d2 : s ! s, and c : t \Theta t ! t. Not surprisingly, g can be expressed in NRA, without recursion, in two steps, called divide phase and combine phase in =-=[MH88]-=-: Divide Phase Start with the singleton sequence y = [x] of type [s], and apply repeatedly the function flatten ffi map(x:if p(x) then [x] else [d1 (x); d2 (x)]) having the type [s] ! [s], until all i... |

3 |
Data optimization: allocation of arrays to reduce communication on SIMD machines
- Steele
- 1990
(Show Context)
Citation Context ...BVRAM in order to compile efficiently a high-level language like NSC. This is of importance in view of the high cost of implementing a general permutation on existing massively parallel architectures =-=[KLGLS90]-=-. As promised, we will give a high-level definition of parallel time complexity T and work complexity W for NSC programs, in an machine independent way. The idea is for the parallel complexity of a pr... |