I assume that the difference between a ReqMux and a ReqSeq is that the ReqMux spawns all the requests to children in parallel and the ReqSeq does things sequentially?

You are almost right. To be precise, a ReqMux is allowed to call its children in parallel, while a ReqSeq guarantees a strict sequence. In fact, any node with multiple children (except of course the ReqSeq) can be made a parallelization point by giving it the option mt_polling=True, but this is true by default only for VisDataMux, !Solver and DataCollect (because these almost always have many parallel children). I do not enable it on all nodes by default because too many parallel threads would be counterproductive.

So if you identify a few strategic nodes with many children in your tree, you can enable parallelization there just by saying mt_polling=True, without needing to add a ReqMux or anything.

What's the difference between a ReqMux and a ReqSeq node? (last edited 2007-03-06 20:55:09 by TonyWillis)