Previous: Implementation Up: Kiwi : A Parallel System for Software Sound Synthesis Next: Conclusion

Performance

The Kiwi Scheduler performs well for a variety of musical textures. This is because the parallelism is limited only by the number of different notes within a grain. Whether they overlap or not is immaterial. Thus, even monophonic passages are parallelized whenever multiple notes fall in the same grain. If there are more notes in a grain than processors, the Scheduler waits to assign the additional Tasks. More notes than processors does not cause contention, but simply more work.

Figure 3.1. Kiwi performance.

The obvious way to measure Kiwi's performance is to measure the effect of adding more processors on the total running time. Optimally, the running time for a given piece using processors should be the running time for using one processor divided by . Kiwi was run with three different score files using different numbers of processors. The total running time was divided by the duration of the sound generated, yielding a performance ratio. Figure 3.1 gives performance ratios for various numbers of processors.

Although most of the results are encouraging, Kiwi performed badly on the third test. The running time approached its minimum at a total of four processors; even quadrupling that number to sixteen processors made no significant difference. The third test score was generated by a simple fractal algorithm. Durations in the resulting score range from several hundredths of a second to several dozen seconds. The plateau in Kiwi's performance reflects the fact that not all Tasks represent equal work. Each grain in the third test score has at least one Task which represents a note lasting the entire grain, requiring much computation, and many other Tasks for short notes which require little computation. The overall speed is governed by the speed of these computationally intensive Tasks. According to the ``recurrence relation'' assumption discussed in Section 1.5, these long tasks cannot be parallelized, since the samples for a particular note must be computed strictly in sequence.

Figure 3.2. Parallel reverberation performance

The performance of the parallel reverberator is illustrated by Figure 3.2. The reverberator's performance does not depend on the music texture, since it operates on the sample file generated by Kiwi. The only factors governing its performance are the complexity of the reverberation algorithm and the number of processors used. Thus, its performance is very nearly linear in the number of processors.


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