University of Virginia Department of
    Computer Science
Projects: Descriptions | Areas | PI's | Spotlights | Student Publications | Tech Reps | Posters | Awards | Facilities | News | Photos

Projects: Antimony | Archsplit | Bioinformatics | Calamari | Calibration | Chromium | CoCo | Collision Detection | ComponentOS | Computational Geometry | Computer Vision | ControlWare | Data Mining | DDAM | Dependability | DRPM | Eos | FASTA | Feedback Control | Galileo | Genesis | GPU | Graphics | Grid Computing Group | Hood | HotLeakage | HotSpot | IPA | Info Tech | Intrusion Detection | Isoluminance | Isotach | Jazz | JDelta | LAVA | Legion | Lithium | Marionette | MaSTRI | Medical Portal | MRRL | Mutation Routing | NAE | Nancy's Pantry | NEST | N-Variant | PDO | Perracotta | Perspective Warp | Physicrypt | PIE | PRMES | Qsilver | Semantic Streams | Software Quality | STILT | Strata | Surface Deformations | TDB | TJC | Tortola | VCGR | VEST | VLSI CAD | Willow | WSN | WSNM | Zeus |
Past projects: BeeHive | HoLSt | ITIC | MNG | Multiagents | Naccio | Physical Simulation | QoS | RoboCup | Scanning Monticello | Simplification | Splint | Swarm Computing | VDSlib | VLSIR | Zephyr |

Faculty: Batson | Bloomfield | Cohoon | Davidson | Evans | French | Grimshaw | Gurumurthi | Hazelwood | Horton | Humphrey | Humphreys | Jones | Knight | Lawrence | Martin | Mishra | Ortega | Pearson | Pfaltz | Reynolds | Robins | shelat |Sherriff |Skadron | Soffa | Son | Stankovic | Sullivan | Veeraraghavan | Weaver | Weimer | Whitehouse | Wulf |

Selected Research Project Descriptions


Antimony Antimony
Ultra-fast Blue Noise Generation

Greg Humphreys
home page of Antimony

Sampling distributions with blue noise characteristics are widely used in computer graphics. Poisson-disc distributions are known to have blue noise characteristics but have traditionally been thought of as too expensive to generate and as an alternative many techniques have been developed for approximating or tiling precomputed such distributions. The Antimony project is exploring new, efficient methods for the direct computation of true Poisson-disc distributions. We have found a simple new algorithm for generating approximate distributions that runs in linear time. We are analyzing the spectral properties of these distributions and developing ways to further improve their blue noise spectral characteristics. One key advantage of our technique is that it permits a natural extension to support importance sampling of a given density function, along with the use of the resulting point set as a texture basis function.


Archsplit Archsplit
Non-invasive Generation of Exploded Views

Greg Humphreys
home page of Archsplit

Archsplit is a system for interactively producing exploded views of 3D architectural environments such as multi-story buildings. These exploded views allow viewers to simultaneously see the internal and external structures of such environments. To create an exploded view, we analyze the geometry of the environment to locate individual stories. We then use clipping planes and multipass rendering to separately render each story of the environment in exploded form. Archsplit operates at the graphics driver level and therefore can be applied to existing OpenGL applications, such as first-person multiplayer video games, without modification. The resulting visualization allows users to understand the global structure of architectural environments and to observe the actions of dynamic characters and objects interacting within such environments.


Bioinformatics Bioinformatics
Computational biology for the new millennium

Bill Pearson and Gabriel Robins
home page of Bioinformatics

We are addressing important problems in computational biology, including the construction of evolutionary (phylogenetic) trees over a given set of taxa (e.g., organisms, DNA molecules, etc.), where the optimization objective entails the best-fit of tree topologies under a least-squares or parsimony criteria. Another problem that we have investigated is the primers selection problem, which arises in polymerase chain reaction (PCR) experiments (i.e., DNA cloning). Here, given a set of DNA strands and a cost criterion, our objective is to find a minimal covering set of compatible DNA subsequences (primers) having least cost, in the hope of discovering new proteins. We are also researching the topographies of solution space landscapes, as well as new heuristics for multiple sequence alignment.


Calamari Calamari
Localization in Large Wireless Sensor Fields

Kamin Whitehouse
home page of Calamari

Wireless sensor networks consist of many small and cheap computational nodes that can sense the environment, communicate with neighboring nodes, and perform simple computations on sensor data. They may be deployed outdoors in large sensor fields to help detect and control the spread of wild fires, to detect and track enemy vehicles, or for environmental monitoring and precision agriculture. In many such application, each node requires location information to properly interpret its own sensor data and to act according to its placement in the world and in the network. Calamari is a system for providing each node in a sensor field with its own location information. Multi-hop sensor field localization is challenging because of the complex interaction between ranging error, the localization algorithm, and the actual network topology. Calamari predicts and explores these interactions using empirical characterizations and trace-based simulations.


Calibration Calibration
Macro-calibration in Sensor/Actuator Networks

Kamin Whitehouse
home page of Calibration

Instead of using a single highly-engineered sensor, sensor networks monitor the world through hundreds of cheap assembly-line components. Many such devices have poor factory calibration and drift over time during use. Because sensor networks can contain thousands of such sensors and can be influenced by the environment, they must self-calibrate after deployment. Unfortunately, pairing each sensor with an actuator to provide a known stimulus does not solve this problem because the actuators must also be calibrated. We developed a technique in which each node calibrates its sensor using the actuators of all of its neighbors. This creates an over-constrained system from which calibration coefficients can be inferred even in the face of some noise from both the sensors and actuators. We demonstrated the calibration technique on a 36-node testbed with microphones and acoustic actuators.


Chromium Chromium
Scalable Interactive Graphics with Commodity Technology

Greg Humphreys
home page of Chromium

Scalable graphics systems are becoming increasingly rarer, and remain an expensive luxury available only to a few institutions. Commodity graphics technology, despite enjoying capability increases that have continued to outpace Moore's law, tends not to scale at all; that is, users cannot pay more money to achieve higher performance. Our research attempts to bridge this gap by allowing clusters of commodity graphics accelerators to behave as a single logical graphics pipeline with a parallel interface. In contrast to other approaches to this problem, we have focused on achieving our goals only by manipulating streams of graphics command data. This means that existing applications can very easily take advantage of the underlying parallel graphics architecture, often without recompilation. The current direction of this project is to view scalable visualization as a remote service, much like a network-attached file system. This way, an institution could install a large cluster to serve the large-data visualization needs of an entire building, department, or even a university. We believe that adding scalable visualization services to a ubiquitous computing environment would represent a substantial leap forward for smart spaces and the preferred computing platform of the future.


CoCo CoCo
Continuous Compilation

Mary Lou Soffa and Jack Davidson
home page of CoCo

Today's challenge for program optimization research is to develop new techniques and approaches that yield performance improvements that go beyond today's small single digit improvements. In this research, we address this challenge by investigating and developing an innovative framework and system for continuously and adaptively applying optimizations. Our system, the Continuous Compiler (CoCo), applies optimizations both statically at compile-time and dynamically at run-time using optimization plans developed at compile time and adapted at run time. Rather than focusing on developing new optimization algorithms (e.g., a new register allocation algorithm, a new loop interchange algorithm) or improving existing optimizations (e.g., better coloring heuristics, better placement algorithms), this project focuses on understanding the interaction of existing optimizations and the efficacy of static and dynamic optimizations. Using this knowledge along with information about the application gathered by static analysis, profile information and monitoring, CoCo determines how to apply a suite of optimizations so that the optimizations work in concert to yield the best improvements.


Collision Detection Collision Detection
Exploiting the Capture Effect for Collision Detection and Recovery

Kamin Whitehouse
home page of Collision Detection

Besides complex techniques like CDMA, most wireless MAC protocols today lose packets during collisions and cannot differentiate between packet collisions and channel noise. Therefore, they unnecessarily avoid simultaneous transmission even though many radios exhibit the Capture Effect - the ability to correctly receive a strong signal from one transmitter despite significant interference from other transmitters. We developed a technique to exploit this effect to cheaply detect and recover from packet collisions using only simple, low-power radios that are commonly used in sensor networks. This technique differentiates between collisions and channel noise, recovers one of the packets entirely, and identifies the colliding transmitters. This enables more aggressive MAC protocols that transmit concurrently with neighbors; if a collision occurs, one of the packets will actually get through and feedback can be used to request the lost packets and/or to prevent future collisions. We demonstrated the collision detection and recovery technique on a 28-node testbed, and experiments with new MAC protocols yield 30% gains in bandwidth and latency.


ComponentOS ComponentOS
Component Based OSs for Embedded Systems

Jack Stankovic and Marty Humphrey
home page of ComponentOS

The use of component based software for constructing and tailoring embedded systems has promise. However, most third party components are too heavyweight and don't explicitly address time, memory, reliability, power, cost, and other cross cutting constraints. A key problem, and the one where most people have spent their energies, is developing the components themselves without fully addressing how they interact with other components or how they fit into a components infrastructure. While significant work has been done in developing components, less has been done with components suitable for embedded systems. Our research in developing component based SOS for embedded systems can be described in three key areas: developing and implementing domain specific components and component infrastructures, developing configuration tools to help in composition of embedded systems, and non-functional analysis to assess, for example, real-time and fault tolerance capabilities.


ControlWare ControlWare
Feedback Performance Control in Software Services

Tarek Abdelzaher and Jack Stankovic
home page of ControlWare

Software systems are becoming larger and more complex. At the same time, they are being deployed in applications where performance guarantees are required. Feedback control theory is a promising technology for performance control in software systems. We are developing solutions using feedback control for a variety of systems and organizing the results in a manner that we hope establishes a theory and practice of feedback control in computer systems. To this end we have built ControlWare. ControlWare is a middleware QoS-control architecture based on control theory. ControlWare allows the user to express QoS specifications, maps these specifications into appropriate feedback control loops, tunes the loop controllers analytically and connects the loops to the right sensors and actuators such that the desired QoS is achieved.


Computational Geometry Computational Geometry
Where algorithms and geometry meet

Gabriel Robins
home page of Computational Geometry

We are addressing open practical issues in computational geometry, an area that lies at the interface between the fields of geometry and algorithms. Recent projects include devising new algorithms with improved approximation ratios for the Group Steiner problem in general graphs, as well as the development of a heuristic with the currently best-known approximation bound for the general graph Steiner tree problem. We have also formulated and addressed a new and practical time-dependent variant of the classical Traveling Salesman Problem, which led to a number of follow-up works. Other results include upper and lower bounds on the maximum degree of minimum spanning trees under various metrics, and efficient algorithms for pattern recognition in point sets, which are applicable to landmine detection. Our work is motivated and driven by real-world needs and applications.


Computer Vision Computer Vision
Robotics, planning, and Artificial Intelligence

Worthy Martin
home page of Computer Vision

We do theoretical and experimental research on computer vision and image processing. Our goal is to develop real-time vision architectures, including applications for visually guided mobile robots. Our research agenda includes motion understanding, visual tracking of moving objects, and perception-action systems. We have several robots, a large set of image processing equipment, and an SGI reality engine at our disposal. We are interested in a variety of aspects of computer vision and image processing, with an emphasis on real-time vision applications. Topics of current interest include software for advanced vision systems, architectures and representational structures for visually guided mobile robots, systems to facilitate the use of pipelined image processors, visual tracking of moving objects, and motion understanding.


Data Mining Meets Data Privacy Data Mining Meets Data Privacy
Privacy-Preserving Pattern Detection in Massive Dynamic Datasets

Nina Mishra
home page of Data Mining Meets Data Privacy

Organizations now collect massive quantities of data about private citizens. On the one hand, there is a great need for algorithms that unearth patterns in these datasets so that we can make medical breakthroughs, scientific discoveries, catch terrorists, etc. From a data mining viewpoint, the more private data that is revealed the better the data mining. However, competing with the need for learning patterns is the need for privacy where the less private data that is revealed, the better privacy guarantees. This project seeks to resolve the apparent contradiction: can we have both? I.e., can we have privacy and homeland security, can we have privacy and design new drugs. By formally defining privacy using cryptographic concepts, various algorithms are being considered for understanding privacy and minability including input perturbation, output perturbation, and secure computation.


DDAM DDAM
Data-Driven Appearance Models for Computer Graphics

Jason Lawrence
home page of DDAM

Over the last decade, the computer graphics community has witnessed a significant increase in the availability of measured (or non-parametric) appearance data. Although directly using these measurements to shade a surface can provide a level of realism that is difficult to achieve with traditional analytic models, fully incorporating non-parametric appearance data into a traditional computer graphics pipeline still presents several research challenges. The goal of this project is to develop new representations for non-parametric appearance data that address some of these open research challenges. We have designed representations that support both interactive rendering and efficient sampling in the context of physically-based rendering. We also investigate more general representations that allow a user to edit the variation in a high-dimensional function while retaining its fidelity to the original measurements.


Dependability Dependability
Reliable, Trusted and Maintainable software

John Knight, David Evans and Jack Davidson
home page of Dependability

Dependability of a computing system is the ability to deliver service that can justifiably be trusted. Dependability is the system property that integrates such attributes as reliability, availability, safety, security, and maintainability. We focus on research issues related to software and architectures in high-value systems - computing systems of extreme importance to society whose failure would have a severe negative impact whether measured in terms of time, money or loss of life. Our research interests encompass safety-critical systems, such as medical devices, avionics, weapons systems; critical infrastructures such as financial networks, transportation systems, and power systems; and emergent grid computing systems that increasingly play a strategically vital role in such diverse industries as finance, health care, pharmaceuticals, and aerospace. We work closely with industrial and governmental partners to ensure research relevance. Past and current members of our group continue to provide leadership in academia, industry, and the military.


DRPM DRPM
Power and Temperature Optimization of Storage Systems

Sudhanva Gurumurthi
home page of DRPM

Denser and faster silicon integration has only exacerbated the problem of moving data to and from the storage subsystem. With applications getting larger and becoming more data-centric, the I/O subsystem has become a compelling target of optimization. We investigate how to manage power and temperature issues in storage systems. We proposed the use of a novel disk drive design, called "DRPM", where the disk can rotate at multiple speeds. This allows a dynamic tradeoff power for performance at a finer granularity rather what is done traditionally, i.e., either complete spindown where no I/O is possible, or else full-speed operation. DRPM is now widely researched by both the computer architecture and operating systems communities. Our studies also indicate that DRPM is likely to become one of the best solutions to effectively tackle temperature issues in disk drives, especially as computers are moving into an era where disk performance will increasingly rely on RPM rather than recording surface density.


Eos Eos
Aspect-Oriented Extension to C#

Kevin Sullivan
home page of Eos

The Eos project is an aspect-oriented extension to C#. Eos improves upon the current aspect-oriented language model in three dimensions. First, it generalizes aspect instantiation & advice weaving model to eliminate the need for the work-arounds that are unavoidable today when aspects are used to express integration concerns. Second it generalizes the join point model. Third it eliminates the distinction between class and aspect constructs in favor of a single conceptual building block that combines the expressive capabilities of current classes and aspects, significantly improving conceptual integrity and uniformity in language design.


FASTA FASTA
Biological Sequence Comparison

Bill Pearson
home page of FASTA

Rapid concurrent development of molecular cloning techniques, DNA sequencing methods, efficient sequence comparison algorithms, and computer workstations has revolutionized the role of biological sequence comparison in molecular biology. Sequence comparison is now used routinely as the first characterization of a DNA or protein sequence and is an essential part of the human genome project. We developed FASTA, one of the first widely used programs for searching protein and DNA sequence databases. Currently, we are developing and testing sequence comparison methods that will allow us to "push back" the evolutionary horizon - the distance at which related protein sequence can be reliably detected - from the current 800-1,000 million years to more than 2,000 million years. We also use genome-scale sequence comparison to identify potential "young" proteins - proteins that emerged over the last 200-400 million years.


Feedback Control Feedback Control
Real-Time Scheduling

Jack Stankovic, Sang Son, Gang Tao and Tarek Abdelzaher
home page of Feedback Control

Despite the significant body of results in real-time scheduling, many real world problems are not easily supported. While algorithms such as Earliest Deadline First, Rate Monotonic, and the Spring scheduling algorithm can support sophisticated task set characteristics (such as deadlines, precedence constraints, shared resources, jitters, etc.), they are all open loop scheduling algorithms. Open loop refers to the fact that once schedules are created they are not adjusted based on continuous feedback. While open-loop scheduling algorithms can perform well in static or dynamic systems in which the workloads can be accurately modeled, they can perform poorly in unpredictable dynamic systems. In this project we are developing a theory and practice of feedback control real-time scheduling. Feedback control real-time scheduling defines error terms for schedules, monitors the error, and continuously adjusts the schedules to maintain stable performance. We have developed a practical feedback control real-time scheduling algorithm, FC-EDF, which is a starting point in the long-term endeavor of creating of theory and practice of feedback control scheduling. We are applying out results to applications such as web servers, agile manufacturing, and defense systems.


Galileo Galileo
An Advanced Fault Tree Analysis Tool

Kevin Sullivan
home page of Galileo

The Galileo Fault Tree Analysis Tool is an experimental system being built within our Package-Oriented Programming (POP) project. Galileo supports advanced fault tree analysis capabilities developed under the direction of Professor Joanne Bechta Dugan. Specifically, Galileo supports Dugan's DIFtree analysis method. Package-Oriented Programming is a research project investigating the reuse and integration of very large-scale components. By very large, we mean "on the order of a million lines of code equivalent." We are exploring the use of shrink-wrapped software applications as massive building blocks, because it appears that new package architectures are sufficiently promising (but also lacking in certain essential ways) to warrant considerable research attention. Key issues include the design of mechanisms supporting restriction, specialization, extension and integration of packages. Our research addresses several issues, including (1) architectural styles for POP systems; (2) generalizing the architectural approaches that appear to make POP a reasonably successful approach to large-scale reuse and integration; and (3) investigating the software development life-cycle for systems developed in the POP style.


Genesis Genesis
A Framework for Achieving Component Diversity

John Knight, David Evans, Jack Davidson and Anh Nguyen-Tuong
home page of Genesis

We seek to reproduce the genetic diversity found in nature by deliberately and systematically introducing diversity in software components. The hope is that while the phenotype of software components will be similar (its functional behavior), its genotype will contain enough variations to protect the population against a broad class of diseases (attacks, aging). As our engine of software diversity, we will use a systematic and comprehensive methodology based on two fundamental and complementary approaches: design diversity and data diversity, Design diversity is the creation of multiple implementations of a given specification such that the different implementations have different designs. Data diversity is the use of multiple copies of a single implementation with each copy operating on different input data but yielding the same desired results. In data diversity, the different data streams are produced by a process known as data re-expression. Each diversity approach will be applied systematically at multiple levels of software representation to produce a spectrum of techniques for the creation of diverse software components.


GPU GPU
General Purpose Computing on the GPU

Greg Humphreys
home page of GPU

In this project, we looked at the application of graphics hardware to general-purpose numeric computing. Specifically, we used programmable graphics hardware to create a system that is capable of solving a variety of partial differential equations with complex boundary conditions. Our system implements the multigrid method, a fast and popular approach to solving large boundary value problems. We have demonstrated the viability of this technique by using it to accelerate three applications: simulation of heat transfer, modeling of fluid mechanics, and tone mapping of high dynamic range images. We also demonstrated that it is possible to cleanly map a state-of-the-art tone mapping algorithm to the pixel processor. This allows an interactive application to achieve higher levels of realism by rendering with physically based, unclamped lighting values and high dynamic range texture maps.


Graphics Graphics
The UVa Computer Graphics Group

Greg Humphreys and Jason Lawrence
home page of Graphics

The UVa Graphics Group is actively investigating a number of exciting new research directions. Projects include: Chromium - a scalable interactive graphics with commodity technology; building multiagent behaviors based on learning from observation; dynamically physical simulation of characters in graphical environments; scanning a very high-resolution and accurate 3D model of Thomas Jefferson's home Monticello; geometric simplification and perceptually-based level of detail rendering; VDSLib - a free Software for view-dependent simplification; and VLSIR - very large scale interactive rendering.


Grid Computing Group Grid Computing Group
Wide-Area Computing Across Multiple Administrative Domains

Marty Humphrey
home page of Grid Computing Group

Grid Computing is wide-area computing across multiple administrative domains. There are many issues that must be solved in order to deliver a "Grid Computing Infrastructure". The issues our research projects address include security, scheduling, programmability, and usability. Current projects underway in our group include: the design, Development, and Deployment of the Web Services Resource Framework (WSRF) on the .NET Framework (WSRF.NET); the design and Deployment of the University of Virginia Campus Grid (UVaCG); enhancing Grid Security by Leveraging Authentication and Authorization Infrastructures (through a partnership with the San Diego Supercomputing Center); policy Management in Grids; dependable Grids; and delivering a Scalable and Secure Programming Model for Grid Computing.


Hood Hood
A Distributed Programming Abstraction

Kamin Whitehouse
home page of Hood

Traditional distributed programming abstractions such as shared memory are difficult to apply to sensor networks because of the unreliable, low-bandwidth, geographically-constrained communication model. Instead, many distributed sensor network algorithms are based on the concept of a neighborhood, in which each node selects a set of important neighbors and maintains state about them. However, programmers must still implement neighborhoods in terms of their component parts: messaging, data caching, and membership. We developed an abstraction called Hood that unifies these fundamental concepts as a distributed programming primitive for sensor networks. Using Hood, a neighborhood can be defined by a set of criteria for choosing neighbors and a set of variables to be shared, such as a one-hop neighborhood over which light readings are shared, and a two-hop neighborhood over which both locations and temperature are shared. Once the neighborhoods are defined, Hood provides an interface to read the names and shared values of each neighbor. Beneath this interface, Hood hides the complexity of discovery and data sharing. This abstraction captures the common usage of neighborhoods in many publicly available sensor network applications, and was used to implement some of TinyOS's largest applications.


HotLeakage HotLeakage
A Software Model of Leakage

Kevin Skadron and Mircea Stan
home page of HotLeakage

HotLeakage is a software model of leakage based on BSIM3 technology data. It is publicly available on the web, computationally very simple, can easily be integrated into popular power-performance simulators like Wattch, can easily be extended to accommodate other technology models, and can easily be used to model leakage in a variety of structures (including caches, among others). It extends the Butts-Sohi model and corrects several important sources of inaccuracy. Our model is called HotLeakage because it includes the exponential effects of temperature on leakage. Temperature effects are important, because leakage current depends exponentially on temperature, and future operating temperatures may exceed 100 degree C. HotLeakage also includes the heretofore unmodeled effects of supply voltage, gate leakage, and parameter variations. HotLeakage has circuit-level accuracy because the parameters are derived from transistor-level simulation (Cadence tools). Yet like simplicity is maintained by deriving the necessary circuit-level model for individual cells, like memory cells or decoder circuits, and then taking advantage of the regularity of major structures to develop abstract models that can be expressed in simple formulas similar to the Butts-Sohi model.


HotSpot HotSpot
An Accurate and Fast Architectural Thermal Model

Kevin Skadron and Mircea Stan
home page of HotSpot

With power density and hence cooling costs rising exponentially, temperature-aware design has become a necessity. Processor packaging is becoming a major expense, and for many chips can no longer be designed for the worst case. Furthermore, simple estimates of power dissipation are not a good proxy for direct measurement or simulation of temperature. HotSpot is an accurate and fast thermal model suitable for use in architectural studies. It is based on an equivalent circuit of thermal resistances and capacitances that correspond to microarchitecture blocks and essential aspects of the thermal package. The model has been validated using finite element simulation. HotSpot has a simple set of interfaces and hence can be integrated with most power-performance simulators. The chief advantage of HotSpot is that it is compatible with the kinds of power/performance models used in the computer-architecture community, requiring no detailed design or synthesis description. HotSpot makes it possible to study thermal evolution over long periods of real, full-length applications.


IPA IPA
Inexpensive Program Analysis

David Evans
home page of IPA

Despite considerable progress in program analysis tools, typical software development processes make little use of advanced analysis techniques, even when they are producing mission critical software. Our group is exploring analysis approaches that combine dynamic and static analysis techniques. We co-organized the Workshop on Dynamic Analysis (25 May 2004 at ICSE). Software we produced includes Splint, a tool for statically checking C programs for security vulnerabilities and coding mistakes, and Perracotta, a dynamic analysis tool for automatically inferring temporal properties of a target program. With minimal effort, Splint can be used as a better lint. If additional effort is invested adding annotations to programs, Splint can perform stronger checking than can be done by any standard lint. Perracotta takes the program's execution traces as input and outputs a set of likely temporal properties. The properties can enhance program understanding, be used to aid program evolution, or be used as input properties for a model checker. We have investigated the mining of temporal API rules from imperfect traces, the automatic inference of temporal program properties, differential program analysis, statically detecting likely buffer overflow vulnerabilities and dynamic memory errors, and program evolution.


Info Tech Info Tech
Information Technology for Mobile and Web Based Systems

Sang Son
home page of Info Tech

As computer technology becomes more integrated into society, information management for human activities necessitates computing that responds to requests in real-time. Many information systems are now used to monitor and control appliances as well as large complex systems which must have predictable and timely behaviors. Millions of users will soon be carrying mobile computers that access the Internet wirelessly. To support those users in applications such as web-based information systems, e-commerce, and Internet appliances, providing consistent data and transaction services in real-time with acceptable quality and security will be a key requirement. This project aims to design and evaluate models and methodologies for developing robust and responsive information systems for those new applications. Current research issues include timeliness and predictability, adaptive QoS management, flexible security paradigms, data consistency in mobile environments, and applying real-time and information technology in web-based systems.


Intrusion Detection Intrusion Detection
Application Intrusion Detection Systems

Anita Jones
home page of Intrusion Detection

Since 1980, the intrusion detection community has divided intruders into two categories (internal and external) based on the intruder's access to a system. The proliferation of distributed systems with complex networks has necessitated a reexamination of intruder definitions. We defined a new category, the pseudo-internal intruder. This new category encompasses intruders without user accounts who circumvent the perimeter defenses of a modern distributed system and attack the system via its network. Intrusion detection has traditionally been performed at the operating system (OS) level, but OS intrusion detection systems (IDS) are frequently insufficient to catch internal intruders. We hypothesized that application specific IDS (AppIDS) could use the semantics of the application to detect more subtle, stealth-like attacks such as those carried out by internal intruders. We developed two extensive case studies to explore what opportunities exist for detecting intrusions at the application level, how effectively an AppIDS can detect the intrusions, and the possibility of cooperation between an AppIDS and an OS IDS to detect intrusions. AppIDS can detect some intrusions that an OS IDS cannot thus increasing the overall effectiveness in detecting intrusions.


Isoluminance Isoluminance
Isoluminant Color Selection for Non-Photorealistic Rendering

Jason Lawrence
home page of Isoluminance

We developed a color selection algorithm for non-photorealistic rendering applications. The human visual system processes luminance information in a scene separately from its chrominance. By using colors that have similar luminance but vary in color, skilled artists have exploited this property in order to create perceptual tension in their work. We presented a method for automatically selecting colors that exhibit this isoluminance property. We apply this color selection algorithm to both existing and novel non-photorealistic rendering image filters. We introduced a modified pointillist and image-mosaic filter along with a new image filter inspired by the work of the modern artist Chuck Close.


Isotach Isotach
Concurrency control without locks or barriers

Paul Reynolds
home page of Isotach

Isotach systems are distributed or parallel computer systems with special support for interprocess coordination. Isotach systems provide low cost ordered message delivery distributed databases, cache coherence in multiprocessors, distributed shared memory, parallel production systems, and distributed control systems. Isotach systems also provide support for fault-detection and check pointing. Isotach systems provide these benefits by maintaining a logical time system that enables processes to predict and control the logical time at which its messages are received. This control is a powerful mechanism for interprocess coordination in a parallel or distributed computation.


Jazz Jazz
Demand-Driven Structural Testing with Dynamic Instrumentation

Mary Lou Soffa
home page of Jazz

Producing reliable and robust software has become one of the most important software development concerns in recent years. Testing is a process by which software quality can be assured through the collection of information. While testing can improve software reliability, current tools typically are inflexible and have high overheads, making it challenging to test large software projects. Jazz is a new scalable and flexible framework for testing programs with a novel demand-driven approach based on execution paths to implement test coverage. This technique uses dynamic instrumentation on the binary code that can be inserted and removed on-the-fly to keep performance and memory overheads low. The Jazz software testing tool can do def-use, branch, and node coverage tests in the Jikes Java research virtual machine and just-in-time compiler. Jazz is a new and improved implementation of the SoftTest framework.


JDelta JDelta
Testbed for Delta Compression Algorithms in Diverse Environments

Alfred Weaver
home page of JDelta

Delta compression is the process of comparing two files to produce a set of instructions that will convert one file into the other. Storing or transmitting a delta file rather than the entire new file can offer significant efficiency gains. However, the different aspects of delta compression efficiency, like many problems in computer science, can rest at different ends of a balance. There does not exist a single delta compression algorithm that performs the best in every environment because performance requirements may vary. In order for a user of delta compression to choose the best algorithm for his situation, he must have some understanding of the strengths and weaknesses of the various delta compression algorithms available to him. JDelta, a Java-based delta compression utility, has been designed and implemented to both aid in this understanding, and to provide a framework for the future development of new delta compression techniques.


LAVA LAVA
Laboratory for Computer Architecture at Virginia

Kevin Skadron
home page of LAVA

Architectural innovation is vital to continued improvement in processor performance. Key to this is exploiting instruction-level parallelism (ILP). Among the most important levers are better branch prediction, more efficient memory hierarchies, and better compilation. Unfortunately, most approaches entail substantial complexity, usually at the cost of die size, power consumption, and longer development times. Even in high-performance processors, these problems constrain architectural innovations, and they are especially important for embedded environments like hand-held devices. Reducing complexity is therefore an important research question in its own right. The LAVA group is exploring all these issues, especially branch prediction, architecture/compiler synergies, and architecture for embedded environments. Collaborating institutions include Princeton, U-Mass, and Utah. Because simulation is so important to our work, the LAVA group is also exploring new ways to make simulations fast and accurate. The LAVA Lab contains a large suite of fast PCs for simulation-based architectural and microarchitectural studies. For especially large projects, the LAVA computers can be used in conjunction with the powerful Centurion system operated by the Legion project. We also have the opportunity to build real systems in conjunction with the computer engineering faculty and The Center For Semicustom Integrated Systems.


Legion Legion
World-Wide Virtual Computer

Andrew Grimshaw
home page of Legion

Legion is an object-based, meta-systems software project at the University of Virginia. From the project's beginning in late 1993, the goal of the Legion Group has been to create a highly usable, efficient, and scalable system founded on solid principles. We have been guided by our own work in object-oriented parallel processing, distributed computing, and security, as well as by decades of research in distributed computing systems. Our system addresses key issues such as scalability, programming ease, fault tolerance, security, site autonomy, etc. Legion is designed to support large degrees of parallelism in application code and manage the complexities of the physical system for the user. The first public release was made at Supercomputing '97, San Jose, California, on November 17, 1997. Legion is an "open" system that has been designed to allow and encourage third party development of applications, run-time library implementations, and "core" system components.


Lithium Lithium
Visualizing Competitive Behaviors in Multi-User Virtual Environments

Greg Humphreys
home page of Lithium

Lithium is a system for enhancing observation of user interactions in virtual environments. In particular, we focus on analyzing behavior patterns in the popular team-based first-person perspective game Return to Castle Wolfenstein: Enemy Territory. This game belongs to a genre characterized by two moderate-sized teams (usually 6 to 12 players each) competing over a set of objectives. Lithium allows spectators to visualize global features, as opposed to the limited local view that traditional spectating modes provide. We also add overlay visualizations of semantic information related to the action that might be important to a spectator in order to reduce the information overload that plagues traditional overview visualizations. These overlays can visualize non-obvious information such as player distribution over time and areas of intense combat activity, and also highlight important features like player paths, fire coverage, etc. This added information allows spectators to identify important game events more easily and reveals large-scale player behaviors that might otherwise be overlooked.


Marionette Marionette
Embedded Wireless Debugging

Kamin Whitehouse
home page of Marionette

A main challenge to developing applications for wireless embedded systems is the lack of run-time visibility and control. We developed a tool suite called Marionette which provides an interpreter through which the network operator can remotely call the node's functions, read and write its variables, and access its enumerations and data structures. This interactive and scriptable environment allows the developer to seamlessly trade off between between writing application logic on the PC for simplicity and debugging or writing it on the nodes for increased efficiency. This greatly eases the development process, and was shown to reduce code size in existing applications by up to 75%. Marionette is actively being used for development on several testbeds of up to several hundred nodes. Marionette builds upon earlier work on the Matlab/TinyOS development environment, which has been in the main TinyOS distribution for years.


MaSTRI MaSTRI
Modeling and Simulation Technology Research Initiative

Paul Reynolds and David Brogan
home page of MaSTRI

The focus of the MaSTRI Project is the solution of critical challenges that have inhibited or prevented the use of modeling and simulation technology in otherwise practical settings. Critical challenges include simulation reuse, multi-resolution modeling, composability, interoperability, visualization, behavioral modeling and integration of modeling and simulation (M&S) into training and education. Our research is focused on the areas of simulation coercion and simulation coercibility, which we collectively refer to as COERCE. We observe that COERCE has direct application to the challenges of simulation reuse and composability. COERCE can minimize problems caused by differences between models of the same phenomenon at different levels of resolution. In the area of simulation composability, COERCE has the potential to increase flexibility of the components comprising a simulation. So far, we have experienced considerable success in coercing individual simulations that were not designed to be coerced, and we are exploring how simulation coercion can become more automated and be facilitated by developing simulations with the specific objective of coercibility.


Medical Portal Medical Portal
Advancing Cyber Security with .NET

Alfred Weaver
home page of Medical Portal

The rapid worldwide deployment of the Internet and Web is the enabler of a new generation of e-healthcare applications, but the provision of a security architecture that can ensure the privacy and security of sensitive healthcare data is still an open question. We are using a web services approach to solve this problem. We authenticate users using a variety of biometric (fingerprint, iris scan, signature recognition) and digital (e-token, RFID, PIN generators) approaches; we generate custom authentication tokens that provide not only identification information but also a qualitative measure of the trustworthiness of the identification technology. We built an authorization rule engine that dynamically enforces data access rights. We use strong encryption on all data transmissions (e.g., electronic prescriptions). Our current research challenge is in devising ways to share trust across organizational boundaries; we are currently experimenting with trust groups, attribute servers, and token exchange servers are possible solutions.


MRRL MRRL
Memory Reference Reuse Latency

Kevin Skadron
home page of MRRL

Memory Reference Reuse Latency (MRRL) is the distance (in completed instructions) between consecutive references to some memory location. By measuring the reuse latencies of each unique address accessed by a benchmark, we are able to select a point to begin cache and branch predictor warm up prior to each simulation sample cluster. Cache and branch predictor warm up assures accurate simulation; our delayed warm up technique achieves accurate simulation in less time than modeling all cache and branch predictor interactions prior to each sample cluster. MRRL works very well for sampled simulations, because MRRL-driven warm up eliminates nonsampling bias just as well as fullwarmup which models all pre-cluster instructions. MRRL exploits temporal locality by modeling only those interactions that occur nearest to the clusters, that are most likely to be relevant to the simulation of the clusters, which gives MRRL its speed advantage.


Mutation Routing Mutation Routing
Mobile-to-Mobile Routing in Distributed Applications

Kamin Whitehouse
home page of Mutation Routing

One of the biggest challenges in a distributed tracking application such as the Pursuer-Evader Game (PEG) is mobile-mobile routing: routing from a source node to a destination while both are changing location in the network topology. Mutation Routing is an algorithm that finds a route once and then mutates it when nodes move. The algorithm can be proven never to mutate to an inconsistent state and, because mutation eliminates the need for control message and new route discovery overhead, it increases the overall bandwidth on the route. One disadvantage to this algorithm, however, is that routes can mutate to sub-optimal, snake-like patterns. Mutation routing therefore trades energy-efficiency and latency for higher bandwidth and lightweight route maintenance. Our work investigates hybrid routing algorithms that can choose the ideal operating point in this tradeoff.


NAE NAE
National Academy of Engineering - "Telling Truth to Power"

William Wulf
home page of NAE

Bill Wulf One of our faculty members, William Wulf, is currently President of the National Academy of Engineering, and vice chair of the National Research Council, the principal operating arm of the National Academies of Sciences and Engineering. Founded in 1964, the National Academy of Engineering (NAE) provides engineering leadership and research advice in service to the nation, the public, and the scientific and engineering communities. The NAE operates under the same congressional act of incorporation that established the National Academy of Sciences, signed in 1863 by President Lincoln. Under this charter the NAE is directed "whenever called upon by any department or agency of the government, to investigate, examine, experiment, and report upon any subject of science or art." The NAE is a private, independent, nonprofit institution. In addition to its role as advisor to the federal government, the NAE also conducts independent studies to examine important topics in engineering and technology. The NAE has more than 2,000 peer-elected members and foreign associates, senior professionals in business, academia, and government who are among the world's most accomplished engineers. They provide the leadership and expertise for numerous projects focused on the relationships between engineering, technology, and the quality of life.


Nancy's Pantry Nancy's Pantry
Bringing Printed Materials to the Visually Impaired

Paul Reynolds
home page of Nancy's Pantry

Consider what it must be like to order a meal if you can't read the menu. Or to learn the amount of your latest utility bill. Or to select a can of your favorite soup off the shelf in your pantry. If you're visually impaired, there's no affordable technology in the marketplace to support you. However, the enabling technology does exist! Project Nancy's Pantry is about bringing low cost access to common, everyday printed materials: menus, soup cans, utility bills, bus schedules, clothing -- the list really is nearly endless. A key Requirement is low-cost production and low-cost use. We're exploring a two-part technology. Our production technology of choice is a 2D (two dimensional) barcode. Currently we're using pdf417 bar code, and the web technology XML. Using a laser or optical scanner similar to the checkout at most retailers, we can scan the barcodes and convert them to a computer processable form. Our user technology of choice is a low cost flexible processor, such as a PDA. Any device capable of general purpose processing, and generation of audio, is sufficient. Ultimately we envision a single PDA-like device that incorporates either laser or optical scanning, and general purpose processing. Such devices exist in a limited part of the commercial sector. We aim to bring them into the consumer sector.


NEST NEST
Networked Embedded Systems Technology for Wireless Sensor Networks

Jack Stankovic, Tarek Abdelzaher, Sang Son and Gang Tao
home page of NEST

Wireless sensor networks have emerged as a new information gathering paradigm based on the decentralized collaboration of a large number of sensing/computation/actuation nodes. This project develops middleware and programming paradigms for wireless sensor networks. We have key innovations in real-time routing, packet aggregation, localization, asynchronous multicast, power management, group management and programming paradigms. Work is continuing in all these areas as well as on new topics including wireless sensor network event services, swarm computing, extreme scaling and robustness. Our work utilizes both simulation and a physical testbed of 120 Berkeley motes. This project is funded by DARPA, a MURI and NSF.


N-Variant Systems Framework N-Variant Systems Framework
Software System Protection Framework

John Knight, David Evans, Jack Davidson, Anh Nguyen-Tuong and Jonathan Rowanhill
home page of N-Variant Systems Framework

We propose a new approach to software service protection that is based on software system structures which combine monitoring software and tailored program diversity. The resulting systems have two valuable properties that cannot be achieved with previous vulnerability-masking approaches: (1) their effectiveness does not depend on keeping secrets from adversaries; and (2) we can construct proofs that a system cannot be compromised by a class of attacks, no matter what vulnerabilities exist in the server program. The first property means that adversaries can have complete knowledge about the structure and software of our systems without compromising their security. Thus, insider snooping cannot defeat our vulnerability protection against outsider initiated attacks, and probing or guessing attacks that have been shown effective against previously proposed diversity techniques pose no threat to our system. The second property means that there can be a high level of assurance in the coverage of vulnerabilities in the system based on formal arguments and depend only on clearly stated assumptions about components of our system structure, but place no constraints on properties of the protected software service. An instantiation of our idea is the N-Variant System Framework, which provides a general mechanism for detecting and preventing classes of attacks on vulnerable servers. Our approach provides provable security that does not rely on secrets.


PDO PDO
Profit-Driven Optimization

Mary Lou Soffa
home page of PDO

Although optimizations have been applied for a number of years to improve the performance of software, problems that have been long-standing remain, which include knowing what optimizations to apply and how to apply them. To systematically tackle these problems, we need to understand the properties of optimizations. In our current research, we are investigating the profitability property, which is useful for determining the benefit of applying an optimization. Due to the high cost of applying optimizations and then experimentally evaluating their profitability, we use an analytic model framework for predicting the profitability of optimizations. We target both loop and scalar optimizations. In particular, we have described framework instances for several classic loop optimizations. More recently, we have developed framework instances for scalar optimizations, such as Partial Redundancy Elimination (PRE) and Loop Invariant Code Motion (LICM). We have implemented our framework in the MachSUIF compiler to explore the effectiveness our analytic models. Experiments with both loop and scalar optimizations shows that the approach can very accurately predict the profitability of optimizations, with low compile-time overhead. By predicting the profitability using models, we can selectively apply optimizations. The model-based approach does not require tuning of parameters used in heuristic approaches and works well across different code contexts and optimizations.


Perracotta Perracotta
Program Dynamic Temporal Analysis

David Evans
home page of Perracotta

Perracotta is a dynamic analysis tool for automatically inferring temporal properties of a target program. It takes the program's execution traces as input and outputs a set of temporal properties it likely has. We address several key challenges to make our dynamic analysis effective. First, we propose a hierarchy of templates to capture commonly occurred properties. Perracotta uses a scalable statistical inference algorithm that can handle imperfect traces, several heuristics for selecting interesting temporal properties, and a chaining method for constructing larger finite state machines out of a group of small ones. To evaluate whether such property patterns are useful, we apply Perracotta to help program evolution by inferring temporal properties for several versions of a program, then compare the inferred properties across versions. We also use Perracotta to support program verification. We applied Perracotta to infer temporal rules for the Microsoft Windows kernel APIs, and found numerous previously undetected bugs in Windows.


Perspective Warp Perspective Warp
Improved Two-Pass Resampling Algorithms

Jason Lawrence
home page of Perspective Warp

From classical texture mapping to photo-mosaics, warping images according to a perspective projection is a key operation in many computer graphics algorithms. Working with Microsoft's Graphics Device Interface (GDI+) group, we implemented Catmull and Smith's two-pass resampling algorithm that computes perspective projections of images in scanline order. Although they present an elegant technique for decomposing a general perspective transformation into two simplified 1d reconstruction passes, their approach is limited by how the algorithm selects the order of these passes. We better quantified the types of errors present in this decomposition, and demonstrated that in many important cases, using our new selection criteria improves the output image quality.


Physicrypt Physicrypt
Physical Cryptography and Security

David Evans
home page of Physicrypt

Computing is moving into the real world. Instead of performing computations in protected beige boxes with narrow interfaces to the real world, the majority of future computing will be done by devices (such as nodes in sensor networks) that interact with the real world in rich and dynamic ways. Our research explores how this trend impacts security. We consider ways to use properties of the physical world in which computing devices are deployed to improve security. A related project, Swarm Computing, considers how the new computing environment impacts programming, and what biology can reach us about security. We have explored topics such as .NET security and the lessons learned and missed from Java, mobile sensor networks, using directional antennas to prevent wormhole attacks, the perception and reality of election security, authentication for remote voting, secure aggregation for wireless networks, and security issues and requirements for Internet-scale publish-subscribe systems.


PIE PIE
Personalized Information Environments

James French and Andrew Grimshaw
home page of PIE

The number and volume of information resources is enormous and growing exponentially. The level of care taken in the preparation of information for on-line publication varies greatly. Access to the information is often poor and even awareness of the existence of specific data is becoming increasingly difficult. Organizational strategies provided by information publishers are publisher-centric or designed to meet the needs of a specific user group. Tools are needed that will enable users to create personal collections of information resources of interest to them. It will be necessary to cull tens of thousands of resources for those of specific interest; it will also be necessary to continuously monitor available resources to detect new useful sources or to decide that others are no longer of interest. Efficient search strategies are required to support the discovery of resources and to search and fuse information gleaned from those resources. We are developing new techniques aimed at constructing a user-customized Personalized Information Environment (PIE) that can be tailored to the needs of specific users. The techniques developed will be based on: distributed search over restricted search spaces; virtual information repositories; and a novel system architecture. In addition to user control over information access, our architecture provides for user anonymity and secure access to resources.


PRMES PRMES
Profit and Resource Management for Embedded Systems

Mary Lou Soffa
home page of PRMES

Continuous Compilation has a number of benefits and uses for embedded software. It is particularly well suited for enabling software malleability, meeting multiple design constraints that change at run-time, and managing system resources. In this sub-project, we are developing novel solutions to these problems and applying our work with Continuous Compilation to embedded software. We are developing novel analytic models of machine resources, code optimizations, and program code that can be used to better meet performance/cost goals for embedded systems. The models can be used to quickly explore different optimization decisions (e.g., optimization configuration, interactions, etc.) to select the optimizations that best meet an objective function. Unlike other work, such as iterative compilation and experimentally based searches, our approach does not require execution feedback to evaluate whether an optimization is beneficial. Hence, the approach is extremely fast and can determine the benefit of an optimization much quicker than existing approaches. Dynamic code translation can be used to effectively manage embedded system resources. We have developed techniques for instruction code compression/decompression in a purely software based framework. Such an approach is more flexible than a hardware based solution because it allows the compressor and decompressor to be changed. Unlike other software approaches, our technique decompresses only instructions that are very likely to execute, which helps to reduce the run-time overhead of decompression. We have developed a technique, called partial image compression, that substantially reduces code image size using only a modest run-time decompression overhead.


Qsilver Qsilver
Flexible Simulation Framework for Graphics Architectures

Kevin Skadron and David Luebke
home page of Qsilver

QSilver is a multipurpose tool for analysis of the performance characteristics of computer graphics hardware and software. Qsilver is a highly configurable micro-architectural simulator of the GPU that uses the Chromium system's ability to intercept and redirect an OpenGL stream. The simulator produces an annotated trace of graphics commands using Chromium, then runs the trace through a cycle-timer model to evaluate time-dependent behaviors of the various functional units. Qsilver can be used to analyze performance bottlenecks in existing architecture, to explore new GPU microarchitectures, and to model power and leakage properties. One innovation of this tool is the use of dynamic voltage scaling across multiple clock domains to achieve significant energy savings at almost negligible performance cost.


Semantic Streams Semantic Streams
A Framework for Composable Semantic Interpretation of Sensor Data

Kamin Whitehouse
home page of Semantic Streams

One of the largest remaining obstacles to the widespread use of sensor networks is the interpretation of the sensor data; users must be able to query for high-level facts about the world, not just raw ADC readings. Our Semantic Streams framework allows users to pose declarative queries for semantic values, such as "the speeds of vehicles near the entrance of the parking garage." The system combines logical inference with AI planning techniques to compose a sequence of inference units, which are stream operators that perform a minimal amount of sensor fusion or interpretation on incoming event streams and incorporate newly inferred semantic values into outgoing event streams. Both the sensor network and the inference units are logically described in Prolog and the system can reason about which sensors to use and whether the inference units are being used in an appropriate world context. Typically, multiple combinations of sensors and inference units can answer the same query, so users can also declare QoS constraints in CLP(R) notation to choose between logically equivalent inference graphs, e.g., "the confidence of the speed estimates should be greater than 90%" or "I want to minimize the total number of radio messages".


Software Quality Software Quality
Reliability and Error-Prevention

Westley Weimer
home page of Software Quality

Our research interests lie in advancing software quality by using both static and dynamic programming language approaches. We are particularly concerned with automatic or minimally-guided techniques that can scale and be applied easily to large, existing programs. We believe that finding bugs is insufficient, and we also work to help programmers address defects and understand error reports. We are also interested in designing languages and language features to help prevent errors. We use concepts from other areas of computer science to help address software quality problems, and succeeded in combining elements of databases, systems, and machine learning. We add programming language support for more robust error-handling via first-class compensation stacks. It also uses specification mining techniques to automatically infer important resources and safety policies in the presence of run-time errors.


STILT STILT
System for Terrorism Intervention and Large-scale Teamwork

John Knight, David Evans and Jack Davidson
home page of STILT

In the event of an attack or disaster, the effectiveness of communication will have great impact on effectiveness of response. Information, such as what areas have been affected and the level of damage, must be quickly distributed to the people and systems who will then use it to formulate effective response. All individuals that will enact this response must then be notified quickly that the event has occurred and directed as to the action (or inaction) they must take. Feedback is then collected from the responders to assess the implementation of response. This type of control loop is currently difficult to enact even within a single jurisdiction, and nearly infeasible at the regional or national scale. The intent of our System for Terrorism Intervention and Large-scale Teamwork (STILT) is to provide a mechanism for enacting such a control loop. The system is primarily focused around detecting and responding to geographically-distributed, coordinated terrorist attacks. However, the system is general enough that it can be applied to any emergency response situation. Our central premise is that a system that can correlate distributed attacks and precisely target response commands and information to relevant parties will help prevent subsequent attacks, decrease the impact of successful subsequent attacks, and increase response effectiveness.


Strata Strata
A Reconfigurable and Retargetable Software Dynamic Translator

Mary Lou Soffa
home page of Strata

Despite the many uses of software dynamic translation and the lively state of research on SDT, building SDT systems remains a significant challenge. In this project, to address the difficulty of building software dynamic translators and to promote research into novel uses of SDT. We are developing an SDT implementation infrastructure called Strata. Strata provides a common framework in which researchers can build dynamic translators. Strata uses several novel techniques to reduce the cost of dynamic code translation, including partial inlining, indirect branch translation caching, fast returns, instruction trace formation, and fragment linking. To gather run-time information, Strata has facilities for dynamic instrumentation. Because instrumentation can be very expensive, Strata uses several novel optimizations that target instrumentation overhead, including instrumentation probe coalescing, partial context switches, code specialization and payload partial inlining.


Surface Deformations Surface Deformations
A Painting Interface for Geometric Modeling

Jason Lawrence
home page of Surface Deformations

Designing effective user interfaces for modeling 3d geometry has been a longstanding challenge in computer graphics. This task is complicated by the fact that we often attempt to specify 3d positions and directions with purely 2d input devices. To address this challenge, we developed a modeling interface that combines interactive manipulation and physical simulation. Instead of modifying the surface directly, the user specifies physical properties of the surface (i.e velocity) using a 3d painting interface. The user then interactively simulates the resulting surface motion until the desired deformation is achieved. Our work enabled the creation of several models using this interface, and was honored with a best paper award.


TDB TDB
A Transparent Debugger for Dynamically Translated Code

Mary Lou Soffa
home page of TDB

Software dynamic translation (SDT) has received much attention due to compelling applications of the technology, including software security checking, binary translation, and dynamic optimization. In this project, we are developing new debugging techniques for applications executing with SDTs. Our techniques use novel dynamic code mappings to create the illusion that the source program is being debugged, while allow the SDT system to modify the executing code. We are targeting a number of SDT applications, including dynamic binary translation, dynamic code optimization, code security checking, reliable software systems, computer architecture simulation, and dynamic instrumentation. We have built a prototype debugger, called TDB, that integrates a SDT system, Strata, with a widely used debugger, gdb. Our prototype can handle many types of code modifications applied by SDTs, including the basic translations applied, overhead reduction transformations, and dynamic instrumentation. The basic dynamic translations include generating a new instruction, inserting multiple instructions for a single program statement during translation, ignoring and not generating instructions for a program statement, deletion (flushing) of previously translated instructions, and the duplication of program instructions in the translated code. We are also considering several overhead reduction transformations, including instruction trace formation, conditional branch linking, indirect branch translation caching, partial inlining of unconditional branches and calls, and fast return handling. Finally, we are considering the effect of insertion and removal of instrumentation in the translated code.


TJC TJC
Scalable Robust Visualization of Large Trees

Greg Humphreys
home page of TJC

The TreeJuxtaposer system allowed visual comparison of large trees with guaranteed visibility of landmarks and Focus+Context navigation. While that system allowed exploration and comparison of larger datasets than previous work, it was limited to a single tree of 775,000 nodes by a large memory footprint. In this project, we designed and implemented two scalable, robust solutions to these limitations: TJC and TJC-Q. TJC is a system that supports browsing trees up to 15 million nodes by exploiting leading-edge graphics hardware while TJC-Q allows browsing trees up to 5 million nodes on commodity platforms. Both of these systems use a fast new algorithm for drawing and culling and benefit from a complete redesign of all data structures for more efficient memory usage and reduced preprocessing time.


Tortola Tortola
Hardware-Software Symbiosis

Kim Hazelwood and Greg Humphreys
home page of Tortola

Modern computer systems designers must consider many more factors than just raw performance. Thermal output, power consumption, reliability, testing, and security are quickly becoming first-order concerns. Until recently, the vast majority of research efforts in optimizing computer systems have targeted a single logical "layer" in isolation: application code, operating systems, virtual machines, microarchitecture, or circuits. However, we feel that we are reaching the limits of the solutions than we can provide by targeting a single layer in isolation. We also feel that there is an important class of computing challenges that is better suited for more holistic approaches. The Tortola project is exploring of a symbiotic relationship between a virtual machine and the host microarchitecture to solve future challenges in the areas of power, reliability, security, and performance. In general, we attack challenges that would work well using more "reactive" techniques, whereby the hardware can detect a problem, and the virtual machine can use its global knowledge about the program to correct the problem.


VCGR VCGR
Virginia Center for Grid Research

Andrew Grimshaw
home page of VCGR

The Virginia Center for Grid Research is dedicated to performing research and solving issues surrounding the operation, deployment, and use of large distributed data and computing systems. Our overriding objective is to advance the science and application of grid computing so that it is more useful and readily available to those end users that can benefit from its power. Our goal is not to simply solve a few pieces of the overall grid computing puzzle (which is an important, part to be sure), but to also promote the use of grid computing systems to improve the capabilities of other areas of science and to perform research and share information and ideas. The scope of our charter covers a wide spectrum of activities including pure computer science/engineering research, grid system development and deployment, grid research community interaction, development of standards, and end user collaboration and outreach. We have created the Global Bio Grid (GBG) to facilitate several research efforts in the biological and medical fields at various institutions. We plan to identify and solve key research issues; demonstrate, evangelize, and educate user communities on the usefulness of grid systems; improve the ease of use of systems and work with end users and solicit their feedback; and increase the reach of grid systems.


VEST VEST
Virginia Embedded Systems Toolkit

Jack Stankovic
home page of VEST

VEST (Virginia Embedded Systems Toolkit) is an integrated environment for constructing and analyzing component based embedded and real-time systems. Generally speaking, the VEST environment is designed to help designers select or create passive components (collection of functions, classes, HW, etc), compose them into a system/product, map the passive components onto runtime (active) structures such as threads, map threads onto specific hardware, and perform dependency checks and non-functional analyzes to offer as many guarantees as possible along many dimensions including real-time performance, and reliability.


VLSI CAD VLSI CAD
Physical Design and Layout

James Cohoon and Gabriel Robins
home page of VLSI CAD

Recent trends in deep-submicron Very Large Scale Integrated (VLSI) circuit technology have resulted in new requirements for circuit layout algorithms. Much of our research centers on new formulations which capture performance and density criteria in computer-aided design (CAD). Our results include near-optimal approximation algorithms for computationally intractable problems as minimum-cost Steiner tree routing, low-skew clock routing, cost-radius tradeoffs, bounded-density trees, circuit probe testing, Elmore-based routing constructions, multi-port terminal routing, and new metal-fill formulations for manufacturing yield enhancement. Our methods address not only traditional and leading-edge integrated circuit technologies, but also newer design styles such as field-programmable gate arrays (FPGAs) and multi-chip modules. We are also investigating other topics in discrete algorithms, combinatorial optimization, and computational geometry.


Willow Willow
Survivability Architecture for Information Systems

John Knight
home page of Willow

The Willow system is designed to support the survivability of large distributed information systems. As part of its approach, Willow deals broadly with their faults, applying fault avoidance by disabling vulnerable network elements intentionally when a threat is detected or predicted, fault elimination by replacing system software elements when faults are discovered, and fault tolerance by reconfiguring the system if non-maskable damage occurs. The reactive component of Willow supplements the usual information system fabric with a comprehensive fault-tolerance mechanism referred to as a survivability architecture or information survivability control system. The key to the architecture is a powerful reconfiguration mechanism that is combined with a general control loop structure in which network state is sensed, analyzed, and required changes effected. The main challenges Willow overcomes are those of scalability and complexity.


WSN WSN
Wireless Sensors Networks

Jack Stankovic and Sang Son
home page of WSN

It is now possible to develop large numbers of small smart components that combine computing power, wireless communication capabilities, and specialized sensors and actuators. These components or nodes may be deployed in thousands to achieve a common mission. They may be used to monitor poorly accessible or dangerous environments such as the ocean floor, neighborhoods of volcanic activities, hostile territories (e.g., behind enemy lines), disaster areas, and nuclearly active fields. They may also be deployed to accomplish interactive tasks such as finding and detonating enemy mines, looking for survivors of natural disasters, or containing and isolating oil spills to protect a nearby coastline. These wireless sensor devices are also useful for environmental monitoring, medical applications and smart homes or buildings. Our work includes developing MAC and routing layer solutions, group management based on novel "enough" semantics, analysis and implementation techniques for achieving aggregate behavior, novel data services protocols including sensor net querying capabilities, development of a sophisticated event service for WSN, protocols for power management, protocols for computer security, and developing new paradigms for sensor net programming. We are working with a testbed of MICA and XSM motes to investigate detection, tracking and classification with power management capabilities.