使用恰当数量的逻辑处理器

时间:2012-03-03 13:35:07

标签: c++ windows intel tbb

有没有办法(使用来自intel的tbb)指定并行循环使用的逻辑处理器数量?就像我希望能够检测多个逻辑处理器并指定我想用于此任务的数量。

1 个答案:

答案 0 :(得分:2)

我认为你的意思是线程,而不是处理器。

int main()
{
    tbb::task_scheduler_init init(num_threads);
    ...
}

虽然我仍然认为让TBB自动处理它会更好。

编辑:基于评论,你想要的是:

int main()
{
    struct tbb_set_affinity : public tbb::task_scheduler_observer
    {
         tbb_set_affinity(){observe(true);}
         void on_scheduler_entry(bool is_worker)
         {
            SetThreadAffinityMask(...);
         }
   } tbb_set_affinity;

   tbb::task_scheduler_init init(num_processors);
   ...
}