0

目前我使用 Intels TBB 使用 tbb::parallel_for 并行化一些工作。似乎线程的数量和启动的时间点是由后台的TBB控制的。浏览用户指南和参考文档,我找不到任何关于是否有任何控制选项或模块的提示。我希望能够修改线程的数量,并在可能的情况下决定何时创建线程池。

编辑: 为什么控制线程数很好:该程序设计为在我们的集群系统和我们的用户的系统上运行。由于处理时间并不总是对一个用户独占,这是一个很好的功能

问题:你能解释一下为什么你需要更多地控制线程何时启动吗?回答:通过 TBB 的多线程在很多地方都使用过,由于有些人担心“开销”,我的任务是找出一种只启动线程一次的方法。

4

1 回答 1

0

这可能会有所帮助 - 我从未真正使用过 TBB,但这个答案似乎就是您要问的。

“创建调度程序时,可以将线程数指定为

tbb::task_scheduler_init init(nthread);

否则你可以使用

tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic);

在这种情况下,tbb 调度程序会创建与 CPU 内核一样多的线程。”

于 2014-03-16T07:13:18.143 回答