Previous: New Technologies for Software Synthesis Up: Introduction Next: Parallelizing Software Synthesis
Different computer architectures suggest different methods of parallelizing software synthesis. Three particular architectures imply the following strategies for parallelization. Supercomputers like the Cray X-MP gain their speed advantage from a process called pipelining. If a program consists of the same operation performed many times with different data (like the multiplications and divisions arising from inverting a matrix, for example), the Cray can perform these operations consecutively in very rapid succession. Rahn[10] shows how sample generation algorithms are amenable to this kind of computation.
The Intel Hypercube is a message-passing multiprocessor. Its processors are linked together with serial lines which allow messages to pass between any pair of processors. Within this architecture, each processor could be assigned one component in the synthesis algorithm. Samples would flow between the processors just as signals traveled through patch cords in the early analog synthesizers.
A third computer architecture is the shared-memory multiprocessor. Systems like the Encore Multimax connect several processors to a single main memory. The processors communicate by reading and writing their shared memory. The techniques described above for parallelizing sound synthesis under pipeline and message-passing architectures are entirely dependent on the details of synthesis algorithms. As described below, the shared-memory architecture allows software synthesis to be parallelized at the note level. Unlike message-passing machines, shared-memory machines are easily programmed. Shared-memory machines are also just as powerful as message passers. For these reasons, Kiwi was implemented on a shared-memory multiprocessor.
Comments to walker@shout.net