Arrow Research search

Author name cluster

Bernhard Scholz

Possible papers associated with this exact author name in Arrow. This page groups case-insensitive exact name matches and is not a full identity disambiguation profile.

2 papers
1 author row

Possible papers

2

LOPSTR Conference 2022 Conference Paper

Building a Join Optimizer for Soufflé

  • Samuel Arch
  • Xiaowen Hu
  • David Zhao 0001
  • Pavle Subotic
  • Bernhard Scholz

Abstract Datalog has grown in popularity as a domain-specific language (DSL) for real-world applications. Crucial to its resurgence has been the advent of high-performance Datalog compilers, including Soufflé. Yet this high performance is unobtainable for users unless they provide performance hints such as join orders for rules. In this paper, we develop a join optimizer for Soufflé that automatically computes high-quality join orders using a feedback-directed optimization strategy: In a profiling stage, the compiler obtains join size estimates, and in a join ordering stage, an offline join optimizer derives cost-optimal join orders. The performance of the automatically optimized joins is demonstrated using complex real-world applications, including DOOP, DDISASM, and VPC, surpassing the performance of un-tuned join orders by a geometric mean speedup of \(12. 07\times \).

LPAR Conference 2017 Conference Paper

Cauliflower: a Solver Generator for Context-Free Language Reachability

  • Nicholas Hollingum
  • Bernhard Scholz

Context-free language reachability (CFL-R) is a fundamental solving vehicle for computing essential compiler optimisations and static program analyses. Unfortunately, solvers for CFL- R encounter both inherently expensive problem formulations and frequent alterations to the underlying formalism. As such, tool designers are forced to create custom-tailored implementations with long development times and limited reusability. A better framework is crucial to facilitate research and development in CFL-R. In this work we present Cauliflower, a CFL-R solver generator, that creates parallel executable C++ code from an input CFL-R rule-based specification. With Cauliflower, developers create working tools rapidly, avoiding lengthy and error-prone manual implementations. Cauliflower’s domain-specific language provides semantic extension including reversal, branch- ing, disconnection and templating. In practical experiments, Cauliflower achieves an average speedup of 1. 8x compared with the best general purpose tools, and matches the performance of application-specific tools on many benchmarks.

v2026.09.13