Nepal — Nested Data Parallelism in Haskell
This paper discusses an extension of Haskell by support for nested data-parallel programming in the style of the special-purpose language Nesl. The extension consists of a parallel array type, array comprehensions, and primitive parallel array operations. This extension brings a hitherto unsupported style of parallel programming to Haskell. Moreover, nested data parallelism should receive wider attention when available in a standardised language like Haskell.
KeywordsParallel Array Tridiagonal System Execution Mechanism Array Comprehension High Performance Fortran
Unable to display preview. Download preview PDF.
- 1.S. Aditya, Arvind, L. Augustsson, J.-W. Maessen, and R. S. Nikhil. Semantics of pH: A parallel dialect of Haskell. In P. Hudak, editor, Proc. Haskell Workshop, La Jolla, CA USA, YALEU/DCS/RR-1075, pages 35–49, June 1995.Google Scholar
- 2.J. Barnes and P. Hut. A hierarchical O(n log n) force calculation algorithm. Nature, 324, December 1986.Google Scholar
- 3.G. E. Blelloch. Prefix sums and their applications. Technical Report CMU-CS-90-190, School of Computer Science, Carnegie Mellon University, Nov. 1990.Google Scholar
- 4.G. E. Blelloch. NESL: A nested data-parallel language. Technical Report CMU-CS-93-129, School of Computer Science, Carnegie Mellon University, 1993.Google Scholar
- 5.G. E. Blelloch. Programming parallel algorithms. CACM, 39(3):85–97, 1996.Google Scholar
- 7.S. Breitinger, U. Klusik, and R. Loogen. From (sequential) Haskell to (parallel) Eden: An implementation point of view. LNCS, 1490:318–328, 1998.Google Scholar
- 8.D. Cann. Retire fortran? A debate rekindled. CACM, 35(8):81, Aug. 1992.Google Scholar
- 9.M. M. T. Chakravarty and G. Keller. How portable is nested data parallelism? In 6th Australasian Conf. on Par. a. Real-Time Sys., pages 284–299. Springer, 1999.Google Scholar
- 10.M. M. T. Chakravarty and G. Keller. More types for nested data parallel programming. In P. Wadler, editor, ACM SIGPLAN Conference on Functional Programming (ICFP’ 00), pages 94–105. ACM Press, 2000.Google Scholar
- 11.N. Ellmenreich, C. Lengauer, and M. Griebl. Application of the polytope model to functional programs. In J. Ferrante, editor, Languages and Compilers for Parallel Computing. Computer Science and Engineering Department, UC San Diego, 1999.Google Scholar
- 12.C. Herrmann and C. Lengauer. Parallelization of divide-and-conquer by translation to nested loops. Journ. o. Functional Programming, 9(3):279–310, May 1999.Google Scholar
- 13.High Performance Fortran Forum. High Performance Fortran language specification. Technical report, Rice University, 1993. Version 1.0.Google Scholar
- 14.J. M. D. Hill. Data-parallel lazy functional programming. PhD thesis, Department of Computer Science, Queen Mary and Westfield College, London, 1994.Google Scholar
- 15.G. Keller. Transformation-based Implementation of Nested Data Parallelism for Distributed Memory Machines. PhD thesis, Technische Universität Berlin, 1999.Google Scholar
- 16.G. Keller and M. M. T. Chakravarty. Flattening trees. In D. Pritchard and J. Reeve, editors, Euro-Par’98, number 1470 in LNCS, pages 709–719. Springer, 1998.Google Scholar
- 18.Haskell 98: A non-strict, purely functional language. http://haskell.org/defi-nition/, February 1999.
- 19.J. Prins and D. Palmer. Transforming high-level data-parallel programs into vector operations. In Proceedings of the Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 119–128. ACM, 1993.Google Scholar
- 20.P. W. Trinder, K. Hammond, H.-W. Loidl, and S. L. Peyton Jones. Algorithm + strategy = parallelism. Journal of Functional Programming, 1998.Google Scholar
- 21.H. H. Wang. A parallel method for tridiagonal equations. ACM Transactions on Mathematical Software, 7(2):170–183, June 1981.Google Scholar