2016-10-06 2 views
1

Я немного смущен количеством ядер на моем Mac. Я не совсем понимаю разницу между процессорами, ядрами и потоками. Если я проверю «Об этом Mac», я вижу 1 процессор, 2 ядра. Но я работаю в Node.js, и если я проверю os.cpus().length, он вернется 4. Почему эти числа разные? Это просто потому, что у каждого ядра есть 2 потока?Сколько ядер на этой машине?

+0

hyperthreading. у вас может быть одно физическое ядро, но из-за маркетинговых гуру Intel это одно ядро ​​ПРИНИМАЕТСЯ как два для ОС –

+0

processor = физический чип. core = дискретный блок выполнения внутри этого чипа. большинство чипов i-серии Intel являются либо двух-, либо четырехъядерными. то есть гиперпоточность, которая заставляет ядро ​​проявляться в виде двух отдельных ядер, поэтому гиперпотоковый процессор эффективно выступает в два раза больше, поэтому ваш средний ядро ​​i7 cpu покажет 8 ядер, хотя есть только 4 реальных физических, внутри одного пакета чипов , –

ответ

4

Нити - это элементы программного обеспечения, а не аппаратные. Здесь они не актуальны. Ваш Mac имеет два ядра и поддерживает гиперпоточность. Последнее показывает, что у вас в два раза больше ядер, чем у вас на самом деле.

+1

Итак, чтобы уточнить - 1 процессор (intel i5), 2 ядра в этом процессоре, каждая с гиперпотоком, что позволяет процессору эффективно функционировать с 4 ядрами? Итак, «гиперпоточность» - это спецификация оборудования, а «threading» - это абстракция программного обеспечения? – cweber105

+1

Это очень правильно. «Hyper-threading» - это название торговой марки Intel, позволяющее одновременно выполнять несколько инструкций на одном ядре. Это немного смутно названо, поскольку он является аспектом аппаратного обеспечения, а сами потоки являются аспектом программного обеспечения. Ядра могут почти всегда выполнять потоки параллельно. Гиперпоточность более или менее эффективна в зависимости от различных аппаратных и программных факторов, поэтому вы не обязательно получаете повышение производительности 2x на практике. https://en.wikipedia.org/wiki/Hyper-threading – Brick

0

У вас есть процессор с двумя физическими ядрами, каждый из которых поддерживает Hyper-threading (бренд Intel, это означает, что они могут одновременно запускать 2 потока), поэтому у вас есть «четыре логических ядра».

Смежные вопросы