SONOFA$#*&! I keep posting from the wrong email address and getting bounced ;-) Sorry to Henry & IOhannes for the dupes...
> In the context of threading/part. conv, I had an idea to compute ahead. > Most of the calculations for a given block can be computed ahead. Only the > most recent block of samples needs to be actually convolved, right away. > > Then, once you've summed the most recent block with the other partitions, > you'd start a thread to "compute ahead" the next cycle's partitions. If the > load is low enough, it would complete by the next cycle--of course, you'd > need to wait/join the background thread to make sure that it completes. that's what it does, give or take :-) 1) Blocks that are due sooner are prioritized, whenever a worker thread is signalled to wake up, it does the block next due. 2) The main thread pre-empts worker threads as soon as its called. Worker threads check constantly for a signal to suspend their current task, and hand the unfinished work back to the main thread. 3) If the main thread needs a block that hasn't been completed, it has to work on it -> usually this means you aren't going to make your schedule and the CPU is maxxed out. -Seth _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
