
Marcus Tomlinson wrote:
Probably not (regardless of the length of the parallel branches). Is this something that DSPatch would guarantee, even when the branches have different numbers of components? That would be interesting.
Yes, DSPatch does this. This is what I refer to as branch synchronization on the feature list. It is that fact that DSPatch can guarantee this whilst maintaining high performance via parallel processing that makes it uniquely powerful I think.
That's fascinating, but I now realise that such a guarantee could also be provided with something like the FastFlow library. Or rather, you can't guarantee that the results from the same diverged datum will /arrive/ at the same time, but you can construct the converging component such that it will /take/ them at the same time. The end result is the same. This makes me a bit sceptical about the high performance part. FastFlow can synchronise the converging point without requiring that the components within the branches operate in lock-step. Surely that allows for more fluid concurrency? Perhaps a little benchmark would be good. -Julian