skip to main content
research-article

Much ado about two (pearl): a pearl on parallel prefix computation

Published:07 January 2008Publication History
Skip Abstract Section

Abstract

This pearl develops a statement about parallel prefix computation in the spirit of Knuth's 0-1-Principle for oblivious sorting algorithms. It turns out that 0-1 is not quite enough here. The perfect hammer for the nails we are going to drive in is relational parametricity.

References

  1. G. E. Blelloch. Prefix sums and their applications. In J. H. Reif, editor, Synthesis of Parallel Algorithms, pages 35--60. Morgan Kaufmann, 1993.Google ScholarGoogle Scholar
  2. S. Böhme. Free theorems for sublanguages of Haskell. Master's thesis, Technische Universität Dresden, 2007a.Google ScholarGoogle Scholar
  3. S. Böhme. Much ado about two. Formal proof development. In G. Klein, T. Nipkow, and L. Paulson, editors, The Archive of Formal Proofs. http://afp.sf.net/entries/MuchAdoAboutTwo.shtml, 2007b.Google ScholarGoogle Scholar
  4. A. Bove and T. Coquand. Formalising bitonic sort in type theory. In Types for Proofs and Programs, TYPES 2004, Revised Selected Papers, volume 3839 of LNCS, pages 82--97. Springer-Verlag, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. P. Brent and H. T. Kung. The chip complexity of binary arithmetic. In ACM Symposium on Theory of Computing, Proceedings, pages 190--200. ACM Press, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. N. A. Danielsson, R. J. M. Hughes, P. Jansson, and J. Gibbons. Fast and loose reasoning is morally correct. In Principles of Programming Languages, Proceedings, pages 206--217. ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. A. Day, J. Launchbury, and J. Lewis. Logical abstractions in Haskell. In Haskell Workshop, Proceedings. Technical Report UU--CS--1999--28, Utrecht University, 1999.Google ScholarGoogle Scholar
  8. P. Dybjer, Q. Haiyan, and M. Takeyama. Verifying Haskell programs by combining testing, model checking and interactive theorem proving. Information & Software Technology, 46(15):1011--1025, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  9. J. Gibbons and G. Hutton. Proof methods for corecursive programs. Fundamenta Informaticae, 66(4):353--366, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Hinze. An algebra of scans. In Mathematics of Program Construction, Proceedings, volume 3125 of LNCS, pages 186--210. Springer--Verlag, 2004.Google ScholarGoogle Scholar
  11. P. Johann and J. Voigtländer. Free theorems in the presence of seq. In Principles of Programming Languages, Proceedings, pages 99--110. ACM Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Knowles. A family of adders. In Computer Arithmetic, Proceedings, pages 277--284. IEEE Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. E. Knuth. The Art of Computer Programming, volume 3: Sorting and Searching. Addison--Wesley, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. E. Ladner and M. J. Fischer. Parallel prefix computation. Journal of the ACM, 27(4):831--838, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Y.-C. Lin and J.-W. Hsiao. A new approach to constructing optimal parallel prefix circuits with small depth. Journal of Parallel and Distributed Computing, 64(1):97--107, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. T. Lynch and E. Swartzlander. The redundant cell adder. In Computer Arithmetic, Proceedings, pages 165--170. IEEE Press, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  17. T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL - A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS. Springer-Verlag, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. L. Peyton Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003.Google ScholarGoogle Scholar
  19. J. C. Reynolds. Types, abstraction and parametric polymorphism. In Information Processing, Proceedings, pages 513--523. Elsevier Science Publishers B. V., 1983.Google ScholarGoogle Scholar
  20. M. Sheeran. Finding regularity: Describing and analysing circuits that are not quite regular. In Correct Hardware Design and Verification Methods, Proceedings, volume 2860 of LNCS, pages 4--18. Springer-Verlag, 2003.Google ScholarGoogle Scholar
  21. M. Sheeran. Hardware design and functional programming: a perfect match. Journal of Universal Computer Science, 11(7):1135--1158, 2005.Google ScholarGoogle Scholar
  22. M. Sheeran. Searching for prefix networks to fit in a context using a lazy functional programming language. Talk at Hardware Design and Functional Languages, 2007.Google ScholarGoogle Scholar
  23. J. Sklansky. Conditional-sum addition logic. IRE Transactions on Electronic Computers, EC-9(6):226--231, 1960.Google ScholarGoogle ScholarCross RefCross Ref
  24. H. S. Stone and P. M. Kogge. A parallel algorithm for the efficient solution of a general class of recurrence equations. IEEE Transactions on Computers, 22(8):786--793, 1973.Google ScholarGoogle Scholar
  25. P. Wadler. Theorems for free! In Functional Programming Languages and Computer Architecture, Proceedings, pages 347--359. ACM Press, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Much ado about two (pearl): a pearl on parallel prefix computation

            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 43, Issue 1
              POPL '08
              January 2008
              420 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1328897
              Issue’s Table of Contents
              • cover image ACM Conferences
                POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                January 2008
                448 pages
                ISBN:9781595936899
                DOI:10.1145/1328438

              Copyright © 2008 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 7 January 2008

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader