Next: 1.3. Evaluation Criteria

Back: 1.1. Problem Description

Up: 1. The Problem

1.2. Where is the parallelism in sample generation?

Sample generation is unlike other problems that are used to benchmark programming models. While some sample generators are trivially parallelized, most can only be parallelized with the assistance of a powerful programming model. The potential for dynamica lly changing structure during real-time sample generation is another challenge. Parallelism in sample generation falls into the following categories:

Data Parallelism Parallel computer manufacturers are fond of problems which are embarrassingly parallel, such as ray tracing, Mandelbrot set displays, and fluid flow simulation. The sample generation counterparts to these problems are systems which rely entirely on a sin gle synthesis algorithm. Composers produce entire pieces using linear predictive coding, additive synthesis, or granular synthesis. These techniques apply one control t hread to many different data sets, and are prime examples of data parallelism. Most composers, however, employ a variety of synthesis techniques within a given piece. In this more general context we can list samples, unit generators, notes, and timbres as potential candidates for data parallelism. Most of these candidates must be rejected because of interdependencies. Control Parallelism Sample generation has vast potential for control parallelism. Since the sounds of notes are independent, each note can accommodate its own thread. Within each note is a tree of unit generators, each of which could correspond to a control thread. Unit generators with closed-form algorithms can service many requests at once. Thus, the number of potential control threads is p roportional to the product of the number of notes, the number of unit generators per note, and the number of control threads per note -- greatly exceeding the number of processors in todays multiprocessors. In this paper I will discuss how four parallel p rogramming models could solve the sample generation problem and what kinds of concurrency they could exploit. Before beginning the analysis I will specify how the models will be evaluated.


[Bill's Home Page] Comments to walker@shout.net