Zhijia Zhao

/* zh sounds like j */

Assistant Professor
Computer Science and Engineering, UC Riverside

Before joining UCR in 2015, I received my Ph.D. in Computer Science from the College of William and Mary under the supervision of Prof. Xipeng Shen, and worked at Mozilla Corporation (Summer 2012), North Carolina State University (2014-2015), and Pacific Northwest National Lab (Summer 2015). I am a recipient of NSF CAREER Award (2018), Regents Faculty Fellowship (2018), Hellman Fellowship (2018), and Best Paper Runner-up Award at MobiSys'18. More details are in my C.V.. [I am recruiting Ph.D. students, please email me if you are interested.]

Research Interests

Recent Work

Programming system for scalable processing of semi-structured data PPoPP'17, ASPLOS'19

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 it in a scalable way. We address this by leveraging the automata theory and parallelization techniques to automatically generate data-parallel code with small memory footprint.

Graph transformations for GPU-friendly graph processing ASPLOS'18

Real-world graphs for data analytics tend to be large and irregular by nature. These properties make them difficult to take advantages of modern parallel architectures like GPUs, which are mainly designed for regular computations with relatively limited memory capacity. We address these challenges with novel graph transformations that can ``regularize'' the computations and minimize the data transferring between device and host memory.

Parallelizing finite-state machine (FSM) computations ASPLOS'14, ASPLOS'15, PACT'16, ICS'17

FSM is a fundamental computation model with a variety of performance-critical applications (e.g., pattern matching and decoding). However, the model executes in serial by design – the current transition depends on the prior state. In a series of works, we ``break'' the state dependencies with disciplined speculation (ASPLOS'14), modeled by lightweight online profiling (ASPLOS'15). In addition, we expand the speculation to SIMD level (PACT'16) and bring the scalability sensitivity into the speculation for many-core processors (ICS'17).

Reliable runtime change handling for mobile apps MobiSys'18 (Best Paper Runner-up)

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 reveal a common cause to various runtime change issues – activity restarting, and design a restarting-free runtime change handling solution – RuntimeDroid, which successfully addressed 197/197 runtime change issues reported on Github.