EDBT 2026 Demo / reviewers in the wild / expert
Kai Wang 0029
dblp:78/2022-29
· DBLP profile ↗
7ranked-venue papers
3as first author
0since 2021 · last 2020
—ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 5 · 2 first-authorSoftware engineering, systems software and programming languages · 4 · 2 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
5 papers |
Program analysis · 58% Program verification · 15% Operating systems · 11% | |
| Databases, data mining, and information retrieval
3 papers |
Graph data management · 31% Data mining · 26% Data stream processing · 26% | |
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Parallel and multicore computing · 76% Distributed systems · 10% High-performance computing · 9% |
Topics — the 18 heaviest of 23, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
1.1 | 3 | 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020 Grapple: A Graph System for Static Finite-State Property Checking of Large-Scale Systems Code · EuroSys 2019 Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code · ASPLOS 2017 |
Operating systems › resource management
memory management |
0.5 | 2 | 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018 FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications · ASPLOS 2015 |
Program analysis › static analysis › pointer analysis
context-sensitive pointer analysis |
0.4 | 1 | 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020 |
Program analysis
data flow analysis |
0.4 | 1 | 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020 |
Program analysis › static analysis
interprocedural analysis |
0.4 | 1 | 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020 |
Parallel and multicore computing
parallel graph algorithms |
0.4 | 1 | 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020 |
Parallel and multicore computing › parallel graph algorithms
transitive closure |
0.4 | 1 | 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020 |
Program verification › model checking
finite-state verification |
0.4 | 1 | 2019 | Grapple: A Graph System for Static Finite-State Property Checking of Large-Scale Systems Code · EuroSys 2019 |
Program verification › model checking
software model checking |
0.4 | 1 | 2019 | Grapple: A Graph System for Static Finite-State Property Checking of Large-Scale Systems Code · EuroSys 2019 |
Data mining › structured data mining
graph mining |
0.3 | 1 | 2018 | RStream: Marrying Relational Algebra with Streaming for Efficient Graph Mining on A Single Machine · OSDI 2018 |
Runtime systems and virtual machines › runtime memory management
memory bloat |
0.3 | 1 | 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018 |
Program analysis › static analysis
bug detection |
0.3 | 1 | 2017 | Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code · ASPLOS 2017 |
Program analysis › static analysis
scalable static analysis |
0.3 | 1 | 2017 | Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code · ASPLOS 2017 |
Graph data management
graph query processing |
0.2 | 1 | 2015 | GraphQ: Graph Query Processing with Abstraction Refinement - Scalable and Programmable Analytics over Very Large Graphs on a Single PC · USENIX ATC 2015 |
Compilers and program optimization › program transformation
compiler transformations |
0.2 | 1 | 2015 | FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications · ASPLOS 2015 |
High-performance computing
data-intensive computing |
0.1 | 1 | 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018 |
Graph data management
graph processing |
0.1 | 1 | 2017 | Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code · ASPLOS 2017 |
Graph data management › graph processing
out-of-core graph processing |
0.1 | 1 | 2017 | Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code · ASPLOS 2017 |
Methods — techniques the papers use, named apart from their topics
edge-pair centric computation model · 0.9disk-based parallel graph system · 0.9graph-based analysis · 0.8static bounding of heap objects · 0.7compiler transformation · 0.7edge-pair centric computation · 0.6dynamic transitive closure · 0.6static object bounding · 0.4compiler framework · 0.4relational algebra · 0.3graph query processing · 0.2abstraction refinement · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Systemizing Interprocedural Static Analysis of Large-scale Systems Code with GraspanabstractThere is more than a decade-long history of using static analysis to find bugs in systems such as Linux. Most of the existing static analyses developed for these systems are simple checkers that find bugs based on pattern matching. Despite the presence of many sophisticated interprocedural analyses, few of them have been employed to improve checkers for systems code due to their complex implementations and poor scalability. In this article, we revisit the scalability problem of interprocedural static analysis from a “Big Data” perspective. That is, we turn sophisticated code analysis into Big Data analytics and leverage novel data processing techniques to solve this traditional programming language problem. We propose Graspan , a disk-based parallel graph system that uses an edge-pair centric computation model to compute dynamic transitive closures on very large program graphs. We develop two backends for Graspan, namely, Graspan-C running on CPUs and Graspan-G on GPUs, and present their designs in the article. Graspan-C can analyze large-scale systems code on any commodity PC, while, if GPUs are available, Graspan-G can be readily used to achieve orders of magnitude speedup by harnessing a GPU’s massive parallelism. We have implemented fully context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases written in multiple languages such as Linux and Apache Hadoop demonstrates that their Graspan implementations are language-independent, scale to millions of lines of code, and are much simpler than their original implementations. Moreover, we show that these analyses can be used to uncover many real-world bugs in large-scale systems code. Zhiqiang Zuo 0002, Kai Wang 0029, Aftab Hussain 0001, Ardalan Amiri Sani, Yiyu Zhang, Shenming Lu, Wensheng Dou, Linzhang Wang, Xuandong Li, Chenxi Wang 0005, Guoqing Harry Xu |
ACM Trans. Comput. Syst. | 2 |
| 2019 | Grapple: A Graph System for Static Finite-State Property Checking of Large-Scale Systems CodeabstractMany real-world bugs in large-scale systems are related to object state that is supposed to obey a specified finite state machine (FSM). They are triggered when unexpected events occur on objects in certain states, making these objects transition in a way that violates their specifications. Detecting such FSM-related bugs with static analysis is challenging, especially in distributed systems that have large codebases. Zhiqiang Zuo 0002, John Thorpe, Qiuhong Pan, Shenming Lu, Kai Wang 0029, Guoqing Harry Xu, Linzhang Wang, Xuandong Li |
EuroSys | 6 |
| 2018 | RStream: Marrying Relational Algebra with Streaming for Efficient Graph Mining on A Single Machine
Kai Wang 0029, Zhiqiang Zuo 0002, John Thorpe, Tien Quang Nguyen, Guoqing Harry Xu |
OSDI | 1 |
| 2018 | Understanding and Combating Memory Bloat in Managed Data-Intensive SystemsabstractThe past decade has witnessed increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-oriented programming language such as Java is often the developer’s choice for implementing such applications, due to its quick development cycle and rich suite of libraries and frameworks. While the use of such languages makes programming easier, their automated memory management comes at a cost. When the managed runtime meets large volumes of input data, memory bloat is significantly magnified and becomes a scalability-prohibiting bottleneck. This article first studies, analytically and empirically, the impact of bloat on the performance and scalability of large-scale, real-world data-intensive systems. To combat bloat, we design a novel compiler framework, called F acade , that can generate highly efficient data manipulation code by automatically transforming the data path of an existing data-intensive application. The key treatment is that in the generated code, the number of runtime heap objects created for data classes in each thread is (almost) statically bounded , leading to significantly reduced memory management cost and improved scalability. We have implemented F acade and used it to transform seven common applications on three real-world, already well-optimized data processing frameworks: GraphChi, Hyracks, and GPS. Our experimental results are very positive: the generated programs have (1) achieved a 3% to 48% execution time reduction and an up to 88× GC time reduction, (2) consumed up to 50% less memory, and (3) scaled to much larger datasets. Khanh Nguyen 0001, Kai Wang 0029, Yingyi Bu, Lu Fang 0003, Guoqing Harry Xu |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 2017 | Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems CodeabstractThere is more than a decade-long history of using static analysis to find bugs in systems such as Linux. Most of the existing static analyses developed for these systems are simple checkers that find bugs based on pattern matching. Despite the presence of many sophisticated interprocedural analyses, few of them have been employed to improve checkers for systems code due to their complex implementations and poor scalability. In this paper, we revisit the scalability problem of interprocedural static analysis from a "Big Data" perspective. That is, we turn sophisticated code analysis into Big Data analytics and leverage novel data processing techniques to solve this traditional programming language problem. We develop Graspan, a disk-based parallel graph system that uses an edge-pair centric computation model to compute dynamic transitive closures on very large program graphs. Kai Wang 0029, Aftab Hussain 0001, Zhiqiang Zuo 0002, Guoqing Harry Xu, Ardalan Amiri Sani |
ASPLOS | 1 |
| 2015 | FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data ApplicationsabstractThe past decade has witnessed the increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-oriented programming language such as Java is often the developer's choice for implementing such applications, due to its quick development cycle and rich community resource. While the use of such languages makes programming easier, their automated memory management comes at a cost. When the managed runtime meets Big Data, this cost is significantly magnified and becomes a scalability-prohibiting bottleneck. This paper presents a novel compiler framework, called Facade, that can generate highly-efficient data manipulation code by automatically transforming the data path of an existing Big Data application. The key treatment is that in the generated code, the number of runtime heap objects created for data types in each thread is (almost) statically bounded, leading to significantly reduced memory management cost and improved scalability. We have implemented Facade and used it to transform 7 common applications on 3 real-world, already well-optimized Big Data frameworks: GraphChi, Hyracks, and GPS. Our experimental results are very positive: the generated programs have (1) achieved a 3%--48% execution time reduction and an up to 88X GC reduction; (2) consumed up to 50% less memory, and (3) scaled to much larger datasets. Khanh Nguyen 0001, Kai Wang 0029, Yingyi Bu, Lu Fang 0003, Jianfei Hu, Guoqing Harry Xu |
ASPLOS | 2 |
| 2015 | GraphQ: Graph Query Processing with Abstraction Refinement - Scalable and Programmable Analytics over Very Large Graphs on a Single PC
Kai Wang 0029, Guoqing Harry Xu, Zhendong Su 0001, Yu David Liu |
USENIX ATC | 1 |