Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.

Glenn Ammons

dblp:92/3030 · DBLP profile ↗
← Back
9ranked-venue papers
6as first author
0since 2021 · last 2010
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 5 first-authorSystems, architecture and hardware · 3 · 1 first-authorSecurity and privacy · 1

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.

Software engineering, system software, and programming languages
3 papers
Program analysis · 57% Requirements engineering and software design · 24% Compilers and program optimization · 12%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Performance modeling and evaluation · 75% Cloud and datacenter computing · 25%

Topics — the 8 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
specification mining
0.122003
Debugging temporal specifications with concept analysis · PLDI 2003
Mining specifications · POPL 2002
Requirements engineering and software design › specification
specification debugging
0.012003
Debugging temporal specifications with concept analysis · PLDI 2003
Program analysis
data flow analysis
0.011998
Improving Data-flow Analysis with Path Profiles · PLDI 1998
Cloud and datacenter computing
cloud service provider
0.011997
Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling · PLDI 1997
Performance modeling and evaluation › performance monitoring
hardware performance counters
0.011997
Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling · PLDI 1997
Performance modeling and evaluation
profiling
0.011997
Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling · PLDI 1997
Performance modeling and evaluation
workload characterization
0.011997
Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling · PLDI 1997
Program verification › dynamic verification
runtime verification
0.012002
Mining specifications · POPL 2002

Methods — techniques the papers use, named apart from their topics

trace clustering · 0.0concept analysis · 0.0path profiling · 0.0machine learning · 0.0automata learning · 0.0constant propagation · 0.0calling context tree · 0.0
YearPublicationVenuePosition
2010 Always up-to-date: scalable offline patching of VM images in a compute cloud
abstract
Patching is a critical security service that keeps computer systems up to date and defends against security threats. Existing patching systems all require running systems. With the increasing adoption of virtualization and cloud computing services, there is a growing number of dormant virtual machine (VM) images. Such VM images cannot benefit from existing patching systems, and thus are often left vulnerable to emerging security threats. It is possible to bring VM images online, apply patches, and capture the VMs back to dormant images. However, such approaches suffer from unpredictability, performance challenges, and high operational costs, particularly in large-scale compute clouds where there could be thousands of dormant VM images.
Wu Zhou 0001, Peng Ning, Xiaolan Zhang 0001, Glenn Ammons, Ruowen Wang, Vasanth Bala
ACSAC4
2010 RC2 - A Living Lab for Cloud Computing
Kyung Dong Ryu, Xiaolan Zhang 0001, Glenn Ammons, Vasanth Bala, Stefan Berger, Dilma Da Silva, Jim Doran, Frank Franco, Alexei A. Karve, Herb Lee, James A. Lindeman, Ajay Mohindra, Bob Oesterlin, Giovanni Pacifici, Dimitrios E. Pendarakis, Darrell Reimer, Mariusz Sabath
LISA3
2008 Opening black boxes: using semantic information to combat virtual machine image sprawl
abstract
Virtual-machine images are currently distributed as disk-image files, which are files that mirror the content of disks. This format is convenient for the virtual machine monitors that execute these images. However, it is not well-suited for administering images because storing images as disk-image files forces administrators to maintain the software on images with the same tools that they use to maintain the software on machines. Already, these tools cannot cope with physical server sprawl; in the future, because images can be snapshotted and cloned easily, enterprises that migrate from machines to images will need tools that scale to cope with the larger problem of virtual-machine image sprawl.To address this problem, this paper proposes the Mirage image format (MIF), a new storage format that exposes the rich semantic information currently buried in disk-image files. Disk-image files contain a mapping from file name to file content (and file metadata). MIF decouples this mapping into a manifest that maps file names to content descriptors (and file metadata) and a store that holds the content. Each image has its own manifest and a store may contain content for many images. As with disk-image files, images in MIF fully encapsulate application state including all software dependences. In addition, conversion between MIF and traditional disk-image formats is easy.This paper shows, through examples, that MIF makes some typical software management tasks--inventory control, customized deployment, and image update--faster and easier. The general technique is to operate on manifests instead of on content whenever possible. These tasks can be performed without starting images and, because manifests are simpler and orders of magnitude smaller than disk-image files, without accessing large amounts of data.
Darrell Reimer, Arun Thomas, Glenn Ammons, Todd W. Mummert, Bowen Alpern, Vasanth Bala
VEE3
2007 Libra: a library operating system for a jvm in a virtualized execution environment
abstract
If the operating system could be specialized for every application, many applications would run faster. For example, Java virtual machines (JVMs) provide their own threading model and memory protection, so general-purpose operating system implementations of these abstractions are redundant. However, traditional means of transforming existing systems into specialized systems are difficult to adopt because they require replacing the entire operating system. This paper describes Libra, an execution environment specialized for IBM's J9 JVM. Libra does not replace the entire operating system. Instead, Libra and J9 form a single statically-linked image that runs in a hypervisor partition. Libra provides the services necessary to achieve good performance for the Java workloads of interest but relies on an instance of Linux in another hypervisor partition to provide a networking stack, a filesystem, and other services. The expense of remote calls is offset by the fact that Libra's services can be customized for a particular workload; for example, on the Nutch search engine, we show that two simple customizations improve application throughput by a factor of 2.7.
Glenn Ammons, Jonathan Appavoo, Maria A. Butrico, Dilma Da Silva, David Grove, Kiyokuni Kawachiya, Orran Krieger, Bryan S. Rosenburg, Eric Van Hensbergen, Robert W. Wisniewski
VEE1
2004 Finding and Removing Performance Bottlenecks in Large Systems
Glenn Ammons, Jong-Deok Choi, Manish Gupta 0002, Nikhil Swamy
ECOOP1
2003 Debugging temporal specifications with concept analysis
abstract
Program verification tools (such as model checkers and static analyzers) can find many errors in programs. These tools need formal specifications of correct program behavior, but writing a correct specification is difficult, just as writing a correct program is difficult. Thus, just as we need methods for debugging programs, we need methods for debugging specifications.This paper describes a novel method for debugging formal, temporal specifications. Our method exploits the short program execution traces that program verification tools generate from specification violations and that specification miners extract from programs. Manually examining these traces is a straightforward way to debug a specification, but this method is tedious and error-prone because there may be hundreds or thousands of traces to inspect. Our method uses concept analysis to automatically group the traces into highly similar clusters. By examining clusters instead of individual traces, a person can debug a specification with less work.To test our method, we implemented a tool, Cable, for debugging specifications. We have used Cable to debug specifications produced by Strauss, our specification miner. We found that using Cable to debug these specifications requires, on average, less than one third as many user decisions as debugging by examining all traces requires. In one case, using Cable required only 28 decisions, while debugging by examining all traces required 224.
Glenn Ammons, David Mandelin, Rastislav Bodík, James R. Larus
PLDI1
2002 Mining specifications
abstract
Program verification is a promising approach to improving program quality, because it can search all possible program executions for specific errors. However, the need to formally describe correct behavior or errors is a major barrier to the widespread adoption of program verification, since programmers historically have been reluctant to write formal specifications. Automating the process of formulating specifications would remove a barrier to program verification and enhance its practicality.This paper describes specification mining, a machine learning approach to discovering formal specifications of the protocols that code must obey when interacting with an application program interface or abstract data type. Starting from the assumption that a working program is well enough debugged to reveal strong hints of correct protocols, our tool infers a specification by observing program execution and concisely summarizing the frequent interaction patterns as state machines that capture both temporal and data dependences. These state machines can be examined by a programmer, to refine the specification and identify errors, and can be utilized by automatic verification tools, to find bugs.Our preliminary experience with the mining tool has been promising. We were able to learn specifications that not only captured the correct protocol, but also discovered serious bugs.
Glenn Ammons, Rastislav Bodík, James R. Larus
POPL1
1998 Improving Data-flow Analysis with Path Profiles
abstract
Data-flow analysis computes its solutions over the paths in a control-flow graph. These paths---whether feasible or infeasible, heavily or rarely executed---contribute equally to a solution. However, programs execute only a small fraction of their potential paths and, moreover, programs' execution time and cost is concentrated in a far smaller subset of hot paths.This paper describes a new approach to analyzing and optimizing programs, which improves the precision of data flow analysis along hot paths. Our technique identifies and duplicates hot paths, creating a hot path graph in which these paths are isolated. After flow analysis, the graph is reduced to eliminate unnecessary duplicates of unprofitable paths. In experiments on SPEC95 benchmarks, path qualification identified 2--112 times more non-local constants (weighted dynamically) than the Wegman-Zadek conditional constant algorithm, which translated into 1--7% more dynamic instructions with constant results.
Glenn Ammons, James R. Larus
PLDI1
1997 Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling
abstract
A program profile attributes run-time costs to portions of a program's execution. Most profiling systems suffer from two major deficiencies: first, they only apportion simple metrics, such as execution frequency or elapsed time to static, syntactic units, such as procedures or statements; second, they aggressively reduce the volume of information collected and reported, although aggregation can hide striking differences in program behavior.This paper addresses both concerns by exploiting the hardware counters available in most modern processors and by incorporating two concepts from data flow analysis--flow and context sensitivity--to report more context for measurements. This paper extends our previous work on efficient path profiling to flow sensitive profiling, which associates hardware performance metrics with a path through a procedure. In addition, it describes a data structure, the calling context tree, that efficiently captures calling contexts for procedure-level measurements.Our measurements show that the SPEC95 benchmarks execute a small number (3--28) of hot paths that account for 9--98% of their L1 data cache misses. Moreover, these hot paths are concentrated in a few routines, which have complex dynamic behavior.
Glenn Ammons, Thomas Ball 0001, James R. Larus
PLDI1