我已经使用英特尔出色的 TBB 流图库成功地对应用程序进行了原型设计。它似乎工作得很好,但现在我需要将代码重构为生产就绪版本。
以前,我曾为这个特定领域使用过一些更大、更“过度开发”的框架(这项工作是在图像处理方面,以前的应用程序使用的是 ITK/VTK)。然而,对于这个应用程序,我正在尝试采用较低级别且更集中的方法。
目前,我只是在组装我的整个图表,main()
这显然是不可持续的。我想允许管道迭代运行,以便我可以从每个阶段获取输出数据并将其显示用于调试/分析目的。
到目前为止,我的想法是将应用程序的每个逻辑“阶段”抽象为一个类,该类接受 a&tbb::flow::graph
作为构造函数参数并在内部存储对其控制的图形节点的引用。我可以让包装器类tbb::flow::broadcast_node
在输出端分配一个附加值,然后再分配一个异步节点来触发事件。
这是一个明智的设计理念吗?一般来说,其他人是如何将 TBB 流程图概念集成到他们的应用程序结构中的?对于 TBB 库的这个特定部分,示例和文档非常少。