1

Процессор Intel Pentium E5700 (2M Cache, 3,00 ГГц, 800 МГц FSB) не имеет гиперпоточности, но имеет 2 ядра, поэтому я предполагаю, что он имеет 2 потока

Теперь, если я напишу программу обработки больших чисел, которая одновременно запускает 4 потока, как этот процессор E5700 будет обрабатывать 4 потока одновременно, используя свои 2 ядра и 2 потока, по сравнению с процессором, подобным процессору Intel Core i3-3110M (кэш-память 3M, 2,40 ГГц) с гиперпоточностью, которая имеет 2 ядра, но 4 потока?

Будет ли E5700 медленнее и будет иметь узкие места, чем i3 3110m с 2 ядрами, но 4 потоками с гиперпоточностью, или все будет гладко и быстро на обоих процессорах, не замечая ничего другого?

Кроме того, может ли программа, написанная с четырьмя или более потоками, эффективно работать на 2-ядерном 2-потоковом процессоре или будут ошибки или замедления?

#

хорошо, спасибо, что ответили на вопросы позже, я посетил этот сайт, и более короткий счет лучше для процессоров

http://www.cpu-world.com/benchmarks/socket_1155_multi.html

Тест wPrime v1.55 (32M) Тест wPrime измеряет время, необходимое для вычисления квадратных корней чисел от 1 до 33554431. Программа использует метод Ньютона для оценки функций.

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

Особенности процессора, которые мало влияют на результаты: скорость памяти, размер внутренних кешей.

Номер детали Чем короче, тем лучше Результат

Процессор Intel® Core ™ i7-3770K (кэш-память 8M, до 3,90 ГГц) 4 ядра 8 потоков да HT

6,87

Процессор Intel® Core ™ i7-2600k (кэш-память 8M, до 3,80 ГГц) 4 ядра 8 потоков да HT

7,57

Процессор Intel® Core ™ i5-2500K (кэш-память 6M, до 3,70 ГГц) 4 ядра 4 потока без HT
9,8

Процессор Intel® Core ™ i3-2310 (кэш-память 3M, 2,10 ГГц), 2 ядра, 2 потока, HT
15,37

Intel® G860 (кэш-память 3M, 3,00 ГГц) 2 ядра, 2 потока без HT
22,09

#

2 ответа2

7

Для некоторых базовых знаний о многопоточности, ядрах процессора и гиперпоточности вы можете прочитать вопрос « Что такое потоки и что они делают в процессоре?».


Теперь, если я напишу программу обработки больших чисел, которая одновременно запускает 4 потока, как этот процессор E5700 будет обрабатывать 4 потока одновременно, используя свои 2 ядра и 2 потока

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

По сравнению с процессором, подобным процессору Intel® Core ™ i3-3110M (кэш-память 3M, 2,40 ГГц) с гиперпоточностью, которая имеет 2 ядра, но 4 потока

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


Наконец, вы сравниваете E5700 и i3 3110m. Это две разные (не полностью, но разные) архитектуры процессоров; они имеют разные особенности и неодинаковую длину трубопровода 1 2. Здесь нужно рассмотреть больше, чем просто число процессорных ядер, но для целей этого обсуждения вы можете игнорировать их и просто прочитать то, что я написал выше.

  1. Дж. Де Гелас, «Последствия бульдозера: погружение еще глубже» AnandTech, стр.2.
  2. Руководства для разработчиков программного обеспечения Intel® 64 и IA-32, Vol. 1, гл. 2, Раздел 2.3 - Микроархитектура Intel® Core ™
0

Другие ответы верны, что для задач с привязкой к вычислениям, работающих с 4 потоками на 2 ядрах, будет медленнее, чем 2 потока. При планировании потоков возникают накладные расходы, а также переключение контекста в процессоре при переключении состояния регистра. Одна вещь, которая, кажется, не указана, однако, состоит в том, что это не выполняется, если в этих потоках есть блокировка ввода / вывода. В таком случае вполне вероятно, что наличие большего количества потоков, чем ядер, будет работать быстрее, поскольку потоки будут блокировать медленные операции ввода-вывода и позволят другим частям кода, связанным с процессором, продолжать работать.

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