Zhijia Zhao

/* zh sounds like j */

Associate Professor
RIPLE Research Group
Computer Science and Engineering, UC Riverside

Short Bio: I received my Ph.D. in Computer Science from the College of William and Mary in 2015 under the supervision of Prof. Xipeng Shen. In the same year, I joined UC Riverside as an assistant professor, and later became an associate professor in 2020. I am fortunate and grateful to be a recipient of NSF CAREER Award (2018), Regents Faculty Fellowship (2018), Hellman Fellowship (2018), Best Paper Runner-up Award at MobiSys'18, and Best Paper Award at ASPLOS'20 and ASPLOS'22.

Research Interests

Our research group focuses on developing algorithms and software libraries for high-performance data analytics, especially for non-tabular data (a.k.a, NoSQL), such as graph data, semi-structured data (e.g., JSON/XML), markup data (e.g., HTML), raw text, and binary serialization data (e.g., ProtoBuf). We achieve performance optimization through enhanced parallelism, elimination of redundant computations, and improved data locality via more efficient data traversal. Additionally, we are interested in utilizing program analysis and AI/ML techniques to address the correctness and performance challenges in real-world software applications and systems.

Selected Works

Streaming and Indexing of Semi-Structured Data [PPoPP'17, ASPLOS'19, VLDB'21, ASPLOS'22 (Best Paper Award), SIGMOD'23]
Semi-structured data, like JSON and its variations, is the de facto standard for information exchange on the web and the basis for modern NoSQL document stores (e.g., MongoDB and Firebase). With nested structures, it is difficult to process such data in a scalable way. To address this, we leverage the automata theory and parallelization techniques to automatically generate data-parallel code with small memory footprint.
Graph Analytics: GPU Acceleration [ASPLOS'18, EuroSys'20] , Incremental [EuroSys'21, SoCC'24] and Concurrent Evaluation [ASPLOS'23]
Many real-world computation problems can be modeled as graph problems. As the graphs are often large and irregular by nature, it is difficult to process them efficiently. We developed novel graph transformations to make graph more ``regular'' so that they can be processed efficiently on GPUs. To deal with the case that the graph is too large to fit into GPU memory, we designed a technique that can efficiently seperate the active part of the graph and only load that into the GPU memory. As the graph changes dynamically, we found a general solution that can incrementally evaluate graph queries (based on graph triangle inequalities) to reduce the latency. Finally, in the senario of concurrent graph queries, we proposed an alignment method that reduces the ``misalignments'' among graph queries that are evaluated together.
Analyzing and Preserving Mobile App State [MobiSys'18 (Best Paper Runner-up Award), OOPSLA'20]
Mobile systems (e.g., Android) expose changes on the device configuration (e.g., orientation, screen size, or keyboard availability) to the apps at runtime to enable rich user experiences. When handled inappropriately, these changes can cause unresponsiveness, state loss, or even app crash. In this work, we analyze the common causes to various runtime change issues and design novel runtime change handling solutions to address them.
Parallelizing Finite-State Machine (FSM) Computations [ASPLOS'14, ASPLOS'15, PACT'16, ICS'17, ASPLOS'20 (Best Paper Award), ASPLOS'21]
FSM serves as the computation model for a variety of performance-critical applications (e.g., pattern matching and decoding). However, the model runs in serial – each transition depends on the prior state. In a series of works, we "broke" the state dependencies with disciplined speculation (ASPLOS'14 and '15), introduced multi-level parallelism (PACT'16), examined and improved the scalability of FSM parallelization (ICS'17, ASPLOS'21). In addition, we found that bitstream programs that rely on bitwise operations (e.g., AND, SHIFT, and XOR) to process long sequences of bits, can be effectively modeled by FSMs, hence parallelizable with FSM parallelization techniques. To achieve this, we proposed bit-level dependency analysis and modeling techniques to reduce bitstream programs to FSMs (ASPLOS'20).


"Research is to see what everyone else has seen, and to think what nobody else has thought." - Albert Szent-Gyorgyi