Подтвердить что ты не робот

Количество потоков, используемых Intel TBB

Как Intel TBB выбирает количество потоков для параллельного раздела?

Есть ли какая-то спецификация?

4b9b3361

Ответ 1

Начиная с версии TBB версии 2.2 планировщик задач будет автоматически инициализирован и во время выполнения позаботится о количестве используемых потоков, если вы вручную захотите изменить этот номер, вы можете использовать один из следующих способов:

При создании планировщика вы можете указать количество потоков как

tbb::task_scheduler_init init(nthread);

иначе вы можете использовать

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

В этом случае планировщик tbb создает столько потоков, сколько ваших ядер процессора

Ответ 2

Предоставление TBB решения о количестве потоков в пуле является рекомендуемым параметром - он обычно создает столько рабочих потоков, сколько есть логических процессоров на машине - см. Ссылка на класс для tbb:: task_scheduler_init.

Нелегко узнать, сколько рабочих потоков существует или выполняет задачи в любой момент времени - это преднамеренный выбор дизайна. От Курс параллельного программирования Intel TBB:

Как узнать, сколько потоков доступно?

Не спрашивайте!

  • Даже планировщик не знает, сколько потоков действительно доступны
  • На машине могут быть другие процессы.
  • Рутина может быть вложена внутри других параллельных процедур

Ответ 3

Documetation говорит просто "зависит от конфигурации оборудования". Возможно, доступно всего несколько ядер процессора.