2

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

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

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

如果我可以用 tbb::flow 做到这一点,节点类型和排队策略是什么?

另一种思考方式是它是一种 MapReduce 类型的操作,带有一点预处理,结果以稍微不同的形式发送到几个不同的地方。

4

0 回答 0