问题标签 [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 回答
392 浏览

c++ - tbb::concurrent_hash_map 抛出 SIGSEGV

我正在使用 mingw32 在 Windows 上运行一个使用 TBB 构建的小程序。它做了一个parallel_for。在 parallel_for 中,我的对象对 concurrent_hash_map 对象进行了更改。它开始运行,但后来当我尝试使用访问器时抛出一个 SIGSEGV。我不知道问题出在哪里。

我的对象:

pointMap_t 定义为:

有人可以阐明这个问题吗?我是新来的TBB。当 apply 方法调用 a->second 时抛出信号。

0 投票
3 回答
1540 浏览

c++ - 大数据处理推荐的 C++ 并行化库有哪些

当要处理的数据很大时,有人可以推荐在 C++ 中并行化的方法。我一直在阅读有关 openMP 和 Intel 用于 C++ 并行化的 TBB,但还没有尝试过它们。其中哪一个更适合并行数据处理?任何其他库/方法?

0 投票
1 回答
511 浏览

c++ - 带有任务调度程序的 IOCP(线程构建块)

我正在使用 TBB,并且想知道如何将 IOCP 与它的任务调度程序一起使用。有人做过吗?如果是这样,一些细节将不胜感激。

我对 IOCP 没有太多经验,但我想用它来向我的所有线程发送消息,并且在任务调度程序之外,你可以给它线程的句柄。但是在 TBB 中,我并不完全确定如何可靠地获取线程句柄。

谢谢!

0 投票
2 回答
1119 浏览

c++ - 退出 TBB 应用程序(任务调度程序)

我目前正在使用线程构建块来启动我最新的应用程序,使用任务调度程序。

如果我的一项任务遇到退出程序的原因:

1.) 我怎样才能告诉所有其他任务返回?

2.) 我如何在主线程中验证所有其他任务都已返回,以便我可以安全地退出应用程序?

谢谢!

0 投票
1 回答
2799 浏览

c++ - 英特尔 TBB 内存分配器的性能?

有一次我在我正在处理的项目(MMORPG 集群,linux 2.6,最近的 gcc,8 核 Intel Xeon)中尝试了 TBB 内存分配器,当收到更差的性能时我感到很惊讶。可能是什么原因?我预计至少不会有更好的性能(所有内核都已加载并且分配会定期发生)。任何人都可以分享自己的 TBB 经验,特别是它的内存分配器吗?tnx 为你的时间

0 投票
2 回答
1057 浏览

tbb - 我需要使用英特尔线程构建块的并行合并排序的最佳代码

我需要在 c++ 中使用英特尔线程构建块的并行归并排序的最佳代码

0 投票
1 回答
1539 浏览

optimization - 使用 TBB 使用少量指令(SSE2、SSE4)优化循环

我有一个简单的图像处理相关算法。简而言之,将浮点图像(平均值)减去 8 位图像,然后将结果保存到浮点图像(目标)

该函数主要由内部函数编写。

我曾尝试使用 TBB、parrallel_for 优化此功能,但我没有收到速度上的提升,而是受到了惩罚。

我应该怎么办 ?我应该使用更底层的方案,例如 TBB 任务来优化代码吗?

0 投票
3 回答
5740 浏览

c++ - 使用 malloc 代替 new,并在创建对象时调用复制构造函数

我想尝试一下 TBB 的可扩展分配器,但是当我不得不替换我的一些代码时感到很困惑。这是使用分配器完成分配的方式:

编辑:上面显示的不是使用可扩展分配器完成分配的方式。正如ymett 正确提到的,分配是这样完成的:

这很像使用 malloc:

这是我要替换的代码:

于是尝试了一个程序:

在这里我发现调用 malloc 不会实例化对象(我之前从未使用过 malloc )。所以在弄清楚如何传递*this给复制ctor之前,我想知道在使用malloc时如何实例化对象。

0 投票
1 回答
352 浏览

pthreads - 控制cnc/tbb中使用的线程数

我正在使用 intel cnc 库,它创建的线程数与内核数一样多。有没有办法控制用于该目的的线程数并可能控制它们的位置。

0 投票
1 回答
1062 浏览

c++ - tbb::concurrent_vector 返回错误的大小

我在TBB 论坛上问过这个问题,但我希望这里的人可能有一些额外的想法。我正在调试我们看到的一个问题,并注意到来自tbb::concurrent_vector.

底线是push_back()调用实际完成后,size()concurrent_vector并没有反映这一点。我已将其范围缩小为与容量相关,因为如果我捕获capacity()and size()size() == capacity() => true这使我相信size()返回的是容量而不是元素的实际数量。

我创建了一个简单的程序来复制这个问题,它最常在向量为空时触发。为简单起见,该程序只是在调用返回size() != 0后立即断言。push_back()我希望有人能告诉我这是预期的行为还是错误。

根据他们的参考手册

push_back() "将值的副本附加到向量的末尾。"

size() 返回“向量中的元素数。结果可能包括已分配但仍在通过并发调用任何增长方法 (5.6.3) 构建的元素。”

基于此,我认为至少size()应该体现一次回报。push_back()push_back()