Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Daniel Spoonhower is active.

Publication


Featured researches published by Daniel Spoonhower.


programming language design and implementation | 2006

Eventrons: a safe programming construct for high-frequency hard real-time applications

Daniel Spoonhower; Joshua S. Auerbach; David F. Bacon; Perry Cheng; David Grove

While real-time garbage collection has achieved worst-case latencies on the order of a millisecond, this technology is approaching its practical limits. For tasks requiring extremely low latency, and especially periodic tasks with frequencies above 1 KHz, Java programmers must currently resort to the NoHeapRealtimeThread construct of the Real-Time Specification for Java. This technique requires expensive run-time checks, can result in unpredictable low-level exceptions, and inhibits communication with the rest of the garbage-collected application. We present Eventrons, a programming construct that can arbitrarily preempt the garbage collector, yet guarantees safety and allows its data to be visible to the garbage-collected heap. Eventrons are a strict subset of Java, and require no run-time memory access checks. Safety is enforced using a data-sensitive analysis and simple run-time support with extremely low overhead. We have implemented Eventrons in IBMs J9 Java virtual machine, and present experimental results in which we ran Eventrons at frequencies up to 22 KHz (a 45 μs period). Across 10 million periods, 99.997% of the executions ran within 10 μss of their deadline, compared to 99.999% of the executions of the equivalent program written in C.


Secure Internet programming | 2001

J-Kernel: a capability-based operating system for Java

Thorsten von Eicken; Chi-Chao Chang; Grzegorz Czajkowski; Chris Hawblitzel; Deyu Hu; Daniel Spoonhower

Safe language technology can be used for protection within a single address space. This protection is enforced by the languages type system, which ensures that references to objects cannot be forged. A safe language alone, however, lacks many features taken for granted in more traditional operating systems, such as rights revocation, thread protection, resource management, and support for domain termination. This paper describes the J-Kernel, a portable Java-based protection system that addresses these issues. J-Kernel protection domains can communicate through revocable capabilities, but are prevented from directly sharing unrevocable object references. A number of micro-benchmaxks characterize the costs of language-based protection, and an extensible web and telephony server based on the J-Kernel demonstrates the use of language-based protection in a large application.


acm symposium on parallel algorithms and architectures | 2009

Beyond nested parallelism: tight bounds on work-stealing overheads for parallel futures

Daniel Spoonhower; Guy E. Blelloch; Phillip B. Gibbons; Robert Harper

Work stealing is a popular method of scheduling fine-grained parallel tasks. The performance of work stealing has been extensively studied, both theoretically and empirically, but primarily for the restricted class of nested-parallel (or fully strict) computations. We extend this prior work by considering a broader class of programs that also supports pipelined parallelism through the use of parallel futures. Though the overhead of work-stealing schedulers is often quantified in terms of the number of steals, we show that a broader metric, the number of deviations, is a better way to quantify work-stealing overhead for less restrictive forms of parallelism, including parallel futures. For such parallelism, we prove bounds on work-stealing overheads--scheduler time and cache misses--as a function of the number of deviations. Deviations can occur, for example, when work is stolen or when a future is touched. We also show instances where deviations can occur independently of steals and touches. Next, we prove that, under work stealing, the expected number of deviations is O(Pd + td) in a P-processor execution of a computation with span d and t touches of futures. Moreover, this bound is existentially tight for any work-stealing scheduler that is parsimonious (those where processors steal only when their queues are empty); this class includes all prior work-stealing schedulers. We also present empirical measurements of the number of deviations incurred by a classic application of futures, Halsteads quicksort, using our parallel implementation of ML. Finally, we identify a family of applications that use futures and, in contrast to quicksort, incur significantly smaller overheads.


international conference on functional programming | 2008

Space profiling for parallel functional programs

Daniel Spoonhower; Guy E. Blelloch; Robert Harper; Phillip B. Gibbons

This paper presents a semantic space profiler for parallel functional programs. Building on previous work in sequential profiling, our tools help programmers to relate runtime resource use back to program source code. Unlike many profiling tools, our profiler is based on a cost semantics. This provides a means to reason about performance without requiring a detailed understanding of the compiler or runtime system. It also provides a specification for language implementers. This is critical in that it enables us to separate cleanly the performance of the application from that of the language implementation. Some aspects of the implementation can have significant effects on performance. Our cost semantics enables programmers to understand the impact of different scheduling policies while hiding many of the details of their implementations. We show applications where the choice of scheduling policy has asymptotic effects on space use. We explain these use patterns through a demonstration of our tools. We also validate our methodology by observing similar performance in our implementation of a parallel extension of Standard ML.


virtual execution environments | 2005

Using page residency to balance tradeoffs in tracing garbage collection

Daniel Spoonhower; Guy E. Blelloch; Robert Harper

We introduce an extension of mostly copying collection that uses page residency to determine when to relocate objects. Our collector promotes pages with high residency in place, avoiding unnecessary work and wasted space. It predicts the residency of each page, but when its predictions prove to be inaccurate, our collector reclaims unoccupied space by using it to satisfy allocation requests.Using residency allows our collector to dynamically balance the tradeoffs of copying and non-copying collection. Our technique requires less space than a pure copying collector and supports object pinning without otherwise sacrificing the ability to relocate objects.Unlike other hybrids, our collector does not depend on application-specific configuration and can quickly respond to changing application behavior. Our measurements show that our hybrid performs well under a variety of conditions; it prefers copying collection when there is ample heap space but falls back on non-copying collection when space becomes limited.


workshop on declarative aspects of multicore programming | 2007

Cost semantics for space usage in a parallel language

Daniel Spoonhower

We describe a framework for better understanding scheduling policies for fine-grained parallel computations and their effect on space usage. We define a profiling semantics that can be used to determine the asymptotic space taken by any schedule. A nondeterministic parallel transition semantics is used to describe all possible parallel executions. Refinements of that semantics can be used to model the behavior of particular schedulers. We use the framework to show that different schedules can lead to asymptotic differences in space usage.


Archive | 2004

Region-based memory management for object-oriented programs

Bjarne Steensgaard; Daniel Spoonhower


Archive | 1998

Design and Evaluation of an Extensible Web & Telephony Server based on the J-Kernel

Daniel Spoonhower; Grzegorz Czajkowski; Chris Hawblitzel; Chi-Chao Chang; Deyu Hu; Thorsten von Eicken


embedded software | 2005

High-level real-time programming in Java

David F. Bacon; Perry Cheng; David Grove; Michael Hind; V. T. Rajan; Eran Yahav; Matthias Hauswirth; Christoph M. Kirsch; Daniel Spoonhower; Martin T. Vechev


Scheduling deterministric parallel programs | 2009

Scheduling deterministric parallel programs

Guy E. Blelloch; Robert Harper; Daniel Spoonhower

Collaboration


Dive into the Daniel Spoonhower's collaboration.

Top Co-Authors

Avatar

Robert Harper

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Guy E. Blelloch

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge