Двухъядерная гиперпоточность: что мне делать: 4 потока или 3 или 2?

Если вы одновременно создаете несколько потоков (или процессов), лучше ли создать столько, сколько физических процессоров или количество логических процессоров , если задача связана с процессором? Или лучше сделать что-то среднее (скажем, 3 потока)?

Зависит ли производительность от типа выполняемых инструкций (скажем, будет ли доступ к нелокальной памяти сильно отличаться от обращений к кешу)? Если да, то в каких случаях лучше использовать преимущества гиперпоточности?


Обновление:

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

15
задан Mehrdad 22 January 2011 в 23:19
поделиться