Если я заменю одноядерный процессор на двухъядерный, увеличится ли пропускная способность в два раза ? Если нет, почему пропускная способность не удваивается ?
Переход с одного ядра на двухъядерное-удвоится ли пропускная способность?
5 ответов
Это определенно не увеличится в два раза; это было бы совершенно эффективным увеличением пропускной способности. Это невозможно, потому что всегда есть накладные расходы. Сколько пользы вы получите, будет зависеть от нескольких факторов:
Он может не увеличиваться, если операционная система или программы, которые вы запускаете на нем, не оборудованы для планирования процессов на разных ядрах.
Это может только увеличить немного, если задачи, которые вы делаете не очень parallelizable (например, они сильно зависят от ввода / вывода или других медленных операций без процессора).
Это может увеличиться на много, если задачи "неловко параллельны", например, длинные запуски идентичных вычислений с плавающей запятой или факторизация простых чисел.
Это может сделать вещи хуже если есть слишком много переключения контекста из-за зависимостей между процессами, или если вам нужно синхронизировать все через процессы.
см.http://en.wikipedia.org/wiki/Amdahl%27s_law для хорошего описания о том, почему это не удвоит вашу пропускную способность, и как проанализировать то, что улучшение на самом деле будет.
ваша производительность будет лучше, если код написан воспользоваться двумя процессорами. Как правило, необходимо убедиться, что код использует 2 или более потоков выполнения для выполнения задания.
только в некоторых случаях вы увидите, что производительность фактически удвоилась, так как для выполнения нескольких потоков требуется некоторая бухгалтерия.
только для вещей, которые связаны с процессором. Вещи, которые имеют пропускную способность памяти или ввода/вывода, вероятно, не исправляется.
Это зависит от того, какой код вы используете. Если вы привязаны к вычислительным ресурсам, а в коде используются потоки, то производительность может увеличиться в 2 раза (при той же тактовой частоте). Если вы привязаны к памяти ввода-вывода или однопоточный, то вы можете не увидеть никакого улучшения на всех (или даже ухудшение производительности).
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]