This is a summary of requirements for
a signal processing API, according to one contractor. A hardcopy handout
was distributed (by Mercury Computer representatives) at the August 2001
meeting of the DRI Forum. This outline summarizes the requirements communicated
in that handout.
-
Sizes of data sets can be very dynamic, potentially changing with each
application iteration
-
2 dimensions of a 3-dimensional data cube may each vary up to 3 orders
of magnitude in size
-
Once a data set enters the signal processing chain, all of its contents
are transferred in the data reorganizations that occur between functional
data-parallel processing stages
-
A data set's dimensions may change during the course of executing the local
signal processing algorithm, for instance when performing a "sample rate
decimation". In the DRI sense, this would correspond to changing
the DRI_Globaldata object's properties before executing a subsequent data
reorganization (or, as currently envisioned in DRI, by simply creating
another DRI_Globaldata instance to reflect the new data properties).
-
There is a need to dynamically bind the pair of process sets involved in
a data reorganization
-
the particular case of highest priority is to have a common "source" process
group (e.g., to serve as a "problem dispatch" I/O group) and to have a
list of candidate destination process groups (e.g., that each are capable
of performing data-parallel processing on a single application "problem").
The problem dispatch group dynamically determines (according to some application-specific
or middleware-provided policy) what specific destination group will handle
each problem.
-
More flexible buffering is needed to efficiently utilize the aggregate
system memory
-
Multi-buffering can be very expensive (RAM utilization) if each buffer
must be sized for the largest possible problem
-
For example, one might want to set up a single buffer with enough capacity
to store just one problem representing the largest possible size, and some
number of smaller problems. The exact capacity would be determined by the
application designer based on a statistical characterization of the input
data flow.