Note: This page will not be maintained.


large product photo

Not young.

Liu, Peng

Department of Computer Science and Engineering

Hong Kong University of Science and Technology


   About me:

 I graduate from HKUST, under the supervision of Prof., Charles Zhang, and work as a Postdoc at Purdue University now, under the supervision of Prof., Xiangyu Zhang. My research interests generally lie in mobile technologies.

  Research work:

  • Peng Liu, Omer Tripp, Charles Zhang. Grail: Context-aware Fixing of Concurrency Bugs. In FSE 2014.
    • Grail is a novel fixing algorithm that departs from previous techniques by simultaneously providing both correctness and optimality guarantees. Grail synthesizes bug-free yet optimal lock-based synchronization. To achieve this, Grail builds an analysis model of the buggy code that is both contextual, distinguishing different aliasing contexts to ensure efficiency, and global, accounting for the entire synchronization behavior of the involved threads to ensure correctness. Grail patches typically incur only 2% overhead.

  • Peng Liu, Omer Tripp, Xiangyu Zhang. Flint: Fixing Linearizability Violations (conditionally accepted by OOPSLA 2014).
    • We rewrite the code with multiple Map calls, which violates the linearizability, as the semantically equivalent code with fewer Map calls (typically with one call), which minimizes the chance of buggy interleavings and guarantees correctness under certain conditions. Flint fixes 96% of the violations from 27 applications.

  • Peng Liu, Charles Zhang. Unleashing Concurrency for Irregular Data Structures. In ICSE 2014.
    • Given the data structure protected by a single lock, we systematically replace it with the fine-grained locks (multiple-granularity locks), allowing concurrent accesses of disjoint parts and better performance while disallowing the non-atomic interference.

  • Peng Liu, Julian Dolby, and Charles Zhang. Finding incorrect compositions of atomicity. In ESEC/FSE 2013.
    • Programmers often compose the atomic APIs to achieve new functionality, of which the atomicity is intended but not implemented. We provide a method to discover the unspecified atomicity intention, which respects both the data-centric atomicity and the inherent program logic between API calls. We find previously unknown bugs in popular applications.

  • Peng Liu, Charles Zhang. Axis: automatically fixing atomicity violations through solving control constraints. In ICSE 2012.
    • We build a solver upon the discrete control theory, which outputs the provably correct fixes given the input atomicity violations. The fixes won't introduce new bugs and incur the moderate runtime overhead.

  • Yin Wang, Peng Liu, Terence Kelly, Stephane Lafortune, Spyros A. Reveliotis, Charles Zhang. On atomicity enforcement in concurrent software via discrete event systems theory. In Decision and Control 2012.
    • While the ICSE '12 paper presents the iterative fixing, this paper presents the global fixing. Given all bugs which are uniformly denoted as concurrent execution vectors, we reduce the bug fixing to a vector separation problem (well-studied geometry problem). A nice property of global fixing is that the fixes achieve the same level of concurrency with much fewer lock operations, as compared to the iterative fixing (ICSE '12 work).

  • Peng Liu, Charles Zhang. Pert: The Application-Aware Tailoring of Java Object Persistence. In TSE 2012.
    • Leveraging the results from static analysis, we optimize the object persistence so that it persists only the data structure parts to be used or modified since last persistence.

  • Jeff Huang, Peng Liu, Charles Zhang. LEAP: lightweight deterministic multi-processor replay of concurrent java programs. In FSE 2010.
    • We propose a record/replay approach for concurrent applications. The approach shares the same insight as Lamport clock but does not need to record the history for each thread.

   Hobbies: Basketball