问题标签 [tbb-flow-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
235 浏览

tbb - 如何实现 TBB input_node?

显然,在 tbb::flow 中,source_node 已被弃用,从 2021.1 版本开始,我们只应该使用 input_node。不过,简单地替换类似乎不起作用。我在 2020.3 版本中有一个使用 source_node 的工作代码。如果我尝试使用 input_node 我会收到一条神秘的消息。

似乎 input_node 期望 Body 实现一个采用 flow_control 对象的函数。是这样吗?否则这里有什么问题?

我似乎无法使用 input_body 运行任何示例代码。

0 投票
0 回答
379 浏览

c++ - 升级后未找到 Intel TBB libtbb.so 文件

我有一个使用旧版本 TBB 运行的项目(流程图 input_node 未声明),我不知道如何更新它或它是如何安装的......在绝望的那一刻我发现:https://github .com/wjakob/tbb所以我用头脑清除了 tbb,dpkg --purge libtbb-dev然后按照该 git repo 中的说明进行操作。

现在,当我运行 google 测试以检查一切是否正常时,前几个仅使用 tbb 管道的测试可以正常工作。对于以下使用 tbb 流图构建正确的测试,运行时我收到此错误消息:

我不是这个领域的专家,试过谷歌搜索,但从来没有找到我理解的任何东西,他们都提到了链接问题,但不应该在构建时检测到吗?

我的 cmake 文件非常简单:

知道出了什么问题,我该如何解决?

在 Ubuntu 18.04.5 cmake 上运行

0 投票
1 回答
111 浏览

c++ - C ++ tbb流程图,multifunction_node给出不完整的类型错误

据我了解,当没有完整的类型规范的前向声明时会发生不完整的类型错误,然后实例化该类型,因为编译器无法判断这种类型的大小。就我而言,我不明白这段代码是如何产生这样的问题的。为简单起见,我删除了不相关的部分。

编译器在 lambda 表达式处给出不完整类型的错误。确切的错误说:

/usr/local/include/tbb/flow_graph.h:1568:7: error: incomplete type ‘std::tuple_size<FilterOnNode::PartialResult*>’ used in nested name specifier class multifunction_node

PartialResult 类型不是已经完全指定了吗?试着把它从课堂上拿出来,但仍然是同样的问题。

0 投票
1 回答
120 浏览

c++ - _flow_graph_cache_impl.h 中的 tbb 流程图分段错误

我正在尝试使用流程图运行一些代码,它编译成功,但是在运行时它在调用输入节点后在 tbb 流程图库文件中给出了分段错误,我似乎无法找到它的原因. 我的输入节点是这样的:

该节点连接到类型的节点tbb::flow::multifunction_node<InputResult, std::tuple<InputResult>>,连接由 完成tbb::flow::make_edge(src, firstNodeFilter);。InputResult 是一个指针,我已经检查并确认它被设置为一个有效值而不是空值。

tbb::flow::interface11::internal::broadcast_cache由函数调用try_put_task的函数抛出异常task *new_task = (*i)->try_put_task(t);tbb::flow::interface11::input_nodeapply_body_bypasstask *last_task = my_successors.try_put_task(v);

- - - - - 编辑 - - - - - -

抱歉,关于 input_node 实现的不清楚。我已经为它实现了这个代码。

当我尝试更改 InputNode 以匹配InputNodeBody时,在 _flow_graph_body_impl.h 中出现编译器错误:

并说从 tbb::flowcontrol& 到 InputResult& 没有已知的演员表

-------------edit 2 ------------ 以下包含更多我的代码,删除了一些模板可读性的参数。此代码是在升级 oneTBB 之后。

文件 1:

文件 2:

代码在注释中文件 1 中指示的位置中断。

0 投票
0 回答
67 浏览

c++ - TBB 动态流图

我试图想出一种方法来定义在运行时定义的流程图(想想 TBB)。目前,我们在编译时使用 TBB 来定义节点和节点之间的边。这有点烦人,因为我们有些人想要添加处理步骤并修改处理链,而无需重新编译整个应用程序,或者除了如何添加处理内核之外,真的不需要了解有关应用程序的任何信息。在一个理想的世界里,我会有某种使用 dll 的插件框架。我们已经构建了软件架构,因此 TBB 中的每个节点都代表一个处理步骤,因此如果您愿意重新编译,添加内容非常容易。

作为第一步,我试图想出一种在 YAML 中定义 TBB 流图的方法,但这是一个巨大的兔子洞。在我全力以赴从头开始实施之前,有谁知道这样的事情是否存在?这将是一个有趣的项目,但重复工作没有意义。