Isto é o que é suposto acontecer.
Hyperthreading permite que seu processador finja ter uma quantidade X de núcleos. O software não terá idéia de quantos núcleos físicos existem, em geral.
Eu tenho processador Intel i7 com 4 núcleos físicos e cada um tem 2 threads, que é um total de 8 núcleos lógicos.
Eu pretendo ter uma máquina virtual com o Windows Server que use todo o potencial do processador. Ao configurar a máquina virtual com a estação de trabalho VMWare, ele me pede para definir o número de processadores e o número de núcleos por processador, mas não há nenhum tópico mencionado. É correto definir o número de processadores como 4, assumindo que os processadores são núcleos no i7 e definir o número de núcleos por processador como 2, assumindo que é o número de threads por núcleo.
Esta maneira correta de pensar sobre isso? Ou é possível melhorar a máquina virtual com threads dos núcleos do processador?
Obrigado.
Se você tiver o Hyperthreading ativado, trate seu sistema como se ele tivesse 8 núcleos.
Se você tem restrições de desempenho tão strongs, não é aconselhável fazer isso, desabilite o Hyperthreading e use-o como um sistema de quatro núcleos.
Em teoria, é muito possível determinar se um determinado núcleo é físico ou não.
Se eu abrir o Process Explorer em um sistema i7 semelhante, obtenho este resultado: Como podemos ver, as CPUs são agrupadas em 4 grupos (os núcleos físicos) de 2 membros (o que foi produzido usando o Hyperthreading).
Um aplicativo pode definir sua afinidade para que seja mais otimizado o uso do sistema (se for possível determinar isso).