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