tbb

    1热度

    1回答

    我正在尝试使用TBB concurrent_hash_map容器。在example之后,表明我需要3个类型参数(模板参数),键和值类型以及特征类型HashCompare。在this链接中,它表示HashCompare具有基本类型的默认值。 但是,当试图以两种方式(2或3个模板参数)中的任何一种方式使用它时,我收到一个关于“太少模板参数,期望4”的错误 - 实际上在挖掘代码时,唯一的定义在头文件中的

    0热度

    1回答

    我们有一个本地的.dll,使用线程构建块4.4来执行一些HPC类型的计算来管理并行性。这个.dll是从一个本身是多线程的.Net桌面程序调用的。我是tbb的新手,我想知道这种设置是否引发了一些问题。我使用tbb非常基本 - 我只是调用parallel_reduce来做一个特定的计算。我没有明确地设置tbb线程池;我依靠的是默认的初始化。 当我们进行系统测试时,我们看到一些间歇性进程挂起。当我们单独

    0热度

    1回答

    我正在学习使用OpenCV和TBB。我需要学习如何使用图像多处理,因为我有多核CPU,并且想为我的程序创建多种处理器支持。 我已阅读Intel®Technology纸杂志的一篇文章“英特尔®线程构建模块可扩展的多核软件的基础”(你可以在PDF这里找到它http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.71.8289&rep=rep1&

    2热度

    1回答

    我有一个函数,我需要用不同的数据参数运行两次。该功能需要很长时间才能运行,并且执行繁重的计算工作。 我该怎么做,用哪种TBB机制?或者甚至没有TBB,如果我可以用STL来做到这一点,请给我一个例子。 UPD: 例如,我有一个函数,它作为一个参数图像和做一些处理以它: int Compute(cv::Mat I) { /* computations */ return 0;

    0热度

    1回答

    如何确定TBB并行循环体中的线程ID? 基本上我需要的是每个线程副本的对象,所以我想我会有这些数组索引的线程ID。 我正在寻找可移植的TBB方式来做到这一点,而不是OS本机服务。

    0热度

    1回答

    我遇到了一个概念上直接的代码问题。我需要从循环内的向量收集一些迭代器,并且我想使用TBB功能来并行化这个循环。这里有一个最小(不)的工作例子: #include <tbb/tbb.h> #include <vector> int main() { std::vector<int> v{1,2,3,4,5,6,7,8}; tbb::concurrent_vector<d

    1热度

    1回答

    我查看了线程构建块(fractal.cpp)中包含的分形示例,并提出了此构造。奇怪 - 如果我只在函数中传递2个参数,这是有效的。如果我将它增加到三个参数,则无法编译。我怀疑它在最初的情况下也会失败 - 但事实并非如此。为什么它只有2个参数失败呢?或者我如何让它使用3个参数? #include <iostream> #include <ctime> #include <cstd

    0热度

    3回答

    我有一个函数pushMessage()。 void pushMessage(const char* msg, const int len) { for (int i=0;i<len;++i) queue.push(*(msg+i)) } 有问题的队列是一个tbb::concurrent_bounded_queue<char>,有一个真正的大尺寸(假设为无穷大)。 这个

    0热度

    1回答

    在我的代码我打电话parallel_for时两次: parallel_for(do some stuff); // I want this operation to finish first parallel_for(do some other stuff); // then I want to do this 1)请问这种方法创建物理线程两次?并让它变慢? 2)如果需要,最好的方法是什么将

    1热度

    1回答

    我们有一段代码,利用TBB产卵任务来执行一些处理,这是使用下面的TBB代码初始化TBB线程池完成的(相匹配的内核数量): tbb::task_scheduler_init(8); 然后我们想要产卵我们用下面的代码(其中MainTask的从TBB ::任务类派生的)每个任务: task = new (tbb::task::allocate_root()) MainTask(theAction,