问题标签 [tbb]

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 回答
1001 浏览

multithreading - 为什么英特尔 TBB 没有提供像 boost 这样的条件变量?

像条件信号机制一样,我希望一项任务等到收到某个信号或某个变量变为真。Boost lib 提供了这种机制,但 TBB 没有。

如何在 TBB 中实施此案例?

0 投票
1 回答
1168 浏览

c++ - 在 python 线程中调用 TBB 'parallel_for'

我有一个用于 python 的自定义 c++ 模块,它公开了一些函数,其中一些使用 TBB (tbb21_015oss) 来加速处理。

到目前为止,我在 Win32 环境中从 Python (2.6.2) 调用 TBB 加速函数时没有问题。

但是现在,当从 Python 线程(使用threading.Thread类创建)调用这样的函数时,我遇到了一个问题 - 在调用相同的函数时,从主 Python 线程工作正常。

调用该函数会导致应用程序崩溃,并显示以下消息:

TBB.dll 基地址是 0x03510000,根据 MSVC 2005 调试器,崩溃发生在 TBB 的“parallel_for.h”的代码中,显然是static void start_for::run( const Range& range, const Body& body, const Partitioner& partitioner )在执行时:

似乎有一个 NULL 指针被取消引用。

FWIW,TBB 使用延迟初始化机制进行初始化:

有没有办法使这项工作?例如,TBB 是否需要特定的初始化以允许从“自定义”线程调用它?

0 投票
2 回答
1551 浏览

c++ - ffmpeg(-mt) 和待定

我刚刚开始使用已合并 ffmpeg-mt 的最新版本的 ffmpeg。

但是,由于我的应用程序使用 TBB(英特尔线程构建块),具有新线程创建和同步的 ffmpeg-mt 实现不太合适,因为它可能会阻止我执行解码功能的 TBB 任务。它还会不必要地破坏缓存。

我在 pthread.c 中四处寻找,它似乎实现了 ffmpeg 用来启用多线程的接口。

我的问题是是否可以创建一个实现相同功能但使用 tbb 任务而不是显式线程的 tbb.c?

我对 C 没有经验,但我的猜测是不可能轻松地将 tbb(即 C++)编译成 ffmpeg。所以也许在运行时以某种方式覆盖 ffmpeg 函数指针会是要走的路吗?

对于将 TBB 实施到 ffmpeg 线程 api 中的任何建议或意见,我将不胜感激。

0 投票
5 回答
1858 浏览

c++ - 在 C++ 中使用多核处理大型顺序文件

我有一个大文件(比 RAM 大,不能一次读取整个文件),我需要逐行处理它(在 C++ 中)。我想使用多个内核,最好使用 Intel TBB或 Microsoft PPL。我宁愿避免预处理这个文件(比如把它分成 4 个部分等)。

我正在考虑使用 4 个迭代器,初始化为文件中的 (0, n/4, 2*n/4 3*n/4) 位置等。

这是一个很好的解决方案,是否有简单的方法来实现它?

或者,也许您知道一些支持高效、并发读取流的库?

更新

我做了测试。IO不是瓶颈,CPU才是。而且我有很多用于缓冲区的 RAM。

我需要解析记录(var 大小,每个大约 2000 字节,记录由唯一的 '\0' 字符分隔),验证它,进行一些计算,并将结果写入另一个文件

0 投票
3 回答
389 浏览

c++ - 处理与 tbb 顺序的大数据

我正在开发 c++ 应用程序来处理大量的报价数据,例如。(MSFT、AMZN 等)与 tbb。并且想知道我将如何构建它。我一直在研究parallel_for 和pipeline 以及concurrent_queue。

该过程基本上会解析数据,对其进行处理并输出到文件。解析和处理可以并行完成,但每个符号的输出应该是有序的。

我想使用无锁解决方案或最小锁定,但似乎我保留在 concurrent_queue 中以保持订单。

任何想法都会有所帮助

谢谢,大卫

0 投票
1 回答
1420 浏览

c++ - 关于 C++ 的 tbb::tbb_thread

我正在尝试在 C++ 中使用 TBB,并正在寻找关于 tbb_thread 的教程。任何人都可以提供有关 tbb_thread 的链接或教程,例如接口是什么以及如何使用它,tbb_thread 只不过是线程 API,但只有它是可移植的。

谢谢!

0 投票
2 回答
1370 浏览

c++ - 并发对象池提供 boost::shared_ptr

我想实现一个并发对象池,其中返回 shared_ptr 并且不需要将其显式返回到池中。我基本上在并发队列中为它分配了一个数组 push shared_ptrs 并实现了一个自定义删除器。似乎工作。我错过了什么吗?

0 投票
2 回答
272 浏览

c++ - 分叉线程的成本:如何确定最小向量大小来证明多线程的合理性

我正在尝试计算许多向量对的点积。每个点积可以使用多个线程,但由于数据依赖性,不应同时执行两个或多个点积。这里可以证明多线程的最小向量大小是多少?我意识到没有人能够给我一个准确的答案,所以我只是在寻找粗略的估计。

为问题添加更多上下文:我的程序需要计算很多点积,但一次只能计算一个点积。

我想重写点积以使其成为多线程。但是如果length太小,使用多个线程不会有任何好处。

编辑。谢谢各位的意见。看起来答案取决于太多因素——编译器、CPU、内存、线程库等。

0 投票
1 回答
1162 浏览

c++ - 如何在 Qt Creator 中使用 TBB

我正在尝试在 Qt Creator 中使用 TBB。我使用的是 Qt 4.7 和 TBB 3.0,下面是我在 .pro 中的设置。

我的示例代码非常简单:

但是程序以代码-1073741515退出

以前有人在 Qt Creator 中使用过 TBB 吗?

此致,

0 投票
3 回答
9698 浏览

c++ - Intel TBB 会在 AMD 处理器上工作吗?

可能重复:
AMD 多核编程

英特尔 TBB处理器是否依赖?它可以在 AMD 或 ARM 上工作(例如在 meeGo 下?)