Если вы одновременно создаете несколько потоков (или процессов), лучше ли создать столько, сколько физических процессоров или количество логических процессоров , если задача связана с процессором? Или лучше сделать что-то среднее (скажем, 3 потока)?
Зависит ли производительность от типа выполняемых инструкций (скажем, будет ли доступ к нелокальной памяти сильно отличаться от обращений к кешу)? Если да, то в каких случаях лучше использовать преимущества гиперпоточности?
Обновление:
Я спрашиваю, почему Я помню, как где-то читал, что если у вас столько задач, сколько виртуальных процессоров, задачи на одном физическом ядре могут иногда истощать некоторые ресурсы ЦП и мешать друг другу получать столько ресурсов, сколько необходимо, что может снизить производительность. Вот почему мне интересно, будет ли хорошей идеей иметь столько потоков, сколько виртуальных ядер.