Используя только правильное количество логических процессоров - PullRequest
0 голосов
/ 03 марта 2012

Есть ли способ, которым я могу (используя tbb от intel) указать количество логических процессоров, используемых их параллельными циклами? Как, например, я хотел бы иметь возможность определять количество логических процессоров и указывать, сколько из них я хотел бы использовать для этой задачи.

1 Ответ

2 голосов
/ 03 марта 2012

Я предполагаю, что вы имеете в виду потоки, а не процессоры.

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);
   ...
}
...