O conceito de núcleos não é tão simples. Os núcleos lógicos são o número de núcleos físicos vezes o número de threads que podem ser executados em cada núcleo. Isso é conhecido como HyperThreading . Se eu tiver um computador que tenha um processador de 4 núcleos, execute dois threads por núcleo, então tenho 8 processadores lógicos. Você pode ver os recursos principais de seus computadores executando o comando lscpu .
Se um processador tiver 4 núcleos, mas ele puder executar 8 segmentos em paralelo, significa que ele possui apenas 4 núcleos (unidades de processamento). Mas pode dar suporte de hardware para 8 threads em paralelo . Claramente, no máximo 4 trabalhos podem ser executados nos núcleos. Um job em execução no núcleo, se por qualquer meio parar para memória ou operação de E / S , outro thread pode usar esse núcleo livre.
Até agora você entende que, se o seu computador tiver 2 núcleos físicos e puder executar 2 threads por núcleo, você terá 4 processadores lógicos . Portanto, você pode executar apenas duas instâncias, pois tem dois núcleos físicos, o que significa que você está usando todos os recursos de núcleos físicos únicos (dois segmentos por vez). Então a taxa de transferência será de 50%. Mas se, a qualquer momento, um encadeamento ficar ocioso, o núcleo poderá carregar um encadeamento nesse núcleo.
Você pode desativar o HyperThreading no BIOS (algo como " Intel ht technology ") e ver a diferença entre os recursos normais e HyperThreading como agora a taxa de transferência será de 100%.