CAREER: Provably Good Concurrency Platforms for Streaming Applications
Washington University, Saint Louis MO
Investigators
Abstract
Most of the today's computers are parallel machines. For example, multicore processors on personal computers and cell phones, graphics processors, cloud computers, and clusters all have more than one processing unit. Many modern applications are data intensive; examples include digital signal processing, audio and video processing, networking, scientific and biological computations. Streaming is an increasingly popular paradigm for applications that process large amounts of data in parallel. A streaming concurrency platform is responsible for correctly and efficiently executing streaming applications on a given parallel machine. The goal of this research is to design streaming concurrency platforms that provide guarantees of forward progress and efficiency. This research will fundamentally advance the technology by addressing the following important questions: (1) How to guarantee that applications will make forward progress (not deadlock)? (2) How to guarantee that the streaming applications will run efficiently on modern parallel machines with deep and complex memory hierarchies? and (3) How to support more general and expressive streaming models while still providing correctness and performance guarantees? In modern machines cache locality can have a significant impact on performance. This research has the potential to make fundamental contributions to both design and analysis techniques for steaming schedulers that guarantee good cache performance to streaming applications. This work will enable programmers to express a larger class of applications more easily in the streaming model. While this research project is a primarily theoretical undertaking aimed towards designing algorithms and proving asymptotic bounds on their performance, the overall goal is to enable practical and efficient concurrency platforms that can run high-performance, high-throughput streaming computations on real parallel machines. Therefore, one of the primary objectives will be to design low overhead and simple algorithms that can be implemented in production-level streaming concurrency platforms.
View original record on NSF Award Search →