Current Research

Many signal and image processing systems for high-throughput, high-performance applications require concurrent implementations in order to realize desired performance. Developing software for concurrent systems is widely acknowledged to be difficult, with common industry practice leaving the burden of preventing concurrency problems on the programmer.

The Kahn Process Network model provides the mathematically provable property of determinism of a program result regardless of the execution order of its processes, including concurrent execution. This model is also natural for describing streams of data samples in a signal processing system, where processes transform streams from one data type to another. However, a Kahn Process Network may require infinite memory to execute.

One area of current research is in dynamic distributed deadlock detection and resolution algorithms, which permits execution of Process Networks in bounded memory if it is possible. It detects local deadlocks in a Process Network, determines whether the deadlock can be resolved and, if so, identifies the process that must take action to resolve the deadlock. We have developed one such algorithm so far.

A second area of current research is in extensions of the Kahn Process Network for streaming applications. One of our proposed extensions is called the Computational Process Network (CPN) model which combines Computational Graphs and KPN. CPN is based on the formalisms of Kahn's PN model, but with enhancements that are designed to make it efficiently implementable. These enhancements include multi-token transactions to reduce execution overhead, multi-channel queues for multi-dimensional synchronous data, zero-copy semantics, and consumer and producer firing thresholds for queues. Firing thresholds enable memoryless computation of sliding window algorithms, which are common in signal processing systems. I show that the Computational Process Network model preserves the formal properties of Process Networks, while reducing the operations required to implement sliding window algorithms on continuous streams of data.

A third area of current research is in high-throughput software frameworks based on process network models. We have released several versions of a C++ implementation of the Computational Process Network model that maps naturally onto distributed systems. This framework uses POSIX threads, and can exploit parallelism in both multi-core and distributed systems. We have been evaluating the computer performance of the framework using case studies. One of the case studies is for a three-dimensional circular convolution sonar beamformer and replica correlator, which demonstrates the high throughput and scalability of a real-time signal processing algorithm using the CPN model and framework.

A good reference of current and future research in computational process networks is Greg Allen's PhD dissertation in May 2011.

Mail comments about this page to