Как Intel TBB выбирает количество потоков для параллельного раздела?
Есть ли какая-то спецификация?
Ответ 1
Начиная с версии TBB версии 2.2 планировщик задач будет автоматически инициализирован и во время выполнения позаботится о количестве используемых потоков, если вы вручную захотите изменить этот номер, вы можете использовать один из следующих способов:
При создании планировщика вы можете указать количество потоков как
В этом случае планировщик tbb создает столько потоков, сколько ваших ядер процессора
Ответ 2
Предоставление TBB решения о количестве потоков в пуле является рекомендуемым параметром - он обычно создает столько рабочих потоков, сколько есть логических процессоров на машине - см. Ссылка на класс для tbb:: task_scheduler_init.
Нелегко узнать, сколько рабочих потоков существует или выполняет задачи в любой момент времени - это преднамеренный выбор дизайна. От Курс параллельного программирования Intel TBB:
Как узнать, сколько потоков доступно?
Не спрашивайте!
Даже планировщик не знает, сколько потоков действительно доступны
На машине могут быть другие процессы.
Рутина может быть вложена внутри других параллельных процедур
Ответ 3
Documetation говорит просто "зависит от конфигурации оборудования". Возможно, доступно всего несколько ядер процессора.