Kai Wang 0029

dblp:78/2022-29 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
1.132020
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.522018
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.412020
Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020
Program analysis
data flow analysis
0.412020
Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020
Program analysis › static analysis
interprocedural analysis
0.412020
Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020
Parallel and multicore computing
parallel graph algorithms
0.412020
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.412020
Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan · ACM Trans. Comput. Syst. 2020
Program verification › model checking
finite-state verification
0.412019
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.412019
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.312018
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.312018
Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018
Program analysis › static analysis
bug detection
0.312017
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.312017
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.212015
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.212015
FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications · ASPLOS 2015
High-performance computing
data-intensive computing
0.112018
Understanding and Combating Memory Bloat in Managed Data-Intensive Systems · ACM Trans. Softw. Eng. Methodol. 2018
Graph data management
graph processing
0.112017
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.112017
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
YearPublicationVenuePosition
2020 Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan
abstract
There 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 Code
abstract
Many 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
EuroSys6
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
OSDI1
2018 Understanding and Combating Memory Bloat in Managed Data-Intensive Systems
abstract
The 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 Code
abstract
There 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
ASPLOS1
2015 FACADE: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications
abstract
The 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
ASPLOS2
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 ATC1