Desativando o HyperThread pelo BIOS ou kernel?

2

Existe alguma diferença de desempenho entre esses cenários de HyperThread desativados? Qual é o melhor e por quê?

  • Desativar HT no BIOS
  • Use o parâmetro do kernel noht

Os aplicativos paralelos de alta otimização funcionam mais lentamente com o HT habilitado. link
Nosso aplicativo é executado 13% mais rápido em 4 núcleos do que 4 núcleos + 4 HT.

O hardware:

  • Placa: Supermicro X9SPU-F
  • CPU: CPU Intel (R) Xeon (R) E3-1275 V2
por andras.tim 03.10.2016 / 15:19

1 resposta

4

Bem, a primeira diferença óbvia é que noht não faz nada em sistemas Linux modernos. Esta opção de inicialização do kernel está muito obsoleta e foi substituída por maxcpus= .

Definir maxcpus=m , onde m é o número de núcleos físicos (não-HT), agora realiza a mesma coisa.

Também é possível ativar ou desativar núcleos de CPU / hyperthreads individuais por meio do sysfs enquanto o sistema está em execução.

Com isso fora do caminho ...

Não deve haver diferença no desempenho entre desativar o hyperthreading no BIOS ou desativá-lo no sistema operacional.

A única diferença real é que, se você desabilitar os núcleos / threads no sistema operacional, poderá reativá-los novamente mais tarde, sem reinicializar. Você pode querer fazer isso se você executar trabalhos de computação diferentes, alguns dos quais se beneficiarão do hyperthreading e alguns deles não.

    
por 15.10.2016 / 04:11