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.

Ron Cytron

dblp:c/RCytron · also Ron K. Cytron · DBLP profile ↗
← Back
49ranked-venue papers
13as first author
0since 2021 · last 2015
0009-0009-5915-602XORCID · verified

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

Systems, architecture and hardware · 27 · 6 first-authorSoftware engineering, systems software and programming languages · 18 · 7 first-authorApplied, interdisciplinary, general and emerging computing · 2Graphics, computer vision, multimedia, augmented reality and games · 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.

Computer architecture, parallel and distributed computing, and storage systems
7 papers
Reconfigurable computing and FPGAs · 33% Memory systems · 26% Embedded and real-time systems · 22%
Software engineering, system software, and programming languages
13 papers
Compilers and program optimization · 45% Program analysis · 34% Runtime systems and virtual machines · 21%
Network and information security
1 paper
Network security · 100%

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

TopicWeightPapersLastEvidence papers
Memory systems › memory hierarchy
cache hierarchy
0.212015
Superoptimized Memory Subsystems for Streaming Applications · FPGA 2015
Reconfigurable computing and FPGAs
FPGA accelerator
0.212015
Superoptimized Memory Subsystems for Streaming Applications · FPGA 2015
Embedded and real-time systems › distributed real-time systems
distributed real-time embedded systems
0.122003
Techniques for enhancing real-time CORBA quality of service · Proc. IEEE 2003
Multiparadigm scheduling for distributed real-time embedded computing · Proc. IEEE 2003
Embedded and real-time systems
streaming applications
0.112015
Superoptimized Memory Subsystems for Streaming Applications · FPGA 2015
Reconfigurable computing and FPGAs › FPGA-based network processing
FPGA-based pattern matching
0.112006
A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching · ISCA 2006
Hardware accelerators and domain-specific architectures
pattern matching accelerator
0.112006
A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching · ISCA 2006
Compilers and program optimization › intermediate representation
static single assignment form
0.051995
Efficientlty Computing Phi-Nodes On-The-Fly · ACM Trans. Program. Lang. Syst. 1995
Efficient Accomodation of May-Alias Information in SSA Form · PLDI 1993
Efficiently Computing Static Single Assignment Form and the Control Dependence Graph · ACM Trans. Program. Lang. Syst. 1991
Cloud and datacenter computing › quality of service
quality-of-service assurance
0.012003
Multiparadigm scheduling for distributed real-time embedded computing · Proc. IEEE 2003
Embedded and real-time systems
real-time scheduling
0.012003
Multiparadigm scheduling for distributed real-time embedded computing · Proc. IEEE 2003
Program analysis
data flow analysis
0.041995
Efficientlty Computing Phi-Nodes On-The-Fly · ACM Trans. Program. Lang. Syst. 1995
Efficiently Computing Static Single Assignment Form and the Control Dependence Graph · ACM Trans. Program. Lang. Syst. 1991
Automatic Construction of Sparse Data Flow Evaluation Graphs · POPL 1991
Runtime systems and virtual machines
garbage collection
0.012000
Contaminated garbage collection · PLDI 2000
Distributed systems
middleware
0.022003
Techniques for enhancing real-time CORBA quality of service · Proc. IEEE 2003
Multiparadigm scheduling for distributed real-time embedded computing · Proc. IEEE 2003
Program analysis › data flow analysis
dominance frontiers
0.021995
Efficientlty Computing Phi-Nodes On-The-Fly · ACM Trans. Program. Lang. Syst. 1995
An Efficient Method of Computing Static Single Assignment Form · POPL 1989
Network security › intrusion detection and prevention
intrusion detection
0.012006
A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching · ISCA 2006
Network security › intrusion detection and prevention › intrusion detection › pattern matching
regular expression matching
0.012006
A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching · ISCA 2006
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.011997
Is "Just in Time" = "Better Late than Never"? · POPL 1997
Program analysis › static analysis
interprocedural analysis
0.011994
On the Efficient Engineering of Ambitious Program Analysis · IEEE Trans. Software Eng. 1994
Program analysis › static analysis › pointer analysis
may-alias analysis
0.011993
Efficient Accomodation of May-Alias Information in SSA Form · PLDI 1993
Program analysis › static analysis
pointer analysis
0.011993
Efficient Accomodation of May-Alias Information in SSA Form · PLDI 1993
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.012000
Contaminated garbage collection · PLDI 2000
Compilers and program optimization
intermediate representation
0.021990
An Efficient Method of Computing Static Single Assignment Form · POPL 1989
Compact Representations for Control Dependence · PLDI 1990
Compilers and program optimization › dependence analysis
control dependence analysis
0.011990
Compact Representations for Control Dependence · PLDI 1990
Parallel and multicore computing
parallel programming models
0.011990
A compiler-assisted approach to SPMD execution · SC 1990
Parallel and multicore computing › parallel programming models › SPMD
SPMD execution
0.011990
A compiler-assisted approach to SPMD execution · SC 1990
Compilers and program optimization
parallelizing compiler
0.011989
Automatic Generation of DAG Parallelism · PLDI 1989
Parallel and multicore computing › parallel programming models
automatic parallelization
0.011989
Automatic Generation of DAG Parallelism · PLDI 1989
Compilers and program optimization
code motion
0.011986
Code Motion of Control Structures in High-Level Languages · POPL 1986
Compilers and program optimization
compiler optimization
0.011994
On the Efficient Engineering of Ambitious Program Analysis · IEEE Trans. Software Eng. 1994
Parallel and multicore computing › parallel programming models › task parallelism
fork-join parallelism
0.011990
A compiler-assisted approach to SPMD execution · SC 1990
Compilers and program optimization
parallelization
0.011989
Minimum Distance: A Method for Partitioning Recurrences for Multiprocessors · IEEE Trans. Computers 1989

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

superoptimization · 0.2streaming · 0.2state-machine encoding · 0.1pipelining · 0.1compression · 0.1stack frame association · 0.0native-code execution · 0.0interpretation · 0.0compile-time analysis · 0.0monotone data flow framework · 0.0graph algorithms · 0.0control flow analysis · 0.0
YearPublicationVenuePosition
2015 Superoptimized Memory Subsystems for Streaming Applications
abstract
Because main memory is many times slower than modern processor cores, deep, multi-level cache hierarchies are ubiquitous in computers today. Similarly, applications deployed on ASICs and FPGAs are often hindered by slow external memories. Therefore, to achieve good performance, hardware designers must optimize main memory usage. Unfortunately, this process is often labor intensive and fails to explore the full range of potential memory designs. To address this issue for applications expressed in a streaming manner, we show that it is possible to generate automatically a superoptimized memory subsystem that can be deployed on an FPGA such that it performs better than a general-purpose memory subsystem. Rather than explore only simple memory subsystems, our superoptimizer is capable of exploring extremely complex designs consisting of multi-level caches and other components. Finally, we show that it is possible to deploy applications with superoptimized memory subsystems with minimal additional effort while achieving significant performance improvements over a naive memory subsystem.
Joseph G. Wingbermuehle, Ron Cytron, Roger D. Chamberlain
FPGA2
2015 Recycling trash in cache
abstract
The disparity between processing and storage speeds can be bridged in part by reducing the traffic into and out of the slower memory components. Some recent studies reduce such traffic by determining dead data in cache, showing that a significant fraction of writes can be squashed before they make the trip toward slower memory. In this paper, we examine a technique for eliminating traffic in the other direction, specifically the traffic induced by dynamic storage allocation. We consider recycling dead storage in cache to satisfy a program's storage-allocation requests. We first evaluate the potential for recycling under favorable circumstances, where the associated logic can run at full speed with no impact on the cache's normal behavior. We then consider a more practical implementation, in which the associated logic executes independently from the cache's critical path. Here, the cache's performance is unfettered by recycling, but the operations necessary to determine dead storage and recycle such storage execute as time is available. Finally, we present the design and analysis of a hardware implementation that scales well with cache size without sacrificing too much performance.
Jonathan A. Shidal, Ari J. Spilo, Paul T. Scheid, Ron Cytron, Krishna M. Kavi
ISMM4
2014 Cache design for mixed criticality real-time systems
abstract
Shared caches in mixed criticality systems are a source of interference for safety critical tasks. Shared memory not only leads to worst-case execution time (WCET) pessimism, but also affects the response time of safety critical tasks. In this paper, we present a criticality aware cache design which implements a Least Critical (LC) cache replacement policy, where a least recently used non-critical cache line is replaced during a cache miss. The cache acts as a Least Recently Used (LRU) cache if there are no critical lines or if all cache lines are critical in a set. In our design, data within a certain address space is given higher preference in the cache. These critical address spaces are configured using critical address range (CAR) registers. The new cache design was implemented in a Leon3 processor core, a 32bit processor compliant with the SPARC V8 architecture. Experimental results are presented that illustrate the impact of the Least Critical cache replacement policy on the response time of critical tasks, and on overall application performance as compared to a conventional LRU cache policy.
N. G. Chetan Kumar, Sudhanshu Vyas, Ron Cytron, Christopher D. Gill, Joseph Zambreno, Phillip H. Jones
ICCD3
2014 Superoptimization of memory subsystems
abstract
The disparity in performance between processors and main memories has led computer architects to incorporate large cache hierarchies in modern computers. Because these cache hierarchies are designed to be general-purpose, they may not provide the best possible performance for a given application. In this paper, we determine a memory subsystem well suited for a given application and main memory by discovering a memory subsystem comprised of caches,scratchpads, and other components that are combined to provide better performance. We draw motivation from the superoptimization of instruction sequences, which successfully finds unusually clever instruction sequences for programs. Targeting both ASIC and FPGA devices, we show that it is possible to discover unusual memory subsystems that provide performance improvements over a typical memory subsystem.
Joseph G. Wingbermuehle, Ron Cytron, Roger D. Chamberlain
LCTES2
2013 Compiling for power with ScalaPipe
Joseph G. Wingbermuehle, Ron Cytron, Roger D. Chamberlain
J. Syst. Archit.2
2013 Hardware architectural support for control systems and sensor processing
abstract
The field of modern control theory and the systems used to implement these controls have shown rapid development over the last 50 years. It was often the case that those developing control algorithms could assume the computing medium was solely dedicated to the task of controlling a plant, for example, the control algorithm being implemented in software on a dedicated Digital Signal Processor (DSP), or implemented in hardware using a simple dedicated Programmable Logic Device (PLD). As time progressed, the drive to place more system functionality in a single component (reducing power, cost, and increasing reliability) has made this assumption less often true. Thus, it has been pointed out by some experts in the field of control theory (e.g., Astrom) that those developing control algorithms must take into account the effects of running their algorithms on systems that will be shared with other tasks. One aspect of the work presented in this article is a hardware architecture that allows control developers to maintain this simplifying assumption. We focus specifically on the Proportional-Integral-Derivative (PID) controller. An on-chip coprocessor has been implemented that can scale to support servicing hundreds of plants, while maintaining microsecond-level response times, tight deterministic control loop timing, and allowing the main processor to service noncontrol tasks. In order to control a plant, the controller needs information about the plant's state. Typically this information is obtained from sensors with which the plant has been instrumented. There are a number of common computations that may be performed on this sensor data before being presented to the controller (e.g., averaging and thresholding). Thus in addition to supporting PID algorithms, we have developed a Sensor Processing Unit (SPU) that off-loads these common sensor processing tasks from the main processor. We have prototyped our ideas using Field Programmable Gate Array (FPGA) technology. Through our experimental results, we show our PID execution unit gives orders of magnitude improvement in response time when servicing many plants, as compared to a standard general software implementation. We also show that the SPU scales much better than a general software implementation. In addition, these execution units allow the simplifying assumption of dedicated computing medium to hold for control algorithm development.
Sudhanshu Vyas, Adwait Gupte, Christopher D. Gill, Ron Cytron, Joseph Zambreno, Phillip H. Jones
ACM Trans. Embed. Comput. Syst.4
2012 ScalaPipe: A Streaming Application Generator
abstract
Summary form only given. ScalaPipe is a streaming application generator for heterogeneous platforms. By using a collection of domain-specific languages (DSLs) embedded in the Scala programming language, ScalaPipe allows creation of streaming applications that can run on a variety of hardware, including traditional processors, graphics processors, and field-programmable gate arrays (FPGAs). Its application DSL allows specification of the application topology and resource mapping. Its block DSL allows the authoring of implementations for processing kernels, or blocks, which are used in the streaming application. ScalaPipe makes it easy to generate, modify, and instrument large, complex topologies and resource mappings while also exposing optimization opportunities.
Joseph G. Wingbermuehle, Roger D. Chamberlain, Ron Cytron
FCCM3
2010 Hardware-Accelerated RNA Secondary-Structure Alignment
abstract
The search for homologous RNA molecules---sequences of RNA that might behave simiarly due to similarity in their physical (secondary) structure---is currently a computationally intensive task. Moreover, RNA sequences are populating genome databases at a pace unmatched by gains in standard processor performance. While software tools such as Infernal can efficiently find homologies among RNA families and genome databases of modest size, the continuous advent of new RNA families and the explosive growth in volume of RNA sequences necessitate a faster approach. This work introduces two different architectures for accelerating the task of finding homologous RNA molecules in a genome database. The first architecture takes advantage of the tree-like configuration of the covariance models used to represent the consensus secondary structure of an RNA family and converts it directly into a highly-pipelined processing engine. Results for this architecture show a 24× speedup over Infernal when processing a small RNA model. It is estimated that the architecture could potentially offer several thousands of times speedup over Infernal on larger models, provided that there are sufficient hardware resources available. The second architecture is introduced to address the steep resource requirements of the first architecture. It utilizes a uniform array of processing elements and schedules all of the computations required to scan for an RNA homolog onto those processing elements. The estimated speedup for this architecture over the Infernal software package ranges from just under 20× to over 2,350×.
James Moscola, Ron Cytron, Young H. Cho
ACM Trans. Reconfigurable Technol. Syst.2
2009 Partial Program Admission
abstract
Real-time systems on non-preemptive platforms require a means of bounding the execution time of programs for admission purposes. Worst-case execution time (WCET) is most commonly used to bound program execution time. While bounding a programpsilas WCET statically is possible, computing its true WCET is difficult. We present a new technique we call partial program admission, a means of statically enforcing an otherwise untrusted assertion of WCET without adding runtime overhead, by means of code duplication. We apply this technique to real programs from the virtual networking arena and present the results.
Michael Wilson 0001, Ron Cytron, Jonathan S. Turner
IEEE Real-Time and Embedded Technology and Applications Symposium2
2008 Understanding the performance of streaming applications deployed on hybrid systems
abstract
Significant performance gains have been reported by exploiting the specialized characteristics of hybrid computing architectures for a number of streaming applications. While it is straightforward to physically construct these hybrid systems, application development is often quite difficult. We have built an application development environment, Auto-Pipe, that targets streaming applications deployed on hybrid architectures. Here, we describe some of the current and future characteristics of the Auto-Pipe environment that facilitate an understanding of the performance of an application that is deployed on a hybrid system.
Joseph M. Lancaster, Ron Cytron, Roger D. Chamberlain
IPDPS2
2008 Visions for application development on hybrid computing systems
Roger D. Chamberlain, Joseph M. Lancaster, Ron Cytron
Parallel Comput.3
2007 Splice: A Standardized Peripheral Logic and Interface Creation Engine
abstract
Recent advancements in FPGA technology have allowed manufacturers to place general-purpose processors alongside user-configurable logic gates on a single chip. At first glance, these integrated devices would seem to be the ideal deployment platform for hardware-software co-designed systems, but some issues, such as incompatibility across vendors and confusion over which bus interfaces to support, have impeded adoption of these platforms. This paper describes the design and operation of Splice, a software-based code generation tool designed to address these types of issues by providing a bus-independent structure that allows end-users to integrate their customized peripheral logic easily into embedded systems.
Justin Thiel, Ron Cytron
IPDPS2
2006 Real-Time Memory Management: Life and Times
abstract
As real-time and embedded systems become increasingly large and complex, the traditional strictly static approach to memory management begins to prove untenable. The challenge is to provide a dynamic memory model that guarantees tight and bounded time and space requirements without overburdening the developer with memory concerns. This paper provides an analysis of memory management approaches in order to characterise the tradeoffs across three semantic domains: space, time and a characterisation of memory usage information such as the lifetime of objects. A unified approach to distinguishing the merits of each memory model highlights the relationship across these three domains, thereby identifying the class of applications that benefit from targeting a particular model. Crucially, an initial investigation of this relationship identifies the direction future research must take in order to address the requirements of the next generation of complex embedded systems. Some initial suggestions are made in this regard and the memory model proposed in the real-time specification for Java is evaluated in this context
Andrew Borg, Andy J. Wellings, Christopher D. Gill, Ron Cytron
ECRTS4
2006 Vision for liquid architecture
abstract
In the liquid architecture project, we are exploring ways in which architectural flexibility can be exploited to improve the execution properties of individual applications. Here, we report on successes we have had to date in this area, and present our vision of where this research should proceed into the future.
Roger D. Chamberlain, Ron Cytron, Jason E. Fritts, John W. Lockwood
IPDPS2
2006 Automatic application-specific microarchitecture reconfiguration
abstract
Applications for constrained embedded systems are subject to strict time constraints and restrictive resource utilization. With soft core processors, application developers can customize the processor for their application, constrained by resources but aimed at high application performance. With such freedom in the design space of the processor, however, comes complexity. We present here an automatic optimization technique that helps the developers with the processor microarchitecture customization. A naive approach exploring all possible configurations is exponential with the number of parameters and hence is clearly infeasible, even with only tens of reconfigurable parameters. Instead, our approach runs in time that is linear with the number of parameter values, based on an assumption of parameter independence. This makes the approach feasible and scalable. For the dimensions that we customize, namely application runtime and hardware resources, we formulate their costs as a constrained binary integer nonlinear optimization program. Though the results are not guaranteed to be optimal, we find they are near-optimal in practice. Our technique itself is general and can be applied to other design-space exploration problems
Shobana Padmanabhan, Ron Cytron, Roger D. Chamberlain, John W. Lockwood
IPDPS2
2006 A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching
abstract
We present and evaluate an architecture for highthroughput pattern matching of regular expressions. Our approach matches multiple patterns concurrently, responds rapidly to changes in the pattern set, and is well suited for synthesis in an ASIC or FPGA. Our approach is based on a new and easily pipelined state-machine representation that uses encoding and compression techniques to improve density. We have written a compiler that translates a set of regular expressions and optimizes their deployment in the structures used by our architecture. We analyze our approach in terms of its throughput, density, and efficiency. We present experimental results from an implementation in a commodity FPGA, showing better throughput and density than the best known approaches.
Benjamin C. Brodie, David E. Taylor, Ron Cytron
ISCA3
2005 Upper bound for defragmenting buddy heaps
abstract
Knuth's buddy system is an attractive algorithm for managing storage allocation, and it can be made to operate in real-time. At some point, storage-management systems must either over-provide storage or else confront the issue of defragmentation. Because storage conservation is important to embedded systems, we investigate the issue of defragmentation for heaps that are managed by the buddy system. In this paper, we present tight bounds for the amount of storage necessary to avoid defragmentation. These bounds turn out to be too high for embedded systems, so defragmentation becomes necessary.We then present an algorithm for defragmenting buddy heaps and present experiments from applying that algorithm to real and synthetic benchmarks. Our algorithm relocates less than twice the space relocated by an optimal algorithm to defragment the heap so as to respond to a single allocation request. Our experiments show our algorithm to be much more efficient than extant defragmentation algorithms.
Delvin C. Defoe, Sharath R. Cholleti, Ron Cytron
LCTES3
2005 Static determination of allocation rates to support real-time garbage collection
abstract
While it is generally accepted that garbage-collected languages offer advantages over languages in which objects must be explicitly deallocated, real-time developers are leery of the adverse effects a garbage collector might have on real-time performance. Semiautomatic approaches based on regions have been proposed, but incorrect usage could cause unbounded storage leaks or program failure. Moreover, correct usage cannot be guaranteed at compile time. Recently, real-time garbage collectors have been developed that provide a guaranteed fraction of the CPU to the application, and the correct operation of those collectors has been proven, subject only to the specification of certain statistics related to the type and rate of objects allocated by the application. However, unless those statistics are provided or estimated appropriately, the collector may fail to collect dead storage at a rate sufficient to pace the application's need for storage. Overspecification of those statistics is safe but leaves the application with less than its possible share of the CPU, which may prevent the application from meeting its deadlines.In this paper we present a static analysis to bound conservatively an application's allocation rate. The analysis is based on a data flow framework that requires interprocedural evaluation. We present the framework and results from analyzing some Java benchmarks. Because static analysis is necessarily conservative, we also present measurements of our benchmarks' actual allocation rates.Our work is a necessary step toward making real-time garbage collectors attractive to the hard-real-time community. By guaranteeing a bound on statistics provided to a real-time collector, we can guarantee the operation of the collector for a given application.
Tobias Mann, Morgan Deters, Rob LeGrand, Ron Cytron
LCTES4
2004 Automated Reference-Counted Object Recycling for Real-Time Jav
abstract
We introduce an aspect-oriented reformulation of reference-counting that is particularly well-suited to Java applications and does not share the error-prone characteristic of manual, user-driven reference counting. We present our method in the context of the real-time specification for Java and demonstrate that it can recycle dead objects in bounded time. We apply partial evaluation to specialize the aspect-generated code, which substantially reduces the reference-counting overhead.
Morgan Deters, Nicholas A. Leidenfrost, Matthew P. Hampton, James C. Brodman, Ron Cytron
IEEE Real-Time and Embedded Technology and Applications Symposium5
2004 Middleware Specialization for Memory-Constrained Networked Embedded Systems
abstract
General purpose middleware has been shown to be effective off-the-shelf, in meeting diverse functional requirements for a wide range of distributed systems. However, middleware customization is necessary for many networked embedded systems because of the resource constraints in the networked nodes. We demonstrate that reduced middleware footprint can be achieved while maintaining real-time properties of applications running on such systems. We also give evidence that empirical measurement using a representative application is crucial to guide (1) selection of feature subsets from general purpose middleware and (2) trade-offs among different dimensions of design metrics including real-time, footprint, and portability.
Venkita Subramonian, Guoliang Xing, Christopher D. Gill, Chenyang Lu 0001, Ron Cytron
IEEE Real-Time and Embedded Technology and Applications Symposium5
2003 Efficient memory-reference checks for real-time java
Angelo Corsaro, Ron Cytron
LCTES2
2003 Transport layer abstraction in event channels for embedded systems
abstract
As embedded systems increase in complexity and begin to participate in distributed systems, the need for middleware in building such systems becomes imperative. However, the use of middleware that fully implements such standards can impose a significant increase in footprint for an application, making it unsuitable for use in embedded systems. We consider the use of a standard CORBA event channel in a setting where distribution and inter-language support are unnecessary. We report our experience in applying aspects to abstract the transport layer (CORBA) of the event channel into a selectable feature. Thus, enabling or disabling CORBA for a specific application can be decided at build-time, by merely selecting CORBA as a feature. We describe the patterns used to achieve this abstraction and present footprint and throughput results showing the effect of CORBA on automatically derived subsets of the event channel.
Ravi Pratap, Ron Cytron, David C. Sharp, Edward Pla
LCTES2
2003 An Unfolding-Based Loop Optimization Technique
Litong Song, Krishna M. Kavi, Ron Cytron
SCOPES3
2003 Multiparadigm scheduling for distributed real-time embedded computing
abstract
Increasingly complex requirements, coupled with tighter economic and organizational constraints, are making it hard to build complex distributed real-time embedded (DRE) systems entirely from scratch. Therefore, the proportion of DRE systems made up of commercial-off-the-shelf (COTS) hardware and software is increasing significantly. There are relatively few systematic empirical studies, however, that illustrate how suitable COTS-based hardware and software have become for mission-critical DRE systems. This paper provides the following contributions to the study of real-time quality-of-service (QoS) assurance and performance in COTS-based DRE systems: it presents evidence that flexible configuration of COTS middleware mechanisms, and the operating system (OS) settings they use, allows DRE systems to meet critical QoS requirements over a wider range of load and jitter conditions than statically configured systems; it shows that in addition to making critical QoS assurances, noncritical QoS performance can be improved through flexible support for alternative scheduling strategies; and it presents an empirical study of three canonical scheduling strategies; specifically the conditions that predict success of a strategy for a production-quality DRE avionics mission computing system. Our results show that applying a flexible scheduling framework to COTS hardware, OSs, and middleware improves real-time QoS assurance and performance for mission-critical DRE systems.
Christopher D. Gill, Ron Cytron, Douglas C. Schmidt
Proc. IEEE2
2003 Techniques for enhancing real-time CORBA quality of service
abstract
End-to-end predictability of remote operations is essential for many fixed-priority distributed real-time and embedded (DRE) applications, such as command and control systems, manufacturing process control systems, large-scale distributed interactive simulations, and testbeam data acquisition systems. To enhance predictability, the Real-time CORBA specification defines standard middleware features that allow applications to allocate, schedule, and control key CPU, memory, and networking resources necessary to ensure end-to-end quality of service support. This paper provides two contributions to the study of Real-time CORBA middleware for DRE applications. First, we identify potential problems with ensuring predictable behavior in conventional middleware by examining the end-to-end critical code path of a remote invocation and identifying sources of unbounded priority inversions. Experimental results then illustrate how the problems we identify can yield unpredictable behavior in conventional middleware platforms. Second, we present design techniques for ensuring real-time quality of service in middleware. We show how middleware can be redesigned to use nonmultiplexed resources to eliminate sources of unbounded priority inversion. The empirical results in this paper are conducted using TAO, which is widely used and open-source DRE middleware compliant with the Real-time CORBA specification.
Irfan Pyarali, Douglas C. Schmidt, Ron Cytron
Proc. IEEE3
2000 Contaminated garbage collection
abstract
We describe a new method for determining when an object can be garbage collected. The method does not require marking live objects. Instead, each object X is dynamically associated with a stack frame M, such that Xis collectable when M pops. Because X could have been dead earlier, our method is conservative. Our results demonstrate that the method nonetheless identifies a large percentage of collectable objects. The method has been implemented in Sun's Java Virtual Machine interpreter, and results are presented based on this implementation
Dante J. Cannarozzi, Michael P. Plezbert, Ron Cytron
PLDI3
1997 Is "Just in Time" = "Better Late than Never"?
abstract
The World-Wide Web is emerging as a medium for distributing platform-independent, intermediate-form programs. Most Java vendors have recently announced plans to construct "just-in-time" systems, which translate the intermediate text into native code on demand. In this paper, we present experiments that show the benefits of just-in-time systems as compared with the traditional (compile prior to execution) systems. We introduce a new method--the continuous compiler-- that can outperform just-in-time systems by overlapping compilation with program interpretation and native execution. Based on those results, we then present a smart just-in-time system that blends interpretation with native-code execution, thereby obtaining improved performance.
Michael P. Plezbert, Ron Cytron
POPL2
1995 An Efficient Algorithm for Developing Topological Valid Matchings
Liz Hanks, Ron Cytron, Will D. Gillett
CPM2
1995 Efficientlty Computing Phi-Nodes On-The-Fly
abstract
Recently, Static Single-Assignment Form and Sparse Evaluation Graphs have been advanced for the efficient solution of program optimization problems. Each method is provided with an initial set of flow graph nodes that inherently affect a problem's solution. Other relevant nodes are those where potentially disparate solutions must combine. Previously, these so-called φ-nodes were found by computing the iterated dominance frontiers of the initial set of nodes, a process that could take worst-case quadratic time with respect to the input flow graph. In this article we present an almost-linear algorithm for determining exactly the same set of φ-nodes.
Ron Cytron, Jeanne Ferrante
ACM Trans. Program. Lang. Syst.1
1994 On the Efficient Engineering of Ambitious Program Analysis
abstract
Recent advances in languages, software design methodologies, and architecture have prompted the development of improved compile-time methods for analyzing the effects of procedure calls, pointer references, and array accesses. Such sophistication, however, generally implies that compilers and programming environments will experience a corresponding increase in the volume of analysis information, which may be difficult to use efficiently. In this paper, we consider the practical accommodation of such information. Our results show how to engineer a compiler such that its optimization phase takes time proportional to the benefit, rather than the size, of such information.>
Jong-Deok Choi, Ron Cytron, Jeanne Ferrante
IEEE Trans. Software Eng.2
1993 Efficient Accomodation of May-Alias Information in SSA Form
abstract
We present an algorithm for incrementally including may-alias information into Static Single Assignment form by computing a sequence of increasingly precise (and correspondingly larger) partial SSA forms. Our experiments show significant speedup of our method over exhaustive use of may-alias information, as optimization problems converge well before most may-aliases are needed.
Ron Cytron, Reid Gershbein
PLDI1
1991 Automatic Construction of Sparse Data Flow Evaluation Graphs
abstract
In this paper, we present an algorithm that con-structs sparse evaluation graphs for forward or backward monotone data flow problems. The sparse graph combines information as early as possible, yet directly connects nodes that generate and use information. This allows problems from the large, general class of monotone data flow problems to err joy the advantages of solutions based on Static Single Assignment (SSA) form. 1
Jong-Deok Choi, Ron Cytron, Jeanne Ferrante
POPL2
1991 Efficiently Computing Static Single Assignment Form and the Control Dependence Graph
abstract
In optimizing compilers, data structure choices directly influence the power and efficiency of practical program optimization.A poor choice of data structure can inhibit optimization or slow compilation to the point that advanced optimization features become undesirable.Recently, static single assignment form and the control dependence graph have been proposed to represent data flow and control flow propertiee of programs.Each of these previously unrelated techniques lends efficiency and power to a useful class of program optimization.Although both of these structures are attractive, the difficulty of their construction and their potential size have discouraged their use.We present new algorithms that efficiently compute these data structures for arbitrary control flow graphs.The algorithms use dominance frontiers, a new concept that may have other applications.We also give analytical and experimental evidence that all of these data structures are usually linear in the size of the original program.This paper thus presents strong evidence that these structures can be of practical use in optimization.
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck
ACM Trans. Program. Lang. Syst.1
1990 Compact Representations for Control Dependence
abstract
article Free Access Share on Compact representations for control dependence Authors: Ron Cytron IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , Jeanne Ferrante IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , V. Sarkar IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile Authors Info & Claims ACM SIGPLAN NoticesVolume 25Issue 6Jun. 1990 pp 337–351https://doi.org/10.1145/93548.93592Online:01 June 1990Publication History 33citation585DownloadsMetricsTotal Citations33Total Downloads585Last 12 Months14Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Ron Cytron, Jeanne Ferrante, Vivek Sarkar
PLDI1
1990 A compiler-assisted approach to SPMD execution
abstract
The two prevailing styles of scientific parallel programming are discussed. In the SPMD (single program, multiple data) style, all processors execute the same program, with sequential code executed redundantly and parallel code executed cooperatively. In the fork-join style, a sequential thread of control spawns multiple threads to execute a portion of the code concurrently. The authors describe an automatic method for approaching the efficiency of SPMD-style execution for programs written in the more-structured fork-join style. Analysis at compile-time and proper support at run-time yield execution efficiency that approaches the SPMD model. Moreover, a greater degree of portability is achieved by regulating the burden of deciding what should be in an SPMD parallel region to the compiler, which is probably more familiar with architectural detail than most programmers.>
Ron Cytron, Jim Lipkis, Edith Schonberg
SC1
1989 Automatic Generation of DAG Parallelism
abstract
Article Free Access Share on Automatic generation of DAG parallelism Authors: R. Cytron IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , M. Hind Courant Institute, New York University, 251 Mercer St., New York, NY Courant Institute, New York University, 251 Mercer St., New York, NYView Profile , W. Hsieh Laboratory for Computer Science, Massachusetts Institute, Technology, Cambridge, MA Laboratory for Computer Science, Massachusetts Institute, Technology, Cambridge, MAView Profile Authors Info & Claims PLDI '89: Proceedings of the ACM SIGPLAN 1989 conference on Programming language design and implementationJune 1989 Pages 54–68https://doi.org/10.1145/73141.74823Published:21 June 1989Publication History 37citation653DownloadsMetricsTotal Citations37Total Downloads653Last 12 Months44Last 6 weeks4 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Ron Cytron, Michael Hind, Wilson C. Hsieh
PLDI1
1989 An Efficient Method of Computing Static Single Assignment Form
abstract
Article An efficient method of computing static single assignment form Share on Authors: R. Cytron IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , J. Ferrante IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , B. K. Rosen IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , M. N. Wegman IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , F. K. Zadeck Computer Science Dept., Brown University, Providence, RI Computer Science Dept., Brown University, Providence, RIView Profile Authors Info & Claims POPL '89: Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesJanuary 1989 Pages 25–35https://doi.org/10.1145/75277.75280Online:03 January 1989Publication History 308citation1,950DownloadsMetricsTotal Citations308Total Downloads1,950Last 12 Months119Last 6 weeks14 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck
POPL1
1989 Minimum Distance: A Method for Partitioning Recurrences for Multiprocessors
abstract
Parallel execution of nonvectorizable uniform recurrences is considered. When naively scheduled, such recurrences could create unacceptable communication and synchronization on a multiprocessor. The minimum-distance method partitions such recurrences into totally independent computations without increasing redundancy or perturbing numerical stability. The independent computations are well suited for execution on a multiprocessor, but they may not utilize all available processors. How extra processors can be applied to the independent computations is addressed. The methods are especially attractive for multiprocessors comprised of clusters.>
Jih-Kwon Peir, Ron Cytron
IEEE Trans. Computers2
1989 Automatic generation of nested, fork-join parallelism
Michael G. Burke, Ron Cytron, Jeanne Ferrante, Wilson C. Hsieh
J. Supercomput.2
1988 Automatic Management of Programmable Caches
Ron Cytron, Steve Karlovsky, Kevin P. McAuliffe
ICPP (2)1
1988 A framework for determining useful parallelism
abstract
An approach to finding and forming parallel processes for both sequential and parallel programs is presented. The approach is presented in a framework that can create useful parallelism for a variety of parallel architectures. The framework makes use of a control dependence graph to capture maximal parallelism, a process tree to expose useful parallelism, renaming and storage segregation to reduce data dependencies, and an architecture-specific cost analyzer to evaluate the effectiveness of the potential processes. The framework is currently being implemented.
Frances E. Allen, Michael G. Burke, Ron Cytron, Jeanne Ferrante, Wilson C. Hsieh
ICS3
1988 An Overview of the PTRAN Analysis System for Multiprocessing
Frances E. Allen, Michael G. Burke, Philippe Charles, Ron Cytron, Jeanne Ferrante
J. Parallel Distributed Comput.4
1987 Limited Processor Scheduling of Doacross Loops
Ron Cytron
ICPP1
1987 What's In a Name? -or- The Value of Renaming for Parallelism Detection and Storage Allocation
Ron Cytron, Jeanne Ferrante
ICPP1
1987 Minimum Distance: A Method for Partitioning Recurrences for Multiprocessors
Jih-Kwon Peir, Ron Cytron
ICPP2
1987 An Overview of the PTRAN Analysis System for Multiprocessing
Frances E. Allen, Michael G. Burke, Philippe Charles, Ron Cytron, Jeanne Ferrante
ICS4
1986 Doacross: Beyond Vectorization for Multiprocessors
Ron Cytron
ICPP1
1986 Code Motion of Control Structures in High-Level Languages
abstract
One trend among programmers is the increased use of abstractions. Through encapsulation techniques, abstractions extend the repertory of data structures and their concomitant operations that are processed directly by a compiler. For example, a compiler might not offer sets or set operations in its base language, but abstractions allow a programmer to define sets in terms of constructs already recognized by the compiler. In particular, abstractions can allow new constructs to be defined in terms of other abstractions. Although significant power is gained through the use of layered abstractions, object code quality suffers as increasingly less of a program's data structures and operations are exposed to the optimization phase of a compiler. Multiple references to abstractions are also inefficient, since the interaction between abstractions is often complex yet hidden from a compiler. Abstractions are most flexible when they are cast in general terms; a specific invocation is then tailored by the abstraction to obtain the appropriate code. A sequence of references to such abstractions can be inefficient due to functional redundancy that cannot be detected at compile-time. By integrating the references, the offending segments of code can be moved to a more advantageous position. Although procedure integration materializes abstracted constructs, the abstractions can still be ineligible for optimization using current techniques; in particular, abstractions often involve loops and conditional branches that can obscure code that would otherwise be eligible for code motion.
Ron Cytron, Andy Lowry, F. Kenneth Zadeck
POPL1
1985 Useful Parallelism in a Multiprocessing Environment
Ron Cytron
ICPP1