skip to main content
research-article

Parallel schedule synthesis for attribute grammars

Published:23 February 2013Publication History
Skip Abstract Section

Abstract

We examine how to synthesize a parallel schedule of structured traversals over trees. In our system, programs are declaratively specified as attribute grammars. Our synthesizer automatically, correctly, and quickly schedules the attribute grammar as a composition of parallel tree traversals. Our downstream compiler optimizes for GPUs and multicore CPUs.

We provide support for designing efficient schedules. First, we introduce a declarative language of schedules where programmers may constrain any part of the schedule and the synthesizer will complete and autotune the rest. Furthermore, the synthesizer answers debugging queries about how schedules may be completed.

We evaluate our approach with two case studies. First, we created the first parallel schedule for a large fragment of CSS and report a 3X multicore speedup. Second, we created an interactive GPU-accelerated animation of over 100,000 nodes.

References

  1. J. Ansel, C. Chan, Y. L. Wong, M. Olszewski, Q. Zhao, A. Edelman, and S. Amarasinghe. Petabricks: A language and compiler for algorithmic choice. In PLDI'09, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. D. Blumofe, C. F. Joerg, B. C. Kuszmaul, C. E. Leiserson, K. H. Randall, and Y. Zhou. Cilk: an efficient multithreaded runtime system. In PPOPP'95, pages 207--216, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. B. Bos, H. W. Lie, C. Lilley, and I. Jacobs. Cascading style sheets, level 2 CSS2 specification, 1998.Google ScholarGoogle Scholar
  4. H. Brown. Parallel processing and document layout. Electron. Publ. Origin. Dissem. Des., 1(2):97--104, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Burckhardt, D. Leijen, C. Sadowski, J. Yi, and T. Ball. Two for the price of one: a model for parallel and incremental computation. In OOPSLA'11, pages 427--444, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Colmerauer. An introduction to Prolog III. CACM, 33, July 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Darte and F. Vivien. Revisiting the decomposition of Karp, Miller and Winograd. In ASAP, pages 13--25, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Datta, M. Murphy, V. Volkov, S. Williams, J. Carter, L. Oliker, D. Patterson, J. Shalf, and K. Yelick. Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures. In SC'08. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Dubey. AJAX Performance Measurement Methodology for Internet Explorer 8 Beta 2. CODE Magazine, 5(3):53--55, 2008.Google ScholarGoogle Scholar
  10. M. Frigo and S. G. Johnson. The design and implementation of FFTW3. IEEE, 93(2):216--231, 2005. Special issue on "Program Generation, Optimization, and Platform Adaptation".Google ScholarGoogle ScholarCross RefCross Ref
  11. P. Hawkins, A. Aiken, K. Fisher, M. Rinard, and M. Sagiv. Data representation synthesis. In PLDI'11, June 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. F. Irigoin and R. Triolet. Supernode partitioning. In POPL'88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Jourdan. A survey of parallel attribute evaluation methods. In Attribute Grammars, Applications and Systems, volume 545 of LNCS, pages 234--255. Springer Berlin / Heidelberg, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. M. Karp, R. E. Miller, and S. Winograd. The organization of computations for uniform recurrence equations. J. ACM, July 1967. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. U. Kastens. Ordered attributed grammars. Acta Informatica, 1980.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. E. Knuth. Semantics of context-free languages. TOCS, 2(2):127--145, June 1968.Google ScholarGoogle Scholar
  17. C. Lattner and V. Adve. Automatic pool allocation: Improving performance by controlling data structure layout in the heap. In PLDI'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Low. Automatic data structure selection: an example and overview. CACM, 21(5):376--385, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. H. Mai, S. Tang, S. T. King, C. Cascaval, and P. Montesinos. A case for parallelizing web pages. In HotPar'12, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Merrill, M. Garland, and A. Grimshaw. Scalable GPU graph traversal. In PPOPP '12, pages 117--128, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. L. A. Meyerovich and R. Bodík. Fast and parallel webpage layout. In WWW'10, pages 711--720, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Prountzos, R. Manevich, and K. Pingali. Elixir: a system for synthesizing concurrent graph programs. In OOPSLA '12, October 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Reinders. Intel threading building blocks. O'Reilly, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. a. Saraiva and D. Swierstra. Generating spreadsheet-like tools from strong attribute grammars. In GPCE'03, pages 307--323, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for finite programs. In ASPLOS-XII, pages 404--415, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. C. Whaley, A. Petitet, and J. J. Dongarra. Automated empirical optimization of software and the ATLAS project. Parallel Computing, 27(1--2):3--35, 2001.Google ScholarGoogle Scholar

Index Terms

  1. Parallel schedule synthesis for attribute grammars

      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 48, Issue 8
        PPoPP '13
        August 2013
        309 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2517327
        Issue’s Table of Contents
        • cover image ACM Conferences
          PPoPP '13: Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
          February 2013
          332 pages
          ISBN:9781450319225
          DOI:10.1145/2442516

        Copyright © 2013 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 February 2013

        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!