If there was no DSP chain, or if the chain included all of the non-DSP, we might delay such determination until later... (but should we?)
if there was no dsp chain, it would be easier to utilize several audio threads (see jackdmp) ... caching would definitely be worse, though ...
But what if there was one dsp_chain per thread, and that when the dsp_add() phase happens, it adds to one of several dsp_chains depending on some kind of load-balancing metric?
i'm not sure, if you can use traditional dsp chains for multi-threaded systems. probably you'd be better off, if you implement some multi-threaded graph traversal, so that parallel nodes can be run on separate cores. for now, i see several problems though:
over an array
allow a thread scheduling, that's fine enough, maybe a linux-rt kernel with high-resolution timers and dyntick would be required for lowest latencies ...
tim
-- tim@klingt.org ICQ: 96771783 http://www.mokabar.tk
Your mind will answer most questions if you learn to relax and wait for the answer. William S. Burroughs