in reply to "Swarming"
It seems to be particulary well suited for problems where the processing can be split into more or less independent sections. Example: most fractals can be rendered partially - each process takes on a "tile" and calculate only that part.
Recently, I've been thinking about audio processing - where parallel audio streams can be split out:
Signals go in from the top and exit at the bottom (usually in small batches). Each column can in principle be taken on by a different process(or).CPU 1 CPU 2 CPU 3 O source one O source two | | +-----------+ | | | | O effect 1 O effect 2 O effect 3 | | | | +--------------+ O effect 4 O effect 5 | | | | O output 1 O output 2
|
|---|