Scaling Worst-Case Optimal Datalog to GPUs
Yihao Sun, Kunting Qi, Thomas Gilray, Sidharth Kumar, Kristopher Micinski

TL;DR
This paper introduces SRDatalog, a GPU-based Datalog engine utilizing Worst-Case Optimal Joins to efficiently handle complex multi-way queries, achieving significant speedups over previous methods.
Contribution
It presents the first GPU Datalog engine based on WCOJ, addressing limitations of binary joins and improving performance on real-world workloads.
Findings
SRDatalog achieves 21x to 47x speedups on real-world workloads.
Uses flat columnar storage and deterministic memory allocation.
Employs load balancing and helper-relation splitting to mitigate skew.
Abstract
Datalog is a declarative logic-programming language used for complex analytic reasoning workloads such as program analysis and graph analytics. Datalog's popularity is due to its unique price-point, marrying logic-defined specification with the potential for massive data parallelism. While traditional engines are CPU-based, the memory-bound nature of Datalog has led to increasing interest in leveraging GPUs. These engines beat CPU-based engines by operationalizing iterated relational joins via SIMT-friendly join algorithms. Unfortunately, all existing GPU Datalog engines are built on binary joins, which are inadequate for the complex multi-way queries arising in production systems such as DOOP and ddisasm. For these queries, binary decomposition can incur the AGM bound asymptotic blowup in time and space, leading to OOM failures regardless of join order. Worst-Case Optimal Joins (WCOJ)…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
