Affiliation:
1. UC Berkeley, Berkeley, CA, USA
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference26 articles.
1. PetaBricks
2. Cilk
3. B. Bos H. W. Lie C. Lilley and I. Jacobs. Cascading style sheets level 2 CSS2 specification 1998. B. Bos H. W. Lie C. Lilley and I. Jacobs. Cascading style sheets level 2 CSS2 specification 1998.
4. Parallel processing and document layout;Brown H.;Electron. Publ. Origin. Dissem. Des.,1988
5. Two for the price of one
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Orchard: Heterogeneous Parallelism and Fine-grained Fusion for Complex Tree Traversals;ACM Transactions on Architecture and Code Optimization;2024-05-21
2. Conflict-Driven Synthesis for Layout Engines;Proceedings of the ACM on Programming Languages;2023-06-06
3. Tree traversal synthesis using domain-specific symbolic compilation;Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems;2022-02-22
4. Sound, fine-grained traversal fusion for heterogeneous trees;Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation;2019-06-08
5. TreeFuser: a framework for analyzing and fusing general recursive tree traversals;Proceedings of the ACM on Programming Languages;2017-10-12