Many signal and image processing systems for high-throughput applications require concurrent implementations. These implementations should scale with increasing availability of computational elements, avoid deadlock, and produce consistent results (determinism). However, coarse-grained locks yield systems that do not scale well, and insufficient locking may cause non-determinate execution. In standard industry approaches, the programmer must try to resolve the tension among scalability, deadlock and determinism, which becomes increasingly difficult as software complexity grows.

The Kahn Process Network (KPN) model is a type of formal dataflow model that is highly useful for modeling and exploiting functional parallelism in streaming data applications (such as signal processing). This model consists of concurrent processes communicating via one-way channels that are first-in first-out queues. The model maps easily to multi-threaded and/or multi-processor targets. The KPN model has an important quality that it guarantees determinacy regardless of the rates or order in which processes execute. Thus, the correctness of a computation under this model does not depend on the use of explicit synchronization mechanisms. Moreover, KPN facilitates code-reuse and eases system design.

Our research explores three dimensions of the problems confronting the KPN model:

Mail comments about this page to