使用带有令人尴尬的平行部分的{tbb :: flow :: graph

时间:2017-04-06 19:21:52

标签: c++ tbb tbb-flow-graph

我很擅长使用tbb :: flow,并希望创建一个图表,其中有一部分令人尴尬地平行。因此,我们的想法是让一个消息进入一个执行某些预处理的节点,然后可以制定一组可以并行执行的任务。然后数据在multifunction_node中进行聚合,该函数将结果发送到几个地方。

                       --------------                 ------
                      |parallel nodes|               |Output|
        -----------  /|--------------|\  ---------- / ------
msg -> |pre-process| -|parallel nodes|- |aggregator|
        -----------  \|--------------|/  ---------- \ ------
                      |parallel nodes|               |Output|
                       --------------                 ------

现在聚合器无法发送它的工作直到工作完成。因此需要跟踪预期的答案数量。我可以使用tbb :: flow :: graph执行此操作,还是应该创建一个嵌入并行的函数节点?其他想法或选择?

如果我能用tbb :: flow做什么节点类型和排队策略?

另一种思考方式是使用MapReduce进行一些预处理,并将结果以略微不同的形式发送到几个不同的地方。

0 个答案:

没有答案