Zachary R. Anderson

dblp:88/3234 · DBLP profile ↗
← Back
10ranked-venue papers
5as first author
0since 2021 · last 2012
—ORCID · none

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

Software engineering, systems software and programming languages · 8 · 5 first-authorComputer networks · 2

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
5 papers
Concurrent programming · 55% Program analysis · 20% Operating systems · 19%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Parallel and multicore computing · 74% Performance modeling and evaluation · 15% Distributed systems · 11%
Computer networks
1 paper
Internet of things and sensor networks · 100%

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

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency bugs
data races
0.222009
Lightweight annotations for controlling sharing in concurrent data structures · PLDI 2009
SharC: checking data sharing strategies for multithreaded C · PLDI 2008
Program analysis › heap analysis
sharing analysis
0.222009
Lightweight annotations for controlling sharing in concurrent data structures · PLDI 2009
SharC: checking data sharing strategies for multithreaded C · PLDI 2008
Parallel and multicore computing
parallel programming models
0.112012
Efficiently combining parallel software using fine-grained, language-level, hierarchical resource management policies · OOPSLA 2012
Concurrent programming
atomicity
0.112011
Composable, nestable, pessimistic atomic statements · OOPSLA 2011
Concurrent programming
synchronization
0.112011
Composable, nestable, pessimistic atomic statements · OOPSLA 2011
Operating systems
extensible operating systems
0.112006
SafeDrive: Safe and Recoverable Extensions Using Language-Based Techniques · OSDI 2006
Programming languages and type systems
language-based safety
0.112006
SafeDrive: Safe and Recoverable Extensions Using Language-Based Techniques · OSDI 2006
Operating systems › extensible operating systems › kernel extensibility › kernel extensions
safe kernel extensions
0.112006
SafeDrive: Safe and Recoverable Extensions Using Language-Based Techniques · OSDI 2006
Internet of things and sensor networks › wireless sensor network
in-network aggregation
0.012004
Synopsis diffusion for robust aggregation in sensor networks · SenSys 2004
Operating systems
resource management
0.012012
Efficiently combining parallel software using fine-grained, language-level, hierarchical resource management policies · OOPSLA 2012
Parallel and multicore computing
parallel programming runtimes
0.012012
Efficiently combining parallel software using fine-grained, language-level, hierarchical resource management policies · OOPSLA 2012
Concurrent programming
transactional memory
0.012011
Composable, nestable, pessimistic atomic statements · OOPSLA 2011
Performance modeling and evaluation › parallel performance evaluation
multicore scalability
0.012011
Composable, nestable, pessimistic atomic statements · OOPSLA 2011
Concurrent programming
concurrent data structures
0.012009
Lightweight annotations for controlling sharing in concurrent data structures · PLDI 2009
Distributed systems
fault tolerance
0.012004
Synopsis diffusion for robust aggregation in sensor networks · SenSys 2004
Distributed systems › data aggregation
robust aggregation
0.012004
Synopsis diffusion for robust aggregation in sensor networks · SenSys 2004

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

system daemon · 0.3runtime library · 0.3domain-specific language · 0.3shelters · 0.2lock-based synchronization · 0.2static analysis · 0.2dynamic analysis · 0.2sharing casts · 0.1order- and duplicate-insensitive synopses · 0.1annotation checking · 0.1multipath routing · 0.0multi-path routing · 0.0
YearPublicationVenuePosition
2012 Efficiently combining parallel software using fine-grained, language-level, hierarchical resource management policies
abstract
This paper presents Poli-C, a language extension, runtime library, and system daemon enabling fine-grained, language-level, hierarchical resource management policies. Poli-C is suitable for use in applications that compose parallel libraries, frameworks, and programs. In particular, we have added a powerful new statement to C for expressing resource limits and guarantees in such a way that programmers can set resource management policies even when the source code of parallel libraries and frameworks is not available. Poli-C enables application programmers to manage any resource exposed by the underlying OS, for example cores or IO bandwidth. Additionally, we have developed a domain-specific language for defining high-level resource management policies, and a facility for extending the kinds of resources that can be managed with our language extension. Finally, through a number of useful variations, our design offers a high degree of composability. We evaluate Poli-C by way of three case-studies: a scientific application, an image processing webserver, and a pair of parallel database join implementations. We found that using Poli-C yields efficiency gains that require the addition of only a few lines of code to applications.
Zachary R. Anderson
OOPSLA1
2011 Multicore OS Benchmarks: We Can Do Better
Ihor Kuz, Zachary R. Anderson, Pravin Shinde
HotOS2
2011 Composable, nestable, pessimistic atomic statements
abstract
In this paper we introduce a new method for pessimistically implementing composable, nestable atomic statements. Our mechanism, called shelters, is inspired by the synchronization strategy used in the Jade programming language. Unlike previous lock-based pessimistic approaches, our mechanism does not require a whole-program analysis that computes a global lock order. Further, this mechanism frees us to implement several optimizations, impossible with automatically inserted locks, that are necessary for scaling on recent multi-core systems. Additionally we show how our basic mechanism can be extended to support both open- and closed-nesting of atomic statements, something that, to our knowledge, has not yet been implemented fully-pessimistically in this context. Unlike optimistic, transactional-memory-based approaches, programmers using our mechanism do not have to write compensating actions for open-nesting, or worry about the possibly awkward semantics and performance impact of aborted transactions.
Zachary R. Anderson, David Gay
OOPSLA1
2009 Lightweight annotations for controlling sharing in concurrent data structures
abstract
SharC is a recently developed system for checking data-sharing in multithreaded programs. Programmers specify sharing rules (read-only, protected by a lock, etc.) for individual objects, and the SharC compiler enforces these rules using static and dynamic checks. Violations of these rules indicate unintended data sharing, which is the underlying cause of harmful data-races. Additionally, SharC allows programmers to change the sharing rules for a specific object using a sharing cast, to capture the fact that sharing rules for an object often change during the object's lifetime. SharC was successfully applied to a number of multi-threaded C programs.
Zachary R. Anderson, David Gay, Mayur Naik
PLDI1
2008 SharC: checking data sharing strategies for multithreaded C
abstract
Unintended or unmediated data sharing is a frequent cause of insidious bugs in multithreaded programs. We present a tool called SharC (short for Sharing Checker) that allows a user to write lightweight annotations to declare how they believe objects are being shared between threads in their program. SharC uses a combination of static and dynamic analyses to check that the program conforms to this specification.
Zachary R. Anderson, David Gay, Robert Ennals, Eric A. Brewer
PLDI1
2008 Synopsis diffusion for robust aggregation in sensor networks
abstract
Previous approaches for computing duplicate-sensitive aggregates in wireless sensor networks have used a tree topology, in order to conserve energy and to avoid double-counting sensor readings. However, a tree topology is not robust against node and communication failures, which are common in sensor networks. In this article, we present synopsis diffusion , a general framework for achieving significantly more accurate and reliable answers by combining energy-efficient multipath routing schemes with techniques that avoid double-counting. Synopsis diffusion avoids double-counting through the use of order- and duplicate-insensitive (ODI) synopses that compactly summarize intermediate results during in-network aggregation. We provide a surprisingly simple test that makes it easy to check the correctness of an ODI synopsis. We show that the properties of ODI synopses and synopsis diffusion create implicit acknowledgments of packet delivery. Such acknowledgments enable energy-efficient adaptation of message routes to dynamic message loss conditions, even in the presence of asymmetric links. Finally, we illustrate using extensive simulations the significant robustness, accuracy, and energy-efficiency improvements of synopsis diffusion over previous approaches.
Suman Nath, Phillip B. Gibbons, Srinivasan Seshan, Zachary R. Anderson
ACM Trans. Sens. Networks4
2007 Dependent Types for Low-Level Programming
Jeremy Condit, Matthew Harren, Zachary R. Anderson, David Gay, George C. Necula
ESOP3
2007 Beyond Bug-Finding: Sound Program Analysis for Linux
Zachary R. Anderson, Eric A. Brewer, Jeremy Condit, Robert Ennals, David Gay, Matthew Harren, George C. Necula
HotOS1
2006 SafeDrive: Safe and Recoverable Extensions Using Language-Based Techniques
Jeremy Condit, Zachary R. Anderson, Ilya Bagrak, Robert Ennals, Matthew Harren, George C. Necula, Eric A. Brewer
OSDI3
2004 Synopsis diffusion for robust aggregation in sensor networks
abstract
Previous approaches for computing duplicate-sensitive aggregates in sensor networks (e.g., in TAG) have used a tree topology, in order to conserve energy and to avoid double-counting sensor readings. However, a tree topology is not robust against node and communication failures, which are common in sensor networks. In this paper, we present synopsis diffusion, a general framework for achieving signi.cantly more accurate and reliable answers by combining energy-efficient multi-path routing schemes with techniques that avoid double-counting. Synopsis diffusion avoids double-counting through the use of order- and duplicate-insensitive (ODI) synopses that compactly summarize intermediate results during in-network aggregation. We provide a surprisingly simple test that makes it easy to check the correctness of an ODI synopsis. We show that the properties of ODI synopses and synopsis di.usion create implicit acknowledgments of packet delivery. We show that this property can, in turn, enable the system to adapt message routing to dynamic message loss conditions, even in the presence of asymmetric links. Finally, we illustrate, using extensive simulations, the significant robustness, accuracy, and energy-efficiency improvements of synopsis diffusion over previous approaches.
Suman Nath, Phillip B. Gibbons, Srinivasan Seshan, Zachary R. Anderson
SenSys4