Computational Process Network Source Code


This is the download page for the very first release of the CPN framework, circa 2000.
Shortly thereafter, life circumstances got in the way of my graduate research.
The next series of releases were made from here,
starting in 2010.

Computational Process Networks is a model and a framework library for real-time high-throughput signal and image processing on symmetric multiprocessing workstations. The model combines:

Computational Process Networks model algorithms on overlapping continuous streams of data (such as digital filters and overlap-and-save fast Fourier transforms), and provides liveness and determinate execution. Our C++ implementation provides a portable, high-performance, scalable framework using POSIX Threads.

The March 2000 issue of IEEE Transactions on Signal Processing contains a paper [4] which prototypes a 3-D sonar beamfomer using Computational Process Networks. The beamfomer sustains a real-time 4 GFLOPS on a Sun Ultra Enterprise 4000 with 12 336 MHz UltraSPARC-II processors.

The Computational Process Network source code is publicly available, under the GNU GPL.


We use jmake, an automated, multi-platform build tool. You'll need it, too.

A core component of the Computational Process Network framework is the Pthread class library. It is developed on Sun Solaris, and runs (or has run) on many other platforms. These platforms include Linux, LinuxPPC, AIX, IRIX, MercuryOS, and MacOS X DP3. Other platforms which support POSIX Pthreads should also work with minimal effort.

The Computational Process Network Sample code contains the Pthread library. It contains a simple program which demonstrates the use of the Computational Process Network framework, while attempting to test it. Currently, it has only been tested on Solaris, Linux, and LinuxPPC (but may work on others).

3/29/00 - This version has had a significant rewrite, with the following features:


  1. G. Kahn, "The Semantics of a Simple Language for Parallel Programming," Information Processing, pp. 471-475, Stockholm, Aug. 1974.
  2. T. M. Parks, "Bounded Scheduling of Process Networks," Technical Report UCB/ERL-95-105, Ph.D. Dissertation, EECS Department, University of California, Berkeley, CA 94720-1770, Dec. 1995.
  3. R. M. Karp and R. E. Miller, "Properties of a Model for Parallel Computations: Determinacy, Termination, Queueing," SIAM Journal, vol. 14, pp. 1390-1411, Nov. 1966.
  4. G. E. Allen and B. L. Evans, "Real-Time Sonar Beamforming on a Unix Workstation Using Process Networks and POSIX Threads", IEEE Transactions on Signal Processing, pp. 921-926, March 2000.

For more information contact: Greg Allen <gallen AT utexas DOT edu>