VLDB 2026 Research / reviewers in the wild / expert
Gregory L. Lee
dblp:04/237
· DBLP profile ↗
15ranked-venue papers
1as first author
1since 2021 · last 2024
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 15 · 1 first-author · 1 since 2021
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.
| Computer architecture, parallel and distributed computing, and storage systems
7 papers |
Parallel and multicore computing · 61% High-performance computing · 38% Distributed systems · 1% | |
| Software engineering, system software, and programming languages
5 papers |
Concurrent programming · 36% Software testing · 32% Compilers and program optimization · 18% |
Topics — the 16 heaviest of 20, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing › parallel computing
parallel program debugging |
0.9 | 3 | 2020 | ArcherGear: data race equivalencing for expeditious HPC debugging · PPoPP 2020 Noise Injection Techniques to Expose Subtle and Unintended Message Races · PPoPP 2017 Clock delta compression for scalable order-replay of non-deterministic parallel applications · SC 2015 |
Concurrent programming › concurrency bug detection
data race detection |
0.4 | 1 | 2020 | ArcherGear: data race equivalencing for expeditious HPC debugging · PPoPP 2020 |
Software testing › test infrastructure
test framework |
0.4 | 1 | 2019 | Multi-Level Analysis of Compiler-Induced Variability and Performance Tradeoffs · HPDC 2019 |
High-performance computing
performance optimization |
0.4 | 1 | 2019 | Multi-Level Analysis of Compiler-Induced Variability and Performance Tradeoffs · HPDC 2019 |
Parallel and multicore computing
MPI |
0.3 | 1 | 2017 | Noise Injection Techniques to Expose Subtle and Unintended Message Races · PPoPP 2017 |
Parallel and multicore computing
parallel programming models |
0.3 | 1 | 2017 | Noise Injection Techniques to Expose Subtle and Unintended Message Races · PPoPP 2017 |
Parallel and multicore computing › parallel computing › parallel program debugging
deterministic replay |
0.2 | 1 | 2015 | Clock delta compression for scalable order-replay of non-deterministic parallel applications · SC 2015 |
Parallel and multicore computing › parallel programming models › directive-based programming
OpenMP |
0.1 | 1 | 2020 | ArcherGear: data race equivalencing for expeditious HPC debugging · PPoPP 2020 |
Parallel and multicore computing › parallel programming models
shared-memory parallelization |
0.1 | 1 | 2020 | ArcherGear: data race equivalencing for expeditious HPC debugging · PPoPP 2020 |
High-performance computing › finite element method
finite element simulation |
0.1 | 1 | 2019 | Multi-Level Analysis of Compiler-Induced Variability and Performance Tradeoffs · HPDC 2019 |
High-performance computing
scientific computing |
0.1 | 1 | 2019 | Multi-Level Analysis of Compiler-Induced Variability and Performance Tradeoffs · HPDC 2019 |
Debugging and program repair
fault localization |
0.1 | 1 | 2009 | Scalable temporal order analysis for large scale debugging · SC 2009 |
High-performance computing › supercomputing
petascale computing |
0.1 | 1 | 2008 | Lessons learned at 208K: towards debugging millions of cores · SC 2008 |
Software maintenance and evolution › software ecosystems
dependency management |
0.1 | 1 | 2015 | The Spack package manager: bringing order to HPC software chaos · SC 2015 |
High-performance computing
large-scale parallel debugging |
0.0 | 1 | 2009 | Scalable temporal order analysis for large scale debugging · SC 2009 |
Distributed systems › distributed system architecture › communication architecture
scalable communication infrastructure |
0.0 | 1 | 2008 | Lessons learned at 208K: towards debugging millions of cores · SC 2008 |
Methods — techniques the papers use, named apart from their topics
data race equivalencing · 0.9fault injection · 0.8lamport clocks · 0.4bisection algorithms · 0.4bisection algorithm · 0.4noise injection · 0.3formal analysis of nondeterminism · 0.3stack trace analysis · 0.3compression algorithms · 0.2compression algorithm · 0.2dynamic analysis · 0.2static analysis · 0.1dataflow analysis · 0.1data flow analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Distributed Order Recording Techniques for Efficient Record-and-Replay of Multi - Threaded ProgramsabstractAfter all these years and all these other shared memory programming frameworks, OpenMP is still the most popular one. However, its greater levels of non-deterministic execution makes debugging and testing more challenging. The ability to record and deterministically replay the program execution is key to address this challenge. However, scalably replaying OpenMP programs is still an unresolved problem. In this paper, we propose two novel techniques that use Distributed Clock (DC) and Distributed Epoch (DE) recording schemes to eliminate excessive thread synchronization for OpenMP record and replay. Our evaluation on representative HPC applications with ReOMP, which we used to realize DC and DE recording, shows that our approach is 2-5x more efficient than traditional approaches that synchronize on every shared-memory access. Furthermore, we demonstrate that our approach can be easily combined with MPI-Ievel replay tools to replay non-trivial MPI+OpenMP applications. We achieve this by integrating ReOMP into ReMPI, an existing scalable MPI record-and-replay tool, with only a small MPI-scale-independent runtime overhead. Shiman Meng, Luanzheng Guo, Kento Sato, Dong H. Ahn, Ignacio Laguna, Gregory L. Lee, Martin Schulz 0001 |
CLUSTER | 8 |
| 2020 | ArcherGear: data race equivalencing for expeditious HPC debuggingabstractThere is growing uptake of shared memory parallelism in high performance computing, and this has increased the need for data race checking during the creation of new parallel codes or parallelizing existing sequential codes. While race checking concepts and implementations have been around for many concurrency models, including tasking models such as Cilk and PThreads (e.g., the Thread Sanitizer tool), practically usable race checkers for other APIs such as OpenMP have been lagging. For example, the OpenMP parallelization of an important library (namely Hypre) was initially unsuccessful due to inexplicable nondeterminism introduced when the code was optimized, and later root-caused to a race by the then recently developed OpenMP race checker Archer [2]. The open-source Archer now enjoys significant traction within several organizations. Samuel Thayer, Ganesh Gopalakrishnan, Ian Briggs, Michael Bentley, Dong H. Ahn, Ignacio Laguna, Gregory L. Lee |
PPoPP | 7 |
| 2019 | Multi-Level Analysis of Compiler-Induced Variability and Performance TradeoffsabstractSuccessful HPC software applications are long-lived. When ported across machines and their compilers, these applications often produce different numerical results, many of which are unacceptable. Such variability is also a concern while optimizing the code more aggressively to gain performance. Efficient tools that help locate the program units (files and functions) within which most of the variability occurs are badly needed, both to plan for code ports and to root-cause errors due to variability when they happen in the field. In this work, we offer an enhanced version of the open-source testing framework FLiT to serve these roles. Key new features of FLiT include a suite of bisection algorithms that help locate the root causes of variability. Another added feature allows an analysis of the tradeoffs between performance and the degree of variability. Our new contributions also include a collection of case studies. Results on the MFEM finite-element library include variability/performance tradeoffs, and the identification of a (hitherto unknown) abnormal level of result-variability even under mild compiler optimizations. Results from studying the Laghos proxy application include identifying a significantly divergent floating-point result-variability and successful root-causing down to the problematic function over as little as 14 program executions. Finally, in an evaluation of 4,376 controlled injections of floating-point perturbations on the LULESH proxy application, we showed that the FLiT framework has 100% precision and recall in discovering the file and function locations of the injections all within an average of only 15 program executions. Michael Bentley, Ian Briggs, Ganesh Gopalakrishnan, Dong H. Ahn, Ignacio Laguna, Gregory L. Lee, Holger E. Jones |
HPDC | 6 |
| 2018 | SWORD: A Bounded Memory-Overhead Detector of OpenMP Data Races in Production RunsabstractThe detection and elimination of data races in largescale OpenMP programs is of critical importance. Unfortunately, today's state-of-the-art OpenMP race checkers suffer from high memory overheads and/or miss races. In this paper, we present SWORD, a data race detector that significantly improves upon these limitations. SWORD limits the application slowdown and memory usage by utilizing only a bounded, user-adjustable memory buffer to collect targeted memory accesses. When the buffer fills up, the accesses are compressed and flushed to a file system for later offline analysis. SWORD builds on an operational semantics that formally captures the notion of concurrent accesses within OpenMP regions. An offline race checker that is driven by these semantic rules allows SWORD to improve upon happens-before techniques that are known to mask races. To make its offline analysis highly efficient and scalable, SWORD employs effective self-balancing interval-tree-based algorithms. Our experimental results demonstrate that SWORD is capable of detecting races even within programs that use over 90% of the memory on each compute node. Further, our evaluation shows that it matches or exceeds the best available dynamic OpenMP race checker in detection capability while remaining efficient in execution time. Simone Atzeni, Ganesh Gopalakrishnan, Zvonimir Rakamaric, Ignacio Laguna, Gregory L. Lee, Dong H. Ahn |
IPDPS | 5 |
| 2017 | Noise Injection Techniques to Expose Subtle and Unintended Message RacesabstractDebugging intermittently occurring bugs within MPI applications is challenging, and message races, a condition in which two or more sends race to match with a receive, are one of the common root causes. Many debugging tools have been proposed to help programmers resolve them, but their runtime interference perturbs the timing such that subtle races often cannot be reproduced with debugging tools. We present novel noise injection techniques to expose message races even under a tool's control. We first formalize this race problem in the context of non-deterministic parallel applications and use this analysis to determine an effective noise-injection strategy to uncover them. We codified these techniques in NINJA (Noise INJection Agent) that exposes these races without modification to the application. Our evaluations on synthetic cases as well as a real-world bug in Hypre-2.10.1 show that NINJA significantly helps expose races. Kento Sato, Dong H. Ahn, Ignacio Laguna, Gregory L. Lee, Martin Schulz 0001, Christopher M. Chambreau |
PPoPP | 4 |
| 2016 | ARCHER: Effectively Spotting Data Races in Large OpenMP ApplicationsabstractOpenMP plays a growing role as a portable programming model to harness on-node parallelism, yet, existing data race checkers for OpenMP have high overheads and generate many false positives. In this paper, we propose the first OpenMP data race checker, ARCHER, that achieves high accuracy, low overheads on large applications, and portability. ARCHER incorporates scalable happens-before tracking, exploits structured parallelism via combined static and dynamic analysis, and modularly interfaces with OpenMP runtimes. ARCHER significantly outperforms TSan and Intel® Inspector XE, while providing the same or better precision. It has helped detect critical data races in the Hypre library that is central to many projects at Lawrence Livermore National Laboratory and elsewhere. Simone Atzeni, Ganesh Gopalakrishnan, Zvonimir Rakamaric, Dong H. Ahn, Ignacio Laguna, Martin Schulz 0001, Gregory L. Lee, Joachim Jenke, Matthias S. Müller |
IPDPS | 7 |
| 2015 | A Scalable Prescriptive Parallel Debugging ModelabstractDebugging is a critical step in the development of any parallel program. However, the traditional interactive debugging model, where users manually step through code and inspect their application, does not scale well even for current supercomputers due its centralized nature. While lightweight debugging models, which have been proposed as an alternative, scale well, they can currently only debug a subset of bug classes. We therefore propose a new model, which we call prescriptive debugging, to fill this gap between these two approaches. This user-guided model allows programmers to express and test their debugging intuition in a way that helps to reduce the error space. Based on this debugging model we introduce a prototype implementation embodying this model, the DySectAPI, allowing programmers to construct probe trees for automatic, event-driven debugging at scale. In this paper we introduce the concepts behind DySectAPI and, using both experimental results and analytical modelling, we show that the DySectAPI implementation can run with a low overhead on current systems. We achieve a logarithmic scaling of the prototype and show predictions that even for a large system the overhead of the prescriptive debugging model will be small. Nicklas Bo Jensen, Niklas Quarfot Nielsen, Gregory L. Lee, Sven Karlsson, Matthew P. LeGendre, Martin Schulz 0001, Dong H. Ahn |
IPDPS | 3 |
| 2015 | The Spack package manager: bringing order to HPC software chaosabstractLarge HPC centers spend considerable time supporting software for thousands of users, but the complexity of HPC software is quickly outpacing the capabilities of existing software management tools. Scientific applications require specific versions of compilers, MPI, and other dependency libraries, so using a single, standard software stack is infeasible. However, managing many configurations is difficult because the configuration space is combinatorial in size. Todd Gamblin, Matthew P. LeGendre, Michael R. Collette, Gregory L. Lee, Adam Moody, Bronis R. de Supinski, Scott Futral |
SC | 4 |
| 2015 | Clock delta compression for scalable order-replay of non-deterministic parallel applicationsabstractThe ability to record and replay program execution helps significantly in debugging non-deterministic MPI applications by reproducing message-receive orders. However, the large amount of data that traditional record-and-reply techniques record precludes its practical applicability to massively parallel applications. In this paper, we propose a new compression algorithm, Clock Delta Compression (CDC), for scalable record and replay of non-deterministic MPI applications. CDC defines a reference order of message receives based on a totally ordered relation using Lamport clocks, and only records the differences between this reference logical-clock order and an observed order. Our evaluation shows that CDC significantly reduces the record data size. For example, when we apply CDC to Monte Carlo particle transport Benchmark (MCB), which represents common non-deterministic communication patterns, CDC reduces the record size by approximately two orders of magnitude compared to traditional techniques and incurs between 13.1% and 25.5% of runtime overhead. Kento Sato, Dong H. Ahn, Ignacio Laguna, Gregory L. Lee, Martin Schulz 0001 |
SC | 4 |
| 2013 | Efficient and Scalable Retrieval Techniques for Global File PropertiesabstractLarge-scale systems typically mount many different file systems with distinct performance characteristics and capacity. Applications must efficiently use this storage in order to realize their full performance potential. Users must take into account potential file replication throughout the storage hierarchy as well as contention in lower levels of the I/O system, and must consider communicating the results of file I/O between application processes to reduce file system accesses. Addressing these issues and optimizing file accesses requires detailed runtime knowledge of file system performance characteristics and the location(s) of files on them. In this paper, we propose Fast Global File Status (FGFS), a scalable mechanism to retrieve file information, such as its degree of distribution or replication and consistency. We use a novel node-local technique that turns expensive, non-scalable file system calls into simple string comparison operations. FGFS raises the namespace of a locally-defined file path to a global namespace with little or no file system calls to obtain global file properties efficiently. Our evaluation on a large multi-physics application shows that most FGFS file status queries on its executable and 848 shared library files complete in 272 milliseconds or faster at 32,768 MPI processes. Even the most expensive operation, which checks global file consistency, completes in under 7 seconds at this scale, an improvement of several orders of magnitude over the traditional checksum technique. Dong H. Ahn, Michael J. Brim, Bronis R. de Supinski, Todd Gamblin, Gregory L. Lee, Matthew P. LeGendre, Barton P. Miller, Adam Moody, Martin Schulz 0001 |
IPDPS | 5 |
| 2013 | LIBI: A framework for bootstrapping extreme scale software systems
Joshua D. Goehner, Dorian C. Arnold, Dong H. Ahn, Gregory L. Lee, Bronis R. de Supinski, Matthew P. LeGendre, Barton P. Miller, Martin Schulz 0001 |
Parallel Comput. | 4 |
| 2009 | Scalable temporal order analysis for large scale debuggingabstractWe present a scalable temporal order analysis technique that supports debugging of large scale applications by classifying MPI tasks based on their logical program execution order. Our approach combines static analysis techniques with dynamic analysis to determine this temporal order scalably. It uses scalable stack trace analysis techniques to guide selection of critical program execution points in anomalous application runs. Our novel temporal ordering engine then leverages this information along with the application's static control structure to apply data flow analysis techniques to determine key application data such as loop control variables. We then use lightweight techniques to gather the dynamic data that determines the temporal order of the MPI tasks. Our evaluation, which extends the Stack Trace Analysis Tool (STAT), demonstrates that this temporal order analysis technique can isolate bugs in benchmark codes with injected faults as well as a real world hang case with AMG2006. Dong H. Ahn, Bronis R. de Supinski, Ignacio Laguna, Gregory L. Lee, Ben Liblit, Barton P. Miller, Martin Schulz 0001 |
SC | 4 |
| 2008 | Overcoming Scalability Challenges for Tool Daemon LaunchingabstractMany tools that target parallel and distributed environments must co-locate a set of daemons with the distributed processes of the target application. However, efficient and portable deployment of these daemons on large scale systems is an unsolved problem. We overcome this gap with LaunchMON, a scalable, robust, portable, secure, and general purpose infrastructure for launching tool daemons. Its API allows tool builders to identify all processes of a target job, launch daemons on the relevant nodes and control daemon interaction. Our results show that LaunchMON scales to very large daemon counts and substantially enhances performance over existing ad hoc mechanisms. Dong H. Ahn, Dorian C. Arnold, Bronis R. de Supinski, Gregory L. Lee, Barton P. Miller, Martin Schulz 0001 |
ICPP | 4 |
| 2008 | Lessons learned at 208K: towards debugging millions of coresabstractPetascale systems will present several new challenges to performance and correctness tools. Such machines may contain millions of cores, requiring that tools use scalable data structures and analysis algorithms to collect and to process application data. In addition, at such scales, each tool itself will become a large parallel application - already, debugging the full Blue-Gene/L (BG/L) installation at the Lawrence Livermore National Laboratory requires employing 1664 tool daemons. To reach such sizes and beyond, tools must use a scalable communication infrastructure and manage their own tool processes efficiently. Some system resources, such as the file system, may also become tool bottlenecks. In this paper, we present challenges to petascale tool development, using the stack trace analysis tool (STAT) as a case study. STAT is a lightweight tool that gathers and merges stack traces from a parallel application to identify process equivalence classes. We use results gathered at thousands of tasks on an Infiniband cluster and results up to 208 K processes on BG/L to identify current scalability issues as well as challenges that will be faced at the petascale. We then present implemented solutions to these challenges and show the resulting performance improvements. We also discuss future plans to meet the debugging demands of petascale machines. Gregory L. Lee, Dong H. Ahn, Dorian C. Arnold, Bronis R. de Supinski, Matthew P. LeGendre, Barton P. Miller, Martin Schulz 0001, Ben Liblit |
SC | 1 |
| 2007 | Stack Trace Analysis for Large Scale DebuggingabstractWe present the Stack Trace Analysis Tool (STAT) to aid in debugging extreme-scale applications. STAT can reduce problem exploration spaces from thousands of processes to a few by sampling stack traces to form process equivalence classes, groups of processes exhibiting similar behavior. We can then use full-featured debuggers on representatives from these behavior classes for root cause analysis. STAT scalably collects stack traces over a sampling period to assemble a profile of the application's behavior. STAT routines process the samples to form a call graph prefix tree that encodes common behavior classes over the program's process space and time. STAT leverages MRNet, an infrastructure for tool control and data analyses, to overcome scalability barriers faced by heavy-weight debuggers. We present STAT's design and an evaluation that shows STAT gathers informative process traces from thousands of processes with sub-second latencies, a significant improvement over existing tools. Our case studies of production codes verify that STAT supports the quick identification of errors that were previously difficult to locate. Dorian C. Arnold, Dong H. Ahn, Bronis R. de Supinski, Gregory L. Lee, Barton P. Miller, Martin Schulz 0001 |
IPDPS | 4 |