Supun Abeysinghe

dblp:227/2847 · DBLP profile ↗
← Back
5ranked-venue papers
3as first author
4since 2021 · last 2024
0000-0001-6054-2432ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 2 first-author · 3 since 2021Computer networks · 1Databases, data management, data science and information retrieval · 1 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2024 Rhyme: A Data-Centric Expressive Query Language for Nested Data Structures
Supun Abeysinghe, Tiark Rompf
PADL1
2024 Flan: An Expressive and Efficient Datalog Compiler for Program Analysis
abstract
Datalog has gained prominence in program analysis due to its expressiveness and ease of use. Its generic fixpoint resolution algorithm over relational domains simplifies the expression of many complex analyses. The performance and scalability issues of early Datalog approaches have been addressed by tools such as Soufflé through specialized code generation. Still, while pure Datalog is expressive enough to support a wide range of analyses, there is a growing need for extensions to accommodate increasingly complex analyses This has led to the development of various extensions, such as Flix, Datafun, and Formulog, which enhance Datalog with features like arbitrary lattices and SMT constraints. Most of these extensions recognize the need for full interoperability between Datalog and a full-fledged programming language, a functionality that high-performance systems like Soufflé lack. Specifically, in most cases, they construct languages from scratch with first-class Datalog support, allowing greater flexibility. However, this flexibility often comes at the cost of performance due to the conflicting requirements of prioritizing modularity and abstraction over efficiency. Consequently, achieving both flexibility and compilation to highly-performant specialized code poses a significant challenge. In this work, we reconcile the competing demands of expressiveness and performance with Flan, a Datalog compiler fully embedded in Scala that leverages multi-stage programming to generate specialized code for enhanced performance. Our approach combines the flexibility of Flix with Soufflé’s performance, offering seamless integration with the host language that enables the addition of powerful extensions while generating specialized code for the entire computation. Flan’s simple operator interface allows the addition of an extensive set of features, including arbitrary aggregates, user-defined functions, and lattices, with multiple execution strategies such as binary and multi-way joins, supported by different indexing structures like specialized trees and hash tables, with minimal effort. We evaluate our system on a variety of benchmarks and compare it to established Datalog engines. Our results demonstrate competitive performance and speedups in the range of to compared to state-of-the-art systems for workloads of practical importance.
Supun Abeysinghe, Anxhelo Xhebraj, Tiark Rompf
Proc. ACM Program. Lang.1
2023 Graph IRs for Impure Higher-Order Languages: Making Aggressive Optimizations Affordable with Precise Effect Dependencies
abstract
Graph-based intermediate representations (IRs) are widely used for powerful compiler optimizations, either interprocedurally in pure functional languages, or intraprocedurally in imperative languages. Yet so far, no suitable graph IR exists for aggressive global optimizations in languages with both effects and higher-order functions: aliasing and indirect control transfers make it difficult to maintain sufficiently granular dependency information for optimizations to be effective. To close this long-standing gap, we propose a novel typed graph IR combining a notion of reachability types with an expressive effect system to compute precise and granular effect dependencies at an affordable cost while supporting local reasoning and separate compilation. Our high-level graph IR imposes lexical structure to represent structured control flow and nesting, enabling aggressive and yet inexpensive code motion and other optimizations for impure higher-order programs. We formalize the new graph IR based on a λ-calculus with a reachability type-and-effect system along with a specification of various optimizations. We present performance case studies for tensor loop fusion, CUDA kernel fusion, symbolic execution of LLVM IR, and SQL query compilation in the Scala LMS compiler framework using the new graph IR. We observe significant speedups of up to 21 x .
Oliver Bracevac, Guannan Wei 0001, Songlin Jia, Supun Abeysinghe, Yuxuan Jiang 0006, Yuyan Bao, Tiark Rompf
Proc. ACM Program. Lang.4
2022 Efficient Incrementialization of Correlated Nested Aggregate Queries using Relative Partial Aggregate Indexes (RPAI)
abstract
Incrementalization of queries is imperative in cases where data arrives as streams and output is latency-critical and/or desired before the full data has been received. Incremental execution computes the output at a given time by reusing the previously computed outputs or maintained views rather than re-evaluating the query from scratch. There are various approaches to perform this incrementalization ranging from query-specific algorithms and data structures (e.g., DYN, AJU) to general systems (e.g., DBToaster, Materialize).
Supun Abeysinghe, Qiyang He, Tiark Rompf
SIGMOD Conference1
2019 ADAPT-T: An Adaptive Algorithm for Auto-Tuning Worker Thread Pool Size in Application Servers
abstract
Modern application servers run on multi-core hardware and these servers use multi-threading to achieve high performance. Performance of such servers is highly dependent on the number of processing threads in the worker thread pool. The optimal thread pool size (that would result in the best performance) depends on workload properties (both the application and the incoming arrival pattern). In this paper, we propose ADAPT-T, a lightweight, adaptive algorithm that can auto-adjust the thread pool size to optimize the latency. ADAPT-T exploits the concave upward property of system performance and optimizes the latency on-line by periodically monitoring the server's behaviour and then adjusts the thread pool size based on monitored statistics. It has a special locking mechanism to minimize the frequent fluctuations that may occur in latency while tuning the thread pool size. We perform extensive experiments under different workload patterns and show that ADAPT-T performs well under a wide range of workload scenarios compared to other policies.
Nilushan Costa, Malith Jayasinghe, Ajantha S. Atukorale, Supun Abeysinghe, Srinath Perera, Isuru Perera
ISCC4