Complex signal processing problems are naturally
described by compositions of program modules that
process streams of data. In this paper we discuss how
such compositions may be analyzed and mapped
onto multiprocessor computers to effectively
exploit the massive parallelism of these applications.
The methods are illustrated with an example of
signal processing for an optical surveillance problem.

The method illustrated involves program transformation
and analysis to construct a {\em program description tree}
that represents the given computation as an acyclic interconnection
of stream-processing modules. Each module may be mapped
to a set of threads run on a group of processing elements of a
target multiprocessor. We estimate the parameters of performance
that could be realized for two forms of multiprocessor
architecture, one based on conventional DSP technology and
one based on a multithreaded processing element architecture.
For our example, we conclude that the multithreaded architecture
offers advantages in latency of results and in memory requirements, as well
as in throughput.
