skip to main content
research-article

Guiding parallel array fusion with indexed types

Published:13 September 2012Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. Coq. The Coq Proof Assistant Reference Manual Version 8.3, 2012. URL http://coq.inria.fr.Google ScholarGoogle Scholar
  4. D. J. Jr., S. Marlow, and S. Singh. Parallel performance tuning for Haskell. In Haskell Symposium. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Li, C. Ding, and K. Shen. Quantifying the cost of context switch. In Workshop on Experimental Computer Science. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. Lippmeier and G. Keller. Efficient Parallel Stencil Convolution in Haskell. In Haskell Symposium. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. U. Norell. Dependently typed programming in Agda. In TLDI: Types in Language Design and Implementation. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Salmon and J. Goldsmith. A hypercube ray-tracer. In Hypercube Concurrent Computers and Applications, C3P. ACM, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Snyder and P. Alexander. Monad factory: Type-indexed monads. In Trends in Functional Programming. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarCross RefCross Ref
  18. J. Stam. Stable fluids. In SIGGRAPH, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Guiding parallel array fusion with indexed types

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 47, Issue 12
          Haskell '12
          December 2012
          157 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2430532
          Issue’s Table of Contents
          • cover image ACM Conferences
            Haskell '12: Proceedings of the 2012 Haskell Symposium
            September 2012
            168 pages
            ISBN:9781450315746
            DOI:10.1145/2364506

          Copyright © 2012 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 13 September 2012

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!