Допустим, у нас есть два процессора: один - четырехъядерный 3,2 ГГц с 4 ядрами, а у нас - двухъядерный 3,2 ГГц с 2 ядрами с 2 потоками в каждом ядре (Hyper-Threading). Мое предположение как программиста будет таким: 4 ядра 4 потока должны работать быстрее, чем 2 ядра 4 потока, так как второму ЦП необходимо переключаться между потоками, чтобы эмулировать 4 ядра, тогда как первому не нужно выполнять такое переключение, как каждое ядро можно выполнять самостоятельно и индивидуально.
Я хочу подтвердить, что мое предположение верно, если нет, пожалуйста, объясните, почему одно лучше, чем другое.
Ответы:
Я верю, что это правда - поскольку гиперпоточность разделяет некоторые элементы, в частности основные ресурсы выполнения, вы сможете запускать 4 полных потока одновременно, вместо того, чтобы ожидать освобождения этих ресурсов.
Суть HT в том, чтобы получить лучшую производительность с меньшим использованием площади кристалла - ваш четырехъядерный процессор обычно будет большим чипом - скажем, почти вдвое больше, чем двухъядерный чип без HT, тогда как двухъядерный чип HT будет примерно На 5% больше. При правильной рабочей нагрузке четырехъядерное ядро может видеть скорость, в два раза превышающую скорость (хотя это маловероятно, поскольку в большинстве случаев вы, вероятно, не будете использовать 4 потока на полную мощность), тогда как двухъядерный процессор HT будет работать на 15-30% лучше производительность ( согласно википедии ), чем двухъядерный процессор без HT.
Чем больше актуальных ядер, тем лучше.
источник
Из Википедии :
Если у вас есть четырехъядерная система, то 4 потока могут работать на одном ядре. Если у вас есть двухъядерная система Hyper-Threading, то 2 потока могут работать каждый на полном ядре, но с 4 потоками потоки 1 и 2 будут разделять одно ядро, а потоки 3 и 4 - другое ядро. Гиперпоточность позволяет двум потокам работать параллельно (только), если они не используют одни и те же ресурсы процессора. Таким образом, в идеальном случае вы можете получить высокую степень распараллеливания, но, как утверждает Википедия, прирост производительности составляет не 100%, а только 15-30%.
источник
При гиперпоточности - время простоя ядра для задачи A (упомянутое ядро могло бы отправить запрос на диск для данных, подождать, пока диск выполнит поиск области пластин, прочитать данные и отправить их обратно в ядро ) используется для выполнения другой задачи. Таким образом, когда задача B обслуживается так называемым потоком 2, и если запрос на выборку данных, заданный задачей A, завершен, задача A все еще должна ждать, пока ядро завершит поток 2. Оба потока не могут выполняться одновременно в одном ядре. Опять же, HT использует несоответствие скорости между ядром / процессором и различными подсистемами на вашем компьютере. HT использует ваши ядра на полную мощность ... это похоже на полную загрузку. Таким образом, если вы откроете четыре вкладки в своем браузере, каждая вкладка будет иметь ядро в четырехъядерной системе, а две вкладки должны будут совместно использовать ядро в двухъядерной системе.
источник