Abstract
We present a refined approach to parallel array fusion that uses indexed types to specify the internal representation of each array. Our approach aids the client programmer in reasoning about the performance of their program in terms of the source code. It also makes the intermediate code easier to transform at compile-time, resulting in faster compilation and more reliable runtimes. We demonstrate how our new approach improves both the clarity and performance of several end-user written programs, including a fluid flow solver and an interpolator for volumetric data.
- S. Carr, C. Ding, and P. Sweany. Improving software pipelining with unroll-and-jam. In Hawaii International Conference on System Sciences. IEEE Computer Society, 1996. Google Scholar
Digital Library
- M. M. T. Chakravarty, G. Keller, S. L. Peyton Jones, and S. Marlow. Associated types with class. In POPL: Principles of Programming Languages. ACM, 2005. Google Scholar
Digital Library
- Coq. The Coq Proof Assistant Reference Manual Version 8.3, 2012. URL http://coq.inria.fr.Google Scholar
- D. J. Jr., S. Marlow, and S. Singh. Parallel performance tuning for Haskell. In Haskell Symposium. ACM, 2009. Google Scholar
Digital Library
- G. Keller, M. M. T. Chakravarty, R. Leshchinskiy, S. L. Peyton Jones, and B. Lippmeier. Regular, Shape-polymorphic, Parallel Arrays in Haskell. In ICFP: International Conference on Functional Programming. ACM, 2010. Google Scholar
Digital Library
- T.-Y. Lee, C. S. Raghavendra, and J. B. Nicholas. Experimental evaluation of load balancing strategies for ray tracing on parallel processors. In ICPP: International Conference on Parallel Processing. IEEE, 1994. Google Scholar
Digital Library
- C. Li, C. Ding, and K. Shen. Quantifying the cost of context switch. In Workshop on Experimental Computer Science. ACM, 2007. Google Scholar
Digital Library
- B. Lippmeier and G. Keller. Efficient Parallel Stencil Convolution in Haskell. In Haskell Symposium. ACM, 2011. Google Scholar
Digital Library
- S. Marlow, A. R. Yakushev, and S. L. Peyton Jones. Faster laziness using dynamic pointer tagging. In ICFP: International Conference on Functional Programming. ACM, 2007. Google Scholar
Digital Library
- U. Norell. Dependently typed programming in Agda. In TLDI: Types in Language Design and Implementation. ACM, 2009. Google Scholar
Digital Library
- S. L. Peyton Jones, W. Partain, and A. Santos. Let-floating: Moving bindings to give faster programs. In ICFP: International Conference on Functional Programming. ACM, 1996. Google Scholar
Digital Library
- S. L. Peyton Jones, A. Tolmach, and T. Hoare. Playing by the rules: Rewriting as a practical optimsiation technique in GHC. In Haskell Workshop. ACM, 2001.Google Scholar
- J. Reynders, J. C. Cummings, P. J. Hinker, M. Tholburn, S. Banerjee, M. Srikant, S. Karmesin, S. Atlas, S. Keahey, and W. F. Humphrey. Pooma: A framework for scientific simulation on parallel architectures. In Parallel Programming using C++. MIT Press, 1996.Google Scholar
- B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Global value numbers and redundant computations. In POPL: Principles of Programming Languages. ACM, 1988. Google Scholar
Digital Library
- J. Salmon and J. Goldsmith. A hypercube ray-tracer. In Hypercube Concurrent Computers and Applications, C3P. ACM, 1988. Google Scholar
Digital Library
- M. Snyder and P. Alexander. Monad factory: Type-indexed monads. In Trends in Functional Programming. Springer, 2010. Google Scholar
Digital Library
- T. Sorokina and F. Zeilfelder. Local quasi-interpolation by cubic CS1 splines on type-6 tetrahedral partitions. IMA Journal of Numerical Analysis, 27 (1), 2007.Google Scholar
Cross Ref
- J. Stam. Stable fluids. In SIGGRAPH, 1999. Google Scholar
Digital Library
Index Terms
Guiding parallel array fusion with indexed types
Recommendations
Guiding parallel array fusion with indexed types
Haskell '12: Proceedings of the 2012 Haskell SymposiumWe present a refined approach to parallel array fusion that uses indexed types to specify the internal representation of each array. Our approach aids the client programmer in reasoning about the performance of their program in terms of the source code. ...
Regular, shape-polymorphic, parallel arrays in Haskell
ICFP '10We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of our approach are that it (1) is purely functional, (2) supports reuse through shape polymorphism, (3) avoids unnecessary intermediate structures rather ...
Type-safe runtime code generation: accelerate to LLVM
Haskell '15: Proceedings of the 2015 ACM SIGPLAN Symposium on HaskellEmbedded languages are often compiled at application runtime; thus, embedded compile-time errors become application runtime errors. We argue that advanced type system features, such as GADTs and type families, play a crucial role in minimising such ...







Comments