69 citations found. Retrieving documents...
G. Blelloch and G. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8(2), Feb. 1990.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

An Approach to Fast Arrays in Haskell - Chakravarty, Keller (2002)   (Correct)

....but only illustrate some basic ideas when discussing the implementation of smvm. 3.3 Code Vectorisation The essential idea behind code vectorisation is to lift code that operates in individual elements to code that process entire arrays in bulk. The approach that we take was introduced in [BS90,CK00] Here we will explain the core idea at the example of a simple functional language in a way that vectorisation can be performed manually. The grammar of the language is given in Figure 4. We have only top level function de nitions and array comprehensions without multiple generators or ....

Guy E. Blelloch and Gary W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119-134, 1990.


Piecewise Execution of Nested Data-Parallel Programs - Palmer, Prins, Chatterjee.. (1995)   (2 citations)  (Correct)

....nonrectangular aggregates. The expressive benefits of nested data parallelism were long ago recognized by high level languages such as SETL [19] FP [2] and APL2, but practical parallel execution of such expressions was not achieved until Blelloch and Sabot introduced the flattening technique [4]. Flattening combines all the independent operations in nested apply to all constructs into large data parallel operations. Both NESL [5] and Proteus [13] are high level, nested data parallel languages that use this technique to provide architecture independence by implementing the data parallel ....

....versions. In this example we have four processors and have set D = 5, 2, 7, 3] For the serialized outer iterator code, if the size of T exceeds the number of processors, we must use multiple steps to complete the computation using virtual processors (see Fig. lb) Serialized Outer Iterator 2 5 [1,2,3,4,5] [120, 1 2 [1,2] 120,2, 2 7 [1,2,3,4,5,6,7] 120,2,5040, 1 3 [1,2,3] 120,2,5040,6] 1 4 [1,2,3,4 [ 1 4 5] 1,2] 1 [120,2, 1 4 2,3,4,5 [120,2, 1 4 6,7] 1,2 [120,2,5040, 1 4 3] 120,2,5040,6] Table 1. Comparison of Approaches to Partial Serialization of Factorial Program ....

[Article contains additional citation context not shown here]

G. Blelloch and G. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8(2), Feb. 1990.


Practical Structured Parallelism Using BMF - Crooke (1998)   (Correct)

....the next interval and allow them to catch up. A process can be opted out of the synchronization system to allow it to run freely on a longer sequential task, while still being able to communicate with the rest of the program. 2.2. 3 Parallel Scans The work on parallel list scans due to Blelloch [6] bears a close resemblance to the use of the Bird Meertens Formalism as a model for parallel computation. Performance studies [38] done in this paradigm bear out the assertion that list data structures can be used efficiently in parallel computing if appropriately implemented. The main contrast in ....

....performed 6.3. 2 Data Declarations The declarations for the main data structures are: typedef struct float x,y; node; typedef struct int n1,n2,n3; element; typedef struct float x,y; load; 107 typedef struct int xfix,yfix; constraint; typedef struct float coeff[6][6] elstiff; node list coords[MAXNODES] element list lnods [MAXELEMS] load list aload[MAXNODES] constraint list nfix[MAXNODES] elstiff list smatrices[MAXELEMS] float list list ss[2 MAXNODES] 2 MAXNODES] float ym,pr,t; float ec1,ec2,ec12; A number of types and data structures have ....

[Article contains additional citation context not shown here]

Guy E. Blelloch and Gary W. Sabot. "Compiling Collection-Oriented Languages onto Massively Parallel Computers". Journal of Parallel and Distributed Computing, 8:119--134, 1990.


MAPS: An Efficient Parallel Language for Scientific.. - Williams, Karmesin, Messina   (1 citation)  (Correct)

....time as this essentially old code is rewritten, bugged and debugged time and again. 2.2. Collection oriented Languages There are now many languages in various stages of development which handle arrays of data more effectively, such as High Performance Fortran[6] C [14] APL[5] Paralation Lisp[1], C [9] pC [10] LPAR[8] The code a=3 b can now be interpreted as multiplying each member of the array b by 3 and setting it to the corresponding element of the array a. These languages are a great help in simplifying the writing, understanding, or debugging of software, as well as allowing ....

G. E. Blelloch and G. W. Sabot, Compiling collection-oriented languages onto massively parallel computers, J. Par. and Distr. Computing, 8 (1990) 119.


Functional Array Fusion - Chakravarty, Keller (2001)   (4 citations)  (Correct)

....code [2, 12, 26, 14] This may be so, because of the traditional focus on regular problems in array languages. Another reason is probably that irregular algorithms are, independent of the language, much harder to implement eciently, especially on parallel architectures. However, Blelloch Sabot [7] observed that every irregular algorithm can be transformed into a semiregular one that operates on a attened representation of the original nested structures and uses explicit structural information to represent the irregularity of the original data. We have previously shown how this technique, ....

....containing arrays of basic type only and (b) rewrites nested array iterations into 1 There is no conceptual reason for the special syntax. It is just a matter of presentation. a single, at iteration. This transformation is called attening and its rst formulation is due to Blelloch Sabot [7]. The bene t of the transformation is twofold: 1) Traversals over arrays of basic types can be implemented more e ciently due to cache e ects and, in case of lazy languages, opportunities for unboxing are increased; 2) it improves load balancing and data distribution in a parallel ....

[Article contains additional citation context not shown here]

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119-134, 1990.


How Portable is Nested Data Parallelism? - Chakravarty, Keller (1999)   (Correct)

....cost model [5] compared to at data parallelism, it simpli es coding irregular computations and data structures, such as sparse matrices. However, the machine independence and convenience for the programmer come at the cost of an increased challenge for the compiler writer. Blelloch Sabot [7, 3] introduced the so called attening transformation, which converts a nested parallel to an equivalent at program without reducing the parallelism speci ed in the original program. Despite the importance of this transformation, on its own, it is not su cient for producing good code for modern ....

....We argue in this paper that nested data parallelism can indeed be e ciently mapped to these architectures by a compilation technique that combines two program transformations with a portable communication library based on onesided communication. The two program transformations are attening [7, 3] and calculational fusion [19, 14] and they are central in tuning the code for varying processor architectures. Flattening transforms a nested data parallel program into a at data parallel program operating on long vectors. This makes the code better suited for vector processors and it is also ....

Guy E. Blelloch and Gary W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119134, 1990.


On the Distributed Implementation of Aggregate Data.. - Keller, Chakravarty (1999)   (3 citations)  (Correct)

....the kernel language and generates the control code that implements the source program with calls to the library implementing the parallel aggregate structure. As an example, consider the implementation of Nesl [1] In the case of Nesl, the simplifier implements the flattening transformation [5, 20, 16], which transforms all nested into flat data parallelism. In CMU s implementation of the language [4] the library language is called VCODE [2] it implements a variety of operations on simple and segmented vectors, which are always uniformly distributed over the available processing elements. In ....

....traversals that become obsolete as main memory access is reduced. Comparing sumSq1 and sumSq2 from Section 2, we find a speedup of about a factor four for large vectors see Figure 4 (left part) Fusion is particularly important for compiling nested parallelism, as the flattening transformation [5, 20, 16] leads to extremely fine grained code. Global optimizations. Concerning global optimizations, we measured the savings from reducing load balancing, i.e. a split agg ffi join agg combination (see previous section) In Figure 4 (right part) we applied a filter operation removing all elements ....

Guy E. Blelloch and Gary W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


More Types for Nested Data Parallel Programming - Chakravarty, Keller (2000)   (7 citations)  (Correct)

.... in addition, it comes with a language based parallel cost model [4] Todays most portable implementation technique for nested data parallelism is the attening transformation, a program transformation that maps nested to at parallelism and that was originally introduced by Blelloch and Sabot [5]. It leads to ecient implementations on a range of high performance architectures in both the purely functional [7] and the imperative case [9] Nevertheless, imperative languages face a serious problem here: Flattening is hard to automate in the presence of pointers and side e ects [9] Even ....

....and it did not allow separate compilation. In other words, programs were con ned to operate over arrays containing basic types like integer numbers and tuples thereof; furthermore, the source code of the complete program including all library modules had to be available during compilation [5]. Subsequent research extended attening to cover higher order functions [23] and recursive types [16] In this paper, we close the remaining gap to modern functional languages like Haskell and ML. We rephrase the transformation in the standard lambda calculus setting, extend it to the full range ....

[Article contains additional citation context not shown here]

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119-134, 1990.


CoPa: a Parallel Programming Language for Collections - Suciu, Tannen (1998)   (Correct)

....face a dilemma, due to the fact that stores are nested collections: should we distribute the stores uniformly, or rather their sales This dilemma is typical for nested collection, and for the associated nested parallelism. Our solution is based on a flattening technique using segment descriptors [12, 7]. It only works for sequences, not for sets or bags, so a part of this paper deals with encodings of (nested) sets and bags in terms of sequences. To illustrate the technique, suppose that our database has 6 stores, with 5; 6; 4; 0; 1; 2 sales respectively (for a total of 18) First we split ....

....parallel functional languages designed by Guy Blelloch [8] which comes with a high level definition of the parallel complexity. It is compiled into a Vector Random Access Machine (VRAM) by flattening nested parallelism and using segment descriptors (these techniques are described in earlier work [12, 7]) Our flattening technique uses the same segment descriptors for encoding nested sequences in terms of flat sequences. The complexitypreserving compilation improves over that of NESL in several ways: first it does not need a stack of sequences, it is more economical in the communication ....

[Article contains additional citation context not shown here]

Guy E Blelloch and Gary Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


Flattening is an Improvement (Extended Abstract) - Riely, Prins (2000)   (Correct)

....model. We are interested in showing that a transformed program improves execution cost, i.e. that its performance is approximately the same as that prescribed for the source program. This gives our work a different flavor from that of Sands. We study Blelloch and Sabot s flattening transformations [7], used to implement a nested data parallel programming language in terms of a vector based sublanguage. Nested parallelism allows the simple expression of parallel algorithms over irregular structures, such as nested lists. For examples, including many divide and conquer algorithms, see [3] The ....

....Let fv(A) be the set of free variables occuring in A. We identify expressions up to renaming of bound variables. In every binding construct, the variables x i must be unique. In every e iterator ## x # # xs : A#, A must be a source term. 3 The Transformations Flattening was introduced in [7] and is an important implementation strategy for NESL [6] and Proteus [24,20] Blelloch and Sabot described flattening as a set of transformations. A typical rule is the following rule for let expressions. Given that variable zs does not occur free in A, x # xs : let z #B in A] rewrites ....

[Article contains additional citation context not shown here]

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


Simplification of Sequence Expressions of Shift, Inject, Project.. - De Vito (1996)   (Correct)

....grid is a domain [1] Grids associate points from a domain with values. The grid type is an extension of the traditional array type, without the restriction that its index set be rectangular. A grid is also a collection. A collection is a data structure that represents a set of elements as a whole [2]. Collections have been advocated as a good support for data parallelism [3] So, grids suit to supercomputer applications. The shift, project, inject and transpose operators are associated to the grid space and are defined by: 8n 2 IN ; S 2 ZZ n ; S 0 2 Sigma n ; G 2 G n ffl shift(G; S) ....

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


Expressing Irregular Computations in Modern Fortran Dialects - Prins, Chatterjee, Simons (1998)   (4 citations)  (Correct)

.... compile time component of this approach is a program transformation that replaces FORALL constructs with dataparallel extensions of their bodies and restructures the representation of nested aggregate values into a form suitable for the efficient implementation of the data parallel operations [8, 26]. The run time component is a library of data parallel operations closely resembling HPFLIB, the standard library that accompanies HPF. A nested data parallel loop that has been flattened may perform a small multiplicative factor of additional work compared with a sequential implementation. ....

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8(2):119--134, Feb. 1990.


Flattening is an Improvement - Riely, Prins (2000)   (4 citations)  (Correct)

....model. We are interested in showing that a transformed program improves execution cost, i.e. that its performance is approximately the same as that prescribed for the source program. This gives our work a different flavor from that of Sands. We study Blelloch and Sabot s flattening transformations [7], used to implement a nested data parallel programming language in terms of a vector based sublanguage. Nested parallelism allows the simple expression of parallel algorithms over irregular structures, such as nested lists. For examples, including many divide and conquer algorithms, see [3] The ....

....is A. Let fv(A) be the set of free variables occuring in A. We identify expressions up to renaming of bound variables. In every binding construct, the variables x i must be unique. In every e iterator hex ( e xs : Ai, A must be a source term. 3 The Transformations Flattening was introduced in [7] and is an important implementation strategy for NESL [6] and Proteus [24,20] Blelloch and Sabot described flattening as a set of transformations. A typical rule is the following rule for let expressions. Given that variable zs does not occur free in A, x ( xs : let z (B in A] rewrites to: ....

[Article contains additional citation context not shown here]

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


Associative, Multiassociative, and Hybrid Processing (Extended .. - Herbordt, al. (1993)   (2 citations)  (Correct)

....Fellowship. 1 1 Introduction Multiassociativity is an additional level of parallelism: it is a flexible methodology for solving multiple problem instances simultaneously, and each using parallel associative processing. In its most general form, multiassociativity resembles nested parallelism [1] to depth 2. However, it has the advantage of being based solely on primitives that can be implemented efficiently (using available hardware with some software emulation) while yet being general enough to be useful as both an algorithmic and a programming paradigm. Multiassociative processing ....

G.E. Blelloch and G.W. Sabot (1990): "Compiling Collection-Oriented Languages onto Massively Parallel Computers," Journal of Parallel and Distributed Computing, 8, pp. 119-134.


An Object-Oriented Approach to Nested Data Parallelism - Sheffler, Chatterjee (1995)   (3 citations)  (Correct)

....The task of translating the foreach construct is the most complicated responsibility of the compiler, and we propose a localized code transformation that flattens the nested parallelism in the foreach construct. This new method differentiates our system from others supporting nested parallelism [6, 14]. No other project currently addresses the integration of nested data parallelism into an object oriented language. Support for nested parallelism requires that it be integrated into the language and run time system. Rather than designing a new language with data parallel semantics, we chose to ....

....for vectors so that vectors may be read and written just like any other type. Int x = 3; given an initial value v Float vx(size(5) defined, all values are 0 v Int vy; declared v Int vz = 1 2 3 4 5] initialized vector of vector of Int v v Int vv = 1 2] 3 4 5] [6 7 8]] vy cin; read from standard input The foreach construct is the basis for parallelism. In its body, the variables of the foreach argument list represent an individual element of the collection, and the statements are executed on the corresponding elements of each of the vectors. Vectors ....

[Article contains additional citation context not shown here]

Guy E. Blelloch and Gary W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


Expressing Irregular Computations in Modern Fortran Dialects - Prins, Chatterjee, Simons (1998)   (4 citations)  (Correct)

.... compile time component of this approach is a program transformation that replaces ###### constructs with dataparallel extensions of their bodies and restructures the representation of nested aggregate values into a form suitable for the efficient implementation of the data parallel operations [8, 26]. The run time component is a library of data parallel operations closely resembling HPFLIB, the standard library that accompanies HPF. A nested data parallel loop that has been flattened may perform a small multiplicative factor of additional work compared with a sequential implementation. ....

G. E. Blelloch and G. W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8(2):119--134, Feb. 1990.


An Object-Oriented Approach to Nested Data Parallelism - Sheffler, Chatterjee (1995)   (3 citations)  (Correct)

....The task of translating the foreach construct is the most complicated responsibility of the compiler, and we propose a localized code transformation that flattens the nested parallelism in the foreach construct. This new method differentiates our system from others supporting nested parallelism [5, 12]. Our project is a direct outgrowth of NESL, a language fully supporting nested data parallelism [4] We owe many of our ideas to it [8, 15] However, we believe that our programming system offers many practical features over NESL. For one, NESL s runtime system is incompatible with other ....

....for vectors so that vectors may be read and written (sequentially) just like any other type. Note that string initialization is actual compiled into stream input, so that it incurs a runtime overhead proportional to the length of the string. Int x = 3; v Float vx(size(5) v Int vz = [1 2 3 4 5] ; v v Int vv = 1 2] 3 4 5] 6 7 8] v Int vy; vy cin; The foreach construct is the basis for parallelism. Its argument list specifies the element type of each vector and gives a new name that refers to an individual element in the body of the foreach. Inside the body, the ....

[Article contains additional citation context not shown here]

G. E. Blelloch and G. W. Sabot. Compiling collectionoriented languages onto massively parallel computers.Jour- nal of Parallel and Distributed Computing, 8:119--134, 1990.


Practical Parallel Divide-and-Conquer Algorithms - Hardwick (1997)   (1 citation)  Self-citation (Blelloch)   (Correct)

No context found.

Guy E. Blelloch and Gary W. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8(2):119--134, February 1990.


Implementation of a Portable Nested Data-Parallel.. - Blelloch, Hardwick.. (1993)   (97 citations)  Self-citation (Blelloch)   (Correct)

No context found.

Blelloch, G. E., and Sabot, G. W. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing 8, 2 (Feb. 1990), 119--134.


Piecewise Execution of Nested Data-Parallel Programs - Palmer, Prins, Chatterjee.. (1995)   (2 citations)  (Correct)

No context found.

G. Blelloch and G. Sabot. Compiling collection-oriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8(2), Feb. 1990.


Size and Access Inference for Data-Parallel Programs - Chatterjee (1990)   (7 citations)  (Correct)

No context found.

Guy E. Blelloch and Gary W. Sabot. Compiling Collection-Oriented Languages onto Massively Parallel Computers. Journal of Parallel and Distributed Computing, 8(2):119--134, Feb 1990.


Aspects Theoriques Et Pratiques De L'inferences De Type Et Effets - Talpin (1993)   (Correct)

No context found.

Blelloch, G. E., and Sabot, G. W. Compiling collection oriented languages onto massively parallel computers. In Journal of Parallel and Distributed Computing, volume 8, pages 119-134. Academic Press, 1990. 105


Integrating Task and Data Parallelism in UC - Dhagat, Bagrodia, Chandy (1994)   (5 citations)  (Correct)

No context found.

Blelloch, G.E. and Sabot, G.W. Compiling Collection-Oriented Languages onto Massively Parallel Computers. Journal of Parallel and Distributed Computing, 8:119--134, 1990.


Nepal - Nested Data-Parallelism in Haskell - Chakravarty, Keller, al. (2001)   (1 citation)  (Correct)

No context found.

G. E. Blelloch and G. W. Sabot. Compiling collectionoriented languages onto massively parallel computers. Journal of Parallel and Distributed Computing, 8:119{ 134, 1990.


DPL : Data Parallel Library Manual - Palmer (1994)   (5 citations)  (Correct)

No context found.

Blelloch, G., Sabot, G., "Compiling Collection-Oriented Languages onto Massively Parallel Computers", Journal of Parallel and Distributed Computing, 8(2), February 1990.

First 50 documents  Next 50

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC