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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- B. Bos, H. W. Lie, C. Lilley, and I. Jacobs. Cascading style sheets, level 2 CSS2 specification, 1998.Google Scholar
- H. Brown. Parallel processing and document layout. Electron. Publ. Origin. Dissem. Des., 1(2):97--104, 1988. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Colmerauer. An introduction to Prolog III. CACM, 33, July 1990. Google Scholar
Digital Library
- A. Darte and F. Vivien. Revisiting the decomposition of Karp, Miller and Winograd. In ASAP, pages 13--25, 1995. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- S. Dubey. AJAX Performance Measurement Methodology for Internet Explorer 8 Beta 2. CODE Magazine, 5(3):53--55, 2008.Google Scholar
- 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 Scholar
Cross Ref
- P. Hawkins, A. Aiken, K. Fisher, M. Rinard, and M. Sagiv. Data representation synthesis. In PLDI'11, June 2011. Google Scholar
Digital Library
- F. Irigoin and R. Triolet. Supernode partitioning. In POPL'88. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- R. M. Karp, R. E. Miller, and S. Winograd. The organization of computations for uniform recurrence equations. J. ACM, July 1967. Google Scholar
Digital Library
- U. Kastens. Ordered attributed grammars. Acta Informatica, 1980.Google Scholar
Digital Library
- D. E. Knuth. Semantics of context-free languages. TOCS, 2(2):127--145, June 1968.Google Scholar
- C. Lattner and V. Adve. Automatic pool allocation: Improving performance by controlling data structure layout in the heap. In PLDI'05. Google Scholar
Digital Library
- J. Low. Automatic data structure selection: an example and overview. CACM, 21(5):376--385, 1978. Google Scholar
Digital Library
- H. Mai, S. Tang, S. T. King, C. Cascaval, and P. Montesinos. A case for parallelizing web pages. In HotPar'12, 2012. Google Scholar
Digital Library
- D. Merrill, M. Garland, and A. Grimshaw. Scalable GPU graph traversal. In PPOPP '12, pages 117--128, 2012. Google Scholar
Digital Library
- L. A. Meyerovich and R. Bodík. Fast and parallel webpage layout. In WWW'10, pages 711--720, 2010. Google Scholar
Digital Library
- D. Prountzos, R. Manevich, and K. Pingali. Elixir: a system for synthesizing concurrent graph programs. In OOPSLA '12, October 2012. Google Scholar
Digital Library
- J. Reinders. Intel threading building blocks. O'Reilly, 2007. Google Scholar
Digital Library
- J. a. Saraiva and D. Swierstra. Generating spreadsheet-like tools from strong attribute grammars. In GPCE'03, pages 307--323, 2003. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Index Terms
Parallel schedule synthesis for attribute grammars
Recommendations
Parallel schedule synthesis for attribute grammars
PPoPP '13: Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programmingWe 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 ...
The Interpretation of Meta Grammars Describing Syntax-Directed Interpreters Using an Attribute Grammar Interpreter
A syntax-directed interpreter of attribute grammars is applied to interpret meta grammars describing translators. A specific example is used which concerns the formal description of the same syntax-directed interpreter of attribute grammars for ...
A Classification of Noncircular Attribute Grammars Based on the Look-Ahead Behavior
We propose a family of static evaluators for subclasses of the well-defined (i.e., noncircular) attribute grammars. These evaluators augment the evaluator for the absolutely noncircular attribute grammars with look-ahead behaviors. Because this family ...







Comments