> One of the limitations with the Pd DSP chain *is* it's style of > modularity. The stream is broken down into indivisible blocks. The > tree is parallel at the top, but as you go down the tree, it becomes > more and more serial. There would be a bottleneck, where the parallel > processes aren't used. > In order to get a generic speedup, those "indivisible blocks" have to > be divisible. And this is not always possible--
afaict, it is just a problem of scheduling ... scheduling a serialized (topologically sorted) dsp graph is very easy and very efficient ... just iterate over an array (nova) or a memory region (pd) ... it is actually scheduled in advance ... a parallel dsp graph scheduler would introduce some dispatching code between the nodes ... probably we need to maintain ready/waiting queues that we have to access in order to make our scheduling decisions ... which is way more expensive than just going to the next node in a dsp chain ... so for small "parallel" graphs like: osc~ line~ | / | / *~ | dac~ the parallel execution of osc~ and line~ is probably more expensive than running osc~->line~->*~->dac~ so i don't think, it is a problem of splitting up indivisible blocks, but rather to combine these indivisible blocks to reasonably large serial chunks ... > You'd have to start almost from scratch to design an > ideal parallelized Pd. yes, probably :) tim -- [EMAIL PROTECTED] ICQ: 96771783 http://tim.klingt.org Nothing exists until or unless it is observed. An artist is making something exist by observing it. And his hope for other people is that they will also make it exist by observing it. I call it 'creative observation.' Creative viewing. William S. Burroughs
signature.asc
Description: This is a digitally signed message part
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
