Núcleos físicos vs lógicos vs virtuais

Núcleos físicos vs lógicos vs virtuais

Meu processador possui 4 núcleos físicos. Máximo de 8 núcleos virtuais por núcleo. O seguinte se aplica:

  • se o hyper threading estiver habilitado, 4x 2 = 8 núcleos lógicos. O que significa 8 x 8 = 64 núcleos virtuais máximos

  • se o hyper threading não estiver ativado, será 4 x 8 = 32 núcleos virtuais máximos. Ou é sempre 4x8=32 núcleos virtuais?

Responder1

Olá, existem alguns princípios básicos que ajudam você a entender:
1. Quanto mais núcleos físicos você tiver, melhor será o desempenho
2. Núcleos lógicos em um único processador físico ajudam o processador a realizar multitarefas, mas não melhor em comparação com ter um processador físico dedicado processador
3. Hyper threading é um processo para obter desempenho multi-core em um único núcleo físico
4. Hyper threading não multiplica núcleos lógicos, sua implementação já é fixada pelo fabricante
5. Hyper threading permite que a carga da CPU seja distribuída nos núcleos e se é necessária mais distribuição e, em seguida, divida a carga dentro de um núcleo físico com diferentes tecnologias, como divisão de tempo, round robin, etc.

Portanto, se sua CPU tiver 4 núcleos físicos com no máximo 8 núcleos lógicos/virtuais por núcleo, será sempre 4x8 = 32 núcleos.
Espero que isso ajude você. :-)

Responder2

Não. Neste contexto, processadores lógicos e “núcleos virtuais” são a mesma coisa. Se você ativar o hyperthreading, terá dois processadores lógicos por núcleo físico. Então, no total, você tem oito processadores lógicos, ou oito núcleos virtuais, qualquer que seja o termo que você queira usar.

Sem hyperthreading, você tem apenas um LP por núcleo físico.

Responder3

No contexto de VMs/hipervisores (com VMs do Azure em mente):

Hypervisor é o software responsável por alocar computação para VMs. Digamos que temos 2 tipos de processadores host:

  1. Computação A: processador hiperthread com 4 núcleos físicos
  2. Computação B: Nenhum processador hiperthread com 4 núcleos físicos

Digamos que criamos 2 VMs, 1 que precisa de menos poder de computação (VM X) e 1 que precisa de mais poder de computação (VM Y).

Calcule A:

  1. O hipervisor aloca 1 núcleo físico para VM X como 1 núcleo virtual
  2. A VM X obtém 2 núcleos lógicos, o que significa 2 vCPUs
  3. Portanto, há 2 vCPUs, 2 núcleos lógicos, 1 núcleo virtual e 1 núcleo físico envolvido para VM X
  4. O hipervisor aloca 2 núcleos físicos para VM Y como 2 núcleos virtuais
  5. VM Y obtém então 4 núcleos lógicos, o que significa 4 vCPUs
  6. Portanto, há 4 vCPUs, 4 núcleos lógicos, 2 núcleos virtuais, 2 núcleos físicos envolvidos para VM Y

Calcular B:

  1. O hipervisor aloca 1 núcleo físico para VM X como 1 núcleo virtual
  2. A VM X obtém então 1 núcleo lógico, o que significa 1 vCPU
  3. Portanto, há 1 vCPU, 1 núcleo lógico, 1 núcleo virtual, 1 núcleo físico envolvido para VM X
  4. O hipervisor aloca 2 núcleos físicos para VM Y como 2 núcleos virtuais
  5. VM Y obtém 2 núcleos lógicos, o que significa 2 vCPUs
  6. Portanto, há 2 vCPUs, 2 núcleos lógicos, 2 núcleos virtuais, 2 núcleos físicos envolvidos para VM Y

Para uma VM não existe núcleo físico, mas sim um núcleo virtual (que está sendo feito para parecer um núcleo físico exatamente da mesma forma que a própria máquina virtual está sendo feita para parecer uma máquina física). Observe que aqui assumimos que 1 núcleo físico é apresentado como 1 núcleo virtual para VM. No entanto, o hipervisor pode decidir agrupar 2 núcleos físicos eabstratoeles como 1 núcleo virtual para uma VM (ou, em geral, M núcleos físicos podem ser abstraídos em N núcleos virtuais). Os núcleos lógicos seguiriam então com base no fator de hyperthreading.

O número de vCPUs é igual ao número de núcleos lógicos que um núcleo virtual (portanto, o número subjacente de núcleos físicos) suporta. [Fontes:Alan Azure,VMware]

Texto fonte (caso os hiperlinks de origem sejam quebrados):

Azure Alan: Alan Azure

VMware: VMware

informação relacionada