Kahn Process Network

AI Engine Programming: A Kahn Process Network Evolution (WP552)

Document ID
Release Date
1.0 English

The KPN is a distributed model of computation proposed by Gilles Kahn in 1974 as a general-purpose scheme developed for parallel programming, which laid a foundation for the data flow model. In the KPN, the components represent the functions (or kernels) and the connections represent the data flow as shown in the following figure.

Figure 1. Functions and Data Flow

The kernel (function 3) reads data from two kernels (function 1 and 2). If there are no data available at any one of the kernels, the read stalls the process, which blocks the kernel (function 3). The process can continue only when sufficient data (tokens) are available. Writing the data (function 1 and 2) to the process (function 3) is non-blocking, which means it is always successful while writing and a stall does not occur. Due to these characteristics, the data flow network is deterministic in nature. This is a deterministic process communication through first in and first out (FIFO) channels. This model is proven for modeling embedded systems, signal processing systems, high-performance computing, data flow programming languages, and other computational tasks.

The signal processing systems are modeled using the KPN where infinite streams of data are processed by executing in sequential or parallel forms based on the given tasks.