【发布时间】:2012-02-24 02:52:01
【问题描述】:
我正在使用英特尔 TBB 来加速图形域中的问题。 我想分析我的方法的可扩展性。
要找到我想要运行相同算法的可扩展性 使用 1、2、3 和 4 个 CPU 内核。
有没有办法告诉 TBB 使用 2 和 3 核 在 4 核 CPU 上运行测试。
【问题讨论】:
我正在使用英特尔 TBB 来加速图形域中的问题。 我想分析我的方法的可扩展性。
要找到我想要运行相同算法的可扩展性 使用 1、2、3 和 4 个 CPU 内核。
有没有办法告诉 TBB 使用 2 和 3 核 在 4 核 CPU 上运行测试。
【问题讨论】:
是的,有办法做到这一点:
task_scheduler_init 类可让您做到这一点。您必须将要使用的线程数传递给类的构造函数。您还必须确保您的所有 TBB 代码在实例构建之后和销毁之前运行。
通常,在主函数中将其声明为变量就足够了,如下所示:
int main()
{
tbb::task_scheduler_init init(3);//three threads
do_the_work();
}
【讨论】: