Guoqing Xu

ORCID: 0000-0003-4737-2146
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Parallel Computing and Optimization Techniques
  • Software Testing and Debugging Techniques
  • Software System Performance and Reliability
  • Cloud Computing and Resource Management
  • Software Engineering Research
  • Security and Verification in Computing
  • Graph Theory and Algorithms
  • Distributed systems and fault tolerance
  • Advanced Graph Neural Networks
  • Logic, programming, and type systems
  • Advanced Data Storage Technologies
  • Advanced Software Engineering Methodologies
  • Software Reliability and Analysis Research
  • Formal Methods in Verification
  • Distributed and Parallel Computing Systems
  • Advanced Malware Detection Techniques
  • Advanced Database Systems and Queries
  • Stochastic Gradient Optimization Techniques
  • Scientific Computing and Data Management
  • Caching and Content Delivery
  • Cryptography and Data Security
  • IoT and Edge/Fog Computing
  • Power Systems and Renewable Energy
  • Cloud Data Security Solutions
  • Image Enhancement Techniques

University of California, Los Angeles
2018-2023

UCLA Health
2019-2023

East China Normal University
2004-2023

UC Irvine Health
2012-2021

Microsoft Research (United Kingdom)
2019-2021

Wuhan Institute of Technology
2021

University of South China
2021

Daqing Oilfield General Hospital
2021

Beijing Institute of Technology
2021

University of Chicago
2019

To cope with the high resource (network and compute) demands of real-time video analytics pipelines, recent systems have relied on frame filtering. However, filtering has typically been done neural networks running edge/backend servers that are expensive to operate. This paper investigates on-camera filtering, which moves beginning pipeline. Unfortunately, we find commodity cameras limited compute resources only permit via differencing based low-level features. Used incorrectly, such...

10.1145/3387514.3405874 article EN 2020-07-30

A memory leak in a Java program occurs when object references that are no longer needed unnecessarily maintained. Such leaks difficult to understand because static analyses typically cannot precisely identify these redundant references, and existing dynamic for detection track report fine-grained information about individual objects, producing results usually hard interpret lack precision.

10.1145/1368088.1368110 article EN 2008-01-01

Continuous processing of a streaming graph maintains an approximate result the iterative computation on recent version graph. Upon user query, accurate current can be quickly computed by feeding results to --- form incremental that corrects (small amount of) error in result. Despite effectiveness this approach growing graphs, it is generally not applicable when edge deletions are present existing approximations lead either incorrect (e.g., monotonic computations terminate at minima/maxima)...

10.1145/3037697.3037748 article EN 2017-04-04

The past decade has witnessed the increasing demands on data-driven business intelligence that led to proliferation of data-intensive applications. A managed object-oriented programming language such as Java is often developer's choice for implementing applications, due its quick development cycle and rich community resource. While use languages makes easier, their automated memory management comes at a cost. When runtime meets Big Data, this cost significantly magnified becomes...

10.1145/2694344.2694345 article EN 2015-03-03

Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especially true in highly layered Java applications. Often at the heart of these optimization lie computations that, with great expense, produce data values that have little impact on program's final output. Constructing a new date formatter to format every date, or populating large set full expensively constructed structures only check its size: involve costs out line benefits gained. disparity...

10.1145/1806596.1806617 article EN 2010-06-05

Many large-scale Java applications suffer from runtime bloat. They execute large volumes of methods, and create many temporary objects, all to relatively simple operations. There are opportunities for performance optimizations in these applications, but most being missed by existing optimization tooling technology. While JIT struggle a few percent, experts analyze deployed regularly find gains 2x or more.

10.1145/1542476.1542523 article EN 2009-06-15

Runtime bloat degrades significantly the performance and scalability of software systems. An important source is inefficient use containers. It expensive to create inefficiently-used containers invoke their associated methods, as this may ultimately execute large volumes code, with call stacks dozens deep, allocate many temporary objects.

10.1145/1806596.1806616 article EN 2010-06-05

Generally believed to be a problem belonging the compiler and architecture communities, performance optimization has rarely gained attention in mainstream software engineering research. However, due proliferation of large-scale object-oriented designed solve increasingly complex problems, issues stand out, preventing applications from meeting their requirements. Many such result design principles adopted widely research community, as idea reuse patterns. We argue that, modern era when...

10.1145/1882362.1882448 article EN 2010-11-07

Software tools for program understanding, transformation, verification, and testing often require an efficient yet highly-precise alias analysis. Typically this is done by computing points-to information, from which queries can be answered. This paper presents a novel context-sensitive, demand-driven analysis Java that achieves efficiency answering directly, instead of relying on underlying The formulated as context-free-language (CFL) reachability problem over language models calling...

10.1145/2001420.2001440 article EN 2011-07-17

Modern object-oriented software commonly suffers from runtime bloat that significantly affects its performance and scalability. Studies have shown one important pattern of is the work repeatedly done to compute same data values. Very often cost computation very high it thus beneficial memoize invariant values for later use. While this a common practice in real-world development, manually finding daunting task during development tuning. To help developers quickly find such optimization...

10.1145/2491411.2491416 article EN 2013-08-18

There is more than a decade-long history of using static analysis to find bugs in systems such as Linux. Most the existing analyses developed for these are simple checkers that based on pattern matching. Despite presence many sophisticated interprocedural analyses, few them have been employed improve code due their complex implementations and poor scalability. In this paper, we revisit scalability problem from "Big Data" perspective. That is, turn into Big Data analytics leverage novel data...

10.1145/3037697.3037744 article EN 2017-04-04

Graph mining is an important category of graph algorithms that aim to discover structural patterns such as cliques and motifs in a graph. While great deal work has been done recently on computation PageRank, systems support for scalable still limited. Existing Arabesque focus distributed computing need large amounts compute memory resources.We built RStream, the first single-machine, out-of-core system leverages disk store intermediate data. At its core are two innovations: (1) rich...

10.5555/3291168.3291225 article EN 2018-10-08

Most Big Data systems are written in managed languages, such as Java, C#, or Scala. These suffer from severe memory problems due to the massive volume of objects created process input data. Allocating and deallocating a sea data puts strain on existing garbage collectors (GC), leading high management overheads reduced performance.This paper describes design implementation Yak, friendly collector that provides throughput low latency for all JVM-based languages. Yak divides heap into control...

10.5555/3026877.3026905 article EN 2016-11-02

As aspect-oriented software development gains popularity, there is growing interest in using aspects to implement cross-cutting concerns object-oriented systems. When features are added an program, or when existing program modified, the new needs be regression tested validate these changes. To reduce cost of testing, a regression-test-selection technique can used select only necessary subset test cases rerun. Unfortunately, approaches for selection not effective presence aspectual...

10.1109/icse.2007.72 article EN Proceedings/Proceedings - International Conference on Software Engineering 2007-05-01

A big source of run-time performance problems in large-scale, object-oriented applications is the frequent creation data structures (by same allocation site) whose lifetimes are disjoint, and shapes content always same. Constructing these computing values many times expensive; significant improvements can be achieved by reusing their instances, shapes, and/or rather than reconstructing them. This paper presents a technique that used to help programmers find sites create such improve...

10.1145/2384616.2384690 article EN 2012-10-19

In large programs written in managed languages such as Java and C#, holding unnecessary references often results memory leaks bloat, degrading significantly their run-time performance scalability. Despite the existence of many leak detectors for languages, these target low-level objects; a result, reports contain false warnings lack sufficient semantic information to help diagnose problems. This paper introduces specification-based technique called LeakChaser that can not only capture...

10.1145/1993316.1993530 article EN ACM SIGPLAN Notices 2011-06-04

Over the past decade, increasing demands on data-driven business intelligence have led to proliferation of large-scale, data-intensive applications that often huge amounts data (often at terabyte or petabyte scale) process. An object-oriented programming language such as Java is developer's choice for implementing applications, primarily due its quick development cycle and rich community resource. While use languages makes easier, significant performance problems can be seen --- combination...

10.1145/2464157.2466485 article EN 2013-06-20

Real-world data-parallel programs commonly suffer from great memory pressure, especially when they are executed to process large datasets. Memory problems lead excessive GC effort and out-of-memory errors, significantly hurting system performance scalability. This paper proposes a systematic approach that can help tasks survive improving their scalability without needing any manual tune parameters. Our advocates interruptible task (ITask), new type of be interrupted upon pressure---with part...

10.1145/2815400.2815407 article EN 2015-10-01

Evolving graph processing involves repeating analyses, which are often iterative, over multiple snapshots of the corresponding to different points in time. Since an evolving share a great number vertices and edges, traditional approaches that process these one at time without exploiting this overlap contain much wasted effort on both data loading computation, making them extremely inefficient. In article, we identify major sources inefficiencies present two optimization techniques address...

10.1145/2992784 article EN ACM Transactions on Architecture and Code Optimization 2016-10-25

Modern data-parallel systems such as Spark rely increasingly on in-memory computing that can significantly improve the efficiency of iterative algorithms. To process real-world datasets, modern often require extremely large amounts memory, which are both costly and energy-inefficient. Emerging non-volatile memory (NVM) technologies offers high capacity compared to DRAM low energy SSDs. Hence, NVMs have potential fundamentally change dichotomy between durable storage in Big Data processing....

10.1145/3314221.3314650 article EN 2019-06-07

In large programs written in managed languages such as Java and C#, holding unnecessary references often results memory leaks bloat, degrading significantly their run-time performance scalability. Despite the existence of many leak detectors for languages, these target low-level objects; a result, reports contain false warnings lack sufficient semantic information to help diagnose problems. This paper introduces specification-based technique called LeakChaser that can not only capture...

10.1145/1993498.1993530 article EN 2011-06-04
Coming Soon ...