6

Я занимался обработкой изображений на своем компьютере с помощью Erdas Imagine. В частности, я использую медианный фильтр 5x5 для изображений. Я могу указать количество процессов, которые происходят одновременно в окне командного пакета Erdas. Я наблюдал необычное поведение, когда определяю 16 одновременных процессов, что приводит меня к двойной проверке числа процессоров на машине. Я использовал следующую команду командной строки для оценки количества процессоров:

wmic cpu > cpu.txt

Что дало (частично):

Number of Cores: 8 
Number of Logical Processors: 16

Чем количество ядер отличается от количества логических процессоров в контексте программного обеспечения, подобного тому, как Erdas представляет, где пользователь может указать количество одновременных процессов? Я пытаюсь определить, следует ли мне указывать 8 или 16 одновременных процессов, чтобы максимизировать эффективность.

3 ответа3

14

Гиперпоточность приведет к тому, что одно физическое ядро появится в ОС как два.

Гиперпоточность, по сути, позволяет одному ядру выполнять два набора инструкций одновременно, в зависимости от характера инструкций. Когда он был впервые представлен (в 2002 году, и это было довольно шумно в то время, когда оверклокеры и тогдашние новые блоггеры сходили с ума, обсуждая HT против истинного многоядерности - некоторые вещи никогда не меняются), это было что-то вроде "двухъядерного облегчения". ». Чтобы сделать использование гиперпоточности прозрачным для существующего программного обеспечения и операционных систем, они были спроектированы так, чтобы выглядеть как два ядра, и поэтому ядро могло бы продолжать использовать свое существующее планирование и балансировку нагрузки и использовать преимущества гиперпоточности без каких-либо изменений (позже, конечно, были сделаны оптимизации). Вот почему это началось именно так - чтобы многопоточные процессоры могли быть просто заменой на платформах, которые уже в любом случае уже имели многопроцессорную поддержку.

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

3

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

В тех случаях, когда многопроцессорные системы включают в себя несколько завершенных процессорных блоков, многопоточность направлена на увеличение использования одного ядра за счет использования параллелизма на уровне потоков, а также на уровне команд. Поскольку эти два метода дополняют друг друга, они иногда объединяются в системах с несколькими многопоточными ЦП и в процессорах с несколькими многопоточными ядрами.

См. Статьи Википедии о гиперпоточности и многопоточности.

-3

Логический процессор обычно используется для описания общего количества процессоров на чипе. 8 ядер - это физические ядра, которые существуют на чипе. Таким образом, каждый процессор может одновременно обращаться к процессам, предоставляя вам 16 логических процессоров. Гиперпоточность позволяет ядру выполнять две задачи одновременно. Таким образом, поскольку у вас есть 8 ядер в каждой гиперпоточности, у вас будет 16 логических процессоров.

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

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