4

Если я заменю одноядерный процессор двухъядерным процессором, увеличит ли он пропускную способность в два раза? Если нет, то почему пропускная способность не увеличивается вдвое?

5 ответов5

9

Это определенно не увеличится в два раза; это было бы совершенно эффективным увеличением пропускной способности. Это невозможно, так как всегда есть некоторые накладные расходы. Сколько выгоды вы получите, будет зависеть от нескольких факторов:

  • Он может вообще не увеличиться, если ОС или программы, на которых вы работаете, не оборудованы для планирования процессов на разных ядрах.

  • Он может только немного увеличиться, если задачи, которые вы выполняете, не очень распараллеливаются (например, они сильно зависят от операций ввода-вывода или других медленных операций без использования ЦП).

  • Он может значительно увеличиться, если задачи "смущающе параллельны", например, длинные прогоны идентичных вычислений с плавающей запятой или факторизации простых чисел.

  • Это может ухудшить ситуацию, если слишком много переключений контекста из-за зависимостей между процессами или если вам нужно синхронизировать вещи между процессами.

5

См. Http://en.wikipedia.org/wiki/Amdahl%27s_law для хорошего описания того, почему это не удвоит вашу пропускную способность, и как проанализировать, каким будет улучшение на самом деле.

0

Ваша пропускная способность будет только лучше, если ваш код написан с использованием двух процессоров. Как правило, вам нужно убедиться, что ваш код использует 2 или более потоков выполнения для выполнения задания.

Только в некоторых случаях вы увидите, что производительность фактически удвоится, так как для ведения нескольких потоков необходимо вести бухгалтерский учет.

0

Только для вещей, которые связаны с процессором. Вещи, которые имеют пропускную способность памяти или связаны с вводом / выводом, вероятно, не улучшатся вообще.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .