## Costing Parallel Programs as a Function of Shapes (1998)

### Cached

### Download Links

- [linus.socs.uts.edu.au]
- [linus.socs.uts.edu.au]
- DBLP

### Other Repositories/Bibliography

Venue: | Science of Computer Programming |

Citations: | 6 - 1 self |

### BibTeX

@INPROCEEDINGS{Jay98costingparallel,

author = {C. Barry Jay},

title = {Costing Parallel Programs as a Function of Shapes},

booktitle = {Science of Computer Programming},

year = {1998},

pages = {37--207}

}

### OpenURL

### Abstract

Efficient, portable parallel programming requires cost models to compare different possible implementations. In turn, these require knowledge of the shapes of the data structures being used, as well as knowledge of the hardware parameters. This paper shows how shape analysis techniques developed in the FISh programming language could be exploited to produce a data parallel language with an accurate, portable cost model. 1 Introduction The problem of constructing efficient portable parallel programs still remains to be solved. As different architectures can produce radically different levels of efficiency for a given algorithm, most research has focused on capturing hardware characteristics in a form that enables the compiler to choose an appropriate algorithm. For example, one may determine a suite of hardware parameters, as in BSP [Val90, McC94, HS98] or LogP [Ca93], that support a cost model for comparing alternative algorithms. While this work has been essential for our understand...

### Citations

1311 | Introduction to Functional Programming
- Bird, Wadler
- 1988
(Show Context)
Citation Context ...ore detail. One of the key techniques for constructing skeletons is to borrow list-theoretic combinators, such as map, fold and zip, and their calculus, also known as the BirdMeertens Formalism (BMF) =-=[BW88]-=-. In practice, these operations are applied to vectors and arrays, rather than lists and nested lists, which is a source of difficulties. For example, consider the operation of (left-)folding a functi... |

1132 | A bridging model for parallel computation - Valiant - 1990 |

946 |
Performance Fortran Forum. High Performance Fortran language specification
- High
- 1994
(Show Context)
Citation Context ...sing the issue. On the other hand, the most common parallel algorithms do support static shape analysis, which is exploited by various specialised parallel languages, such as High Performance Fortran =-=[For93]-=- P3L [BDO + 95] and ZPL [oW97]. Each of these languages is able to handle a class of problems, but does not tell us what is the right class of problems for such an analysis. By definition, static shap... |

938 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...epresents quantification by a data type variable X and 8 ` V:OE represents quantification by a phrase type variable V . The syntax for FISh terms is essentially that of the Hindley-Milner type system =-=[Mil78]-=-: t ::= x j c j x:t j t t j t where x = t: The only difference is that where-expressions are preferred over let-expressions because evaluation is call-by-name, not by value. This is essential for prop... |

731 | Notions of computation and monads - Moggi - 1991 |

457 | Comprehending monads - Wadler - 1992 |

418 | Algorithmic Skeletons: Structured Management of Parallel Computation - Cole - 1989 |

63 | Structured development of parallel programs - Pelagatti - 1998 |

60 |
et al “LogP: Towards a Realistic Model of Parallel Computation
- Culler
- 1993
(Show Context)
Citation Context ...e algorithms is faster. To date, most work has focussed on measuring the impact of changes to hardware as observed through a small suite of hardware parameters, as in BSP [Val90, McC94, HS98] or LogP =-=[Ca93]-=-. In the process, these cost models make implicit use of additional information about the program, e.g. the sizes and shapes of the input data structures. Specifically, they treat the size n of the in... |

60 | A semantics for shape - Jay - 1995 |

54 | Functional Skeletons for Parallel Coordination. In: EuroPar’95 – European Conference on J. Sérot et al.: Fast prototyping of parallel-vision applications using functional skeletons hal-00704343, version 1 - Darlington, YK, et al. - 1995 |

31 | Lessons learned from implementing bsp - Hill, Skillicorn - 1998 |

25 | A monadic calculus for parallel costing of a functional language of arrays
- Jay, Cole, et al.
- 1997
(Show Context)
Citation Context ... used to automate cost analysis in the parallel setting. The cost analysis should be modular, and easily adjusted to handle different hardware parameters. These goals can be met by using a cost monad =-=[JCSS97]-=-. Monads have become a standard tool in functional programming for handling local state and input/output behaviour [Mog91, Wad93]. This approach to cost analysis not only meets the criteria outlined a... |

24 | Scalable parallel computing: A grand unified theory and its practical development - McColl - 1994 |

20 | The functional imperative: shape - Jay, Steckler - 1998 |

19 | Optimising the Parallel Behaviour of Combinations of Program Components - To - 1995 |

18 |
et al., Introduction to Parallel Computing: Design and Analysis of Algorithms, The Benjamin/Cummings Publishing Company Inc
- Kumar
- 1994
(Show Context)
Citation Context ...tiplication is quite easy: the product of an m\Thetan and an n\Thetap matrix is m\Thetap. Now generalise to consider the multiplication of a sequence of matrices (the matrix parenthetisation problem, =-=[Ka94]-=-). Matrix multiplication is associative, and the different orders of multiplication have wildly different work costs, so that one must analyse the shapes to find the best order. The result of the anal... |

17 | Co-ordinating heterogenous parallel computation - Darlington, Au, et al. - 1996 |

17 | Flattening trees
- Keller, Chakravarty
- 1998
(Show Context)
Citation Context ...ras [SPOP97]. A more flexible approach has the programmer indicate the need for distribution, i.e. decide granularity issues, but leave the choice to the implementation, e.g. using distribution types =-=[KC98]-=-. FISh is able 8 to take this simplification one step further, and represent distributions within the existing type structure. A distribution for an array of type [ff] can be given by an array of type... |

13 | Parallelization of divide-and-conquer by translation to nested loops - Herrmann, Lengauer - 1999 |

11 |
Foundations of Parallel Programming. Number 6
- Skillicorn
- 1994
(Show Context)
Citation Context ...t decomposition into a vector of vectors, of type [[ff]] at which point the default distribution will have the desired effect. Note that this approach is slightly more general than that of Skillicorn =-=[Ski94]-=- which only considers the outermost dimension of the array. In many cases, the desired distribution emerges naturally from the algorithm. For example, if one is applying operations to the rows of a ma... |

7 | Programming with divide-and-conquer skeletons: A case study of FFT - Gorlatch - 1998 |

7 | Shape in computing - Jay - 1996 |

5 | Compile-Time Cost Analysis for Parallel Programming - Rangaswami - 1996 |

4 | Shape Analysis - Sekanina - 1998 |

2 |
The FISh language definition. http://www-staff.socs.uts.edu. au/~cbj/Publications/fishdef.ps.gz
- Jay
- 1998
(Show Context)
Citation Context ...mensions, and any size in each dimension. Shape theory is also used to support various optimisations, e.g. recognising when a fold is actually a reduction. It has a fully formal operational semantics =-=[Jay98a]-=- and an informal denotational semantics [Jay99a] yet is competitive with C for efficiency, and significantly faster in the polymorphic setting [Jay99b]. 3 The second goal of this paper is to outline s... |

2 | Poly-dimensional array programming. http://www-staff. socs.uts.edu.au/~cbj/Publications/polydimensional2.ps.gz - Jay - 1998 |

2 | Partial evaluation of shaped programs: experience with FISh
- Jay
- 1999
(Show Context)
Citation Context ...ion. It has a fully formal operational semantics [Jay98a] and an informal denotational semantics [Jay99a] yet is competitive with C for efficiency, and significantly faster in the polymorphic setting =-=[Jay99b]-=-. 3 The second goal of this paper is to outline some design principles for a data parallel version of FISh in which the power of the BMF operations and array distributions are enhanced by means of sha... |

2 | Polymorphism over nested regular arrays: theory and implementation in FISh - Jay, Steckler - 1998 |

2 |
editors. Coordination programming: mechanisms, models and semantics
- Andreoli, Hankin, et al.
- 1996
(Show Context)
Citation Context ...ersion of FISh called GoldFISh in which the BMF operations and array distributions become primitives subject to parallelisation. Ultimately, the two languages will combine as a co-ordination language =-=[ACLM96]-=- with GoldFISh primitive used to control parallelism, and then converted to FISh code for execution on individual processors. One of the main goals in designing GoldFISh is to show how shape analysis ... |

2 |
Towards a realistic model of parallel computation
- LogP
- 1993
(Show Context)
Citation Context ... hardware characteristics in a form that enables the compiler to choose an appropriate algorithm. For example, one may determine a suite of hardware parameters, as in BSP [Val90, McC94, HS98] or LogP =-=[Ca93]-=-, that support a cost model for comparing alternative algorithms. While this work has been essential for our understanding of parallelism, it has not yet produced a simple, portable parallel language.... |

2 | Poly-dimensional array programming - Jay - 1998 |

1 |
Denotational semantics of shape: Past, present and future
- Jay
- 1999
(Show Context)
Citation Context ...theory is also used to support various optimisations, e.g. recognising when a fold is actually a reduction. It has a fully formal operational semantics [Jay98a] and an informal denotational semantics =-=[Jay99a]-=- yet is competitive with C for efficiency, and significantly faster in the polymorphic setting [Jay99b]. 3 The second goal of this paper is to outline some design principles for a data parallel versio... |

1 | Solving large systems of differential equations in parallel using covers and skeletons
- Sudholt, Piepenbrock, et al.
- 1997
(Show Context)
Citation Context ...el of structure. Most fundamental is to have the programmer take responsibility for choosing the distribution, e.g. by rows, blocks or cyclic, etc. in HPF [DDD + 98], or using a distribution algebras =-=[SPOP97]-=-. A more flexible approach has the programmer indicate the need for distribution, i.e. decide granularity issues, but leave the choice to the implementation, e.g. using distribution types [KC98]. FISh... |

1 |
The FISh language definition. available on request
- Jay
- 1998
(Show Context)
Citation Context ...number of dimensions, and any size in each dimension. Shape theory is also used to support various optimisations, e.g. recognising when a fold is actually a reduction. It has a fully formal semantics =-=[Jay98a]-=- and yet is competitive with C for efficiency, sometimes significantly faster [FIS]. Current work focuses on designing a purely functional, data parallel version of FISh called GoldFISh in which the B... |