Qual é a diferença entre o número de núcleos e o número de processadores lógicos? [duplicado]

6

Eu tenho feito algum processamento de imagem no meu computador usando Erdas Imagine . Especificamente, estou executando um filtro mediano de 5x5 em imagens. Eu posso especificar o número de processos que ocorrem simultaneamente na janela de comando do lote Erdas. Tenho observado comportamento incomum quando especifico 16 processos simultâneos, o que me leva a verificar novamente o número de processadores na máquina. Eu usei o seguinte comando de prompt de comando para avaliar o número de processadores:

wmic cpu > cpu.txt

Que rendeu (em parte):

Number of Cores: 8 
Number of Logical Processors: 16

Como o número de núcleos difere do número de processadores lógicos no contexto de software como o Erdas imagina onde o usuário pode especificar o número de processos simultâneos? Estou tentando determinar se devo especificar 8 ou 16 processos simultâneos para maximizar a eficiência.

    
por Borealis 21.06.2014 / 20:06

3 respostas

14

Hyper-threading fará com que um núcleo físico apareça no sistema operacional como dois.

O Hyper-threading permite essencialmente que um núcleo execute dois conjuntos de instruções de uma só vez, dependendo da natureza das instruções. Quando foi introduzido pela primeira vez (em 2002, e foi um grande burburinho na época, com overclockers e novos blogueiros enlouquecendo debatendo o HT versus o verdadeiro multicore - algumas coisas nunca mudam) era como "dual core lite" ". Para tornar o uso do hyperthreading transparente para softwares e sistemas operacionais existentes, eles foram projetados para aparecer como dois núcleos e, assim, o kernel poderia continuar usando seu agendamento existente e balanceamento de carga e aproveitar o hyperthreading sem nenhuma alteração (mais tarde, é claro, otimizações foram feitas). É por isso que começou dessa forma - de modo que os processadores com hyperthread poderiam ser substituídos em plataformas que já possuíam suporte a multiprocessadores.

De qualquer forma, como a eficiência dependerá da natureza do aplicativo, talvez você deseje fazer uma referência a 8 e 16 (e superior se os processos não estiverem ligados à CPU, mas, por exemplo, rede ou IO).

    
por 21.06.2014 / 20:12
3

O número de núcleos (8) representa o número real de núcleos físicos. Para cada núcleo do processador fisicamente presente, o sistema operacional aborda dois núcleos virtuais ou lógicos e compartilha a carga de trabalho entre eles quando possível.

Onde os sistemas de multiprocessamento incluem várias unidades de processamento completas, o multithreading visa aumentar a utilização de um único núcleo usando o nível de encadeamento, bem como o paralelismo de nível de instrução. Como as duas técnicas são complementares, às vezes elas são combinadas em sistemas com múltiplos CPUs multithreading e em CPUs com múltiplos núcleos multithreading.

Veja os artigos da Wikipedia sobre HyperThreading e Multithreading .

    
por 21.06.2014 / 20:12
-3

Uma CPU lógica é geralmente usada para descrever o total geral de CPUs no chip. os 8 núcleos são núcleos físicos que existem no chip. Assim, cada CPU pode endereçar a processos de uma só vez, oferecendo 16 processadores lógicos. O hyper-threading permite que um núcleo complete duas tarefas ao mesmo tempo. Então, como você tem 8 núcleos em cada hyper-threading, você terá um total de 16 processadores lógicos.

No sentido básico, os núcleos são reais, ou seja, você tem 8 núcleos físicos em seu chip. Enquanto processadores lógicos é qualquer coisa no chip que pode fazer um cálculo. Todos os núcleos são processadores lógicos, mas nem todos os processadores lógicos são núcleos.

    
por 21.06.2014 / 20:14

Tags