Skip to content

What's_the_difference_between_a_ReqMux_and_a_ReqSeq_node?

Gijs Molenaar edited this page Feb 12, 2014 · 1 revision

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.

Clone this wiki locally