Pergunta

Eu estou construindo um PC com o novo processador quad core Intel I7. Com hyperthreading ativado ele irá informar 8 núcleos no Gerenciador de tarefas.

Alguns dos meus colegas estão dizendo que hyperthreading fará com que o sistema não confiável e sugerir desligá-lo.

Pode algum de vocês, gente boa, me ilumine e o resto dos usuários stockoverflow.

Siga em: Estou usando hyperthreading constantemente, e tem sido local. Sem instabilidade qualquer. Eu estou usando:

  • Microsoft Server 2008 de 64 bits
  • Microsoft SQL Server 2008 de 64 bits
  • Microsoft Visual Studio 2008
  • Diskeeper Servidor
  • Muitos dos controles (Telerik, Dundas, Rebex, ReSharper)
Foi útil?

Solução

A estabilidade não é susceptível de ser afectada, uma vez que a abstração é muito baixo nível e o sistema operacional apenas o vê como uma outra CPU para fornecer trabalho para. No entanto, o desempenho é outra questão.

Em toda a honestidade que eu não posso dizer se este ainda é o caso, mas pelo menos quando as CPUs permitiu-HT saiu primeiro, não eram conhecidos problemas com pelo menos algumas aplicações. Por exemplo, MySQL, e multi-threaded apps como o suporte Java aplicação que eu para o meu trabalho do dia eram conhecidos por terem um desempenho reduzido quando HT foi habilitado. Nós sempre recomendável ser removido, pelo menos para o nosso caso de uso particular de um aplicativo corporativo do lado do servidor.

É possível que isso não é mais um problema, e em um ambiente de desktop isso é menos provável de ser um problema para a maioria dos casos de uso. A capacidade de trabalho dividida sobre a CPU geralmente levaria a aplicações mais sensíveis quando a CPU é fortemente utilizado. No entanto, a troca de contexto e sobrecarga poderia ser um detrement quando o aplicativo já está fortemente rosca e intensivo de CPU, como no caso de um servidor de banco de dados.

Outras dicas

Em cima da minha cabeça eu posso pensar de algumas razões seus colegas podem dizer isso.

  • Vários artigos sobre sofrimento desempenho SQL sob hyperthreading. Eu acredito que ele acaba fazendo muito comutações de contexto ou debulha cache. Não me lembro exatamente.

  • Logo no início indo desde simples proc para multi-proc ou mais provável para a maioria das pessoas HyperThreaded procs, trouxe muitos problemas de segmentação para o aberto. condições de corrida, deadlocks, etc, que eles nunca viram antes. Apesar de seu um problema de código algumas pessoas culparam os procs.

Eles estão fazendo as mesmas reivindicações sobre multi-core / multi-proc ou apenas sobre hyperthreaded?

Quanto a mim, eu tenho vindo a desenvolver em uma caixa hyperthreaded para 4 anos agora, único problema tem sido um problema de bloqueio UI de minha própria autoria.

Hyperthreading vai principalmente fazer a diferença no comportamento do agendador / performance ao mobilizarem as threads ao mesmo CPU em oposição a CPU diferente ...

Ela vai mostrar em uma aplicação mal codificado que não lidar com as condições de corrida entre threads ...

Por isso, é geralmente má concepção / code .... que suddendly encontrar uma condição de modo de falha

Não confiável? Eu duvido isso. A única desvantagem de hyperthreading que eu posso pensar é o fato de que se o sistema operacional não está ciente disso , pode agendar duas linhas em um processador físico quando outros processadores físicos estão ociosos que irá degradar o desempenho.

Houve um problema com o servidor SQL e hyperthreading para algumas consultas porque o servidor SQL tem a sua própria agenda, maxdop 1 resolveria esse

Para qualquer grau Windows é instável, é altamente improvável que contribui significativamente hyperthreading (ou que teria feito uma grande notícia até agora.)

Eu tive um PC hyperthreading por alguns anos agora. Não que muitos núcleos, mas é funcionou bem para mim.

Queria ter dados de teste para provar seus colegas errado, mas parece que é apenas a minha opinião em relação a deles neste momento. ;)

Os tópicos em um compartilhamento de CPU hyperthreaded o mesmo cache e, como tal, não sofrem de problemas de cache de consistência que uma arquitetura de CPU múltipla pode. Porém, se o desenvolvedor de um pedaço de software está programando com múltiplas CPUs em mente, eles vão (ou deveria) estar escrevendo com a semântica de leitura (IIRC, que é o termo). ou seja, todas as gravações são descarregadas do cache imediatamente.

Tanto quanto eu sei, do ponto de vista do sistema operacional, ele não vê hyperthreading como qualquer diferente de ter vários núcleos reais. Do ponto de vista do sistema operacional, não há diferença - é isolado

.

Assim, além do fato de que os "núcleos extra" de hyperthreading não são "reais" (no sentido estritamente técnico) e não têm o desempenho total de núcleos de CPU "reais", não posso ver que ele 'd ser menos fiável. Mais lento, talvez, em alguns casos raros, mas não menos confiáveis.

Claro, isso depende do que você está correndo - Suponho que alguns aplicativos podem obter "para baixo e sujo" com a CPU e hyperthreading pode confundi-los, mas isso é provavelmente muito rara.

Eu mesmo tenho sido executando um PC com hyperthreading há vários anos, e tenho visto há problemas de estabilidade.

Desculpe eu não tenho dados mais concretos!

Eu possuo um sistema i7, e eu não tive quaisquer problemas.

Se ele funciona w / múltiplos núcleos, ele trabalha com hyperthreading.

A resposta curta: Sim.

A resposta longa, como acontece com quase todas as perguntas, é "depende". Depende do sistema operacional, o software, a revisão CPU, etc Eu pessoalmente tenho tido que desativar Hyperthreading em duas ocasiões para obter software funcionando corretamente (um, com a aplicação Synergy, e dois, com o instalador do Windows NT 4.0), mas o seu milhagem pode variar.

Enquanto você obter o Windows instalado detectar múltiplos núcleos HT desde o início (ele carrega alguns drivers relevantes e tal), você sempre pode desativar (e reativar) HT "após o fato". Se você tem problemas de estabilidade bizarros com software específico que você não pode resolver, não é difícil para desativar HT para ver se ele tem qualquer impacto.

Eu não desativá-lo para começar, porque, francamente, ele provavelmente irá funcionar bem em 99,99% do seu uso diário. Mas esteja ciente de que sim, pode, ocasionalmente, causa comportamentos bizarros, por isso não descarta-lo se acontecer de você ser a solução de problemas algo muito estranho no caminho.

Pessoalmente, eu descobri que hyperthreading, apesar de não causar quaisquer problemas, na verdade não ajudar a todos que muito. Pode ser como ter um .1 extra de um processador. Na minha máquina HT no trabalho, eu só muito raramente ver o meu CPU ir acima de 50%. Eu não sei se HT ficou melhor com processadores mais recentes, como o i7, mas não estou otimista.

Além de ouvir alguns relatos sobre o SQL Server, tudo o que posso informar é positivo. Recebo cerca de 25% melhor desempenho em pesados ??aplicativos rosca-multi com HT diante. Nunca correr em um problema com ele, e eu estou usando uma primeira geração de processadores HT ...

atrasado para a festa, mas para o futuro referrence;

Atualmente estou tendo um problema com isso com SQLServer. Basicamente, o meu entendimento é Hyperthreading nas mesmas ações processador o mesmo cache L1 e L2, o que pode causar problemas entre os dois. Citrix também parece ter este problema do que eu estou lendo.

Slava Ok escreveu um bom post sobre ele.

Estou aqui muito tarde, mas encontrou esta página através do Google. I pode ter descoberto um problema muito sutil. Eu tenho um i7 950 em execução 2003 Server e é ótimo. Inicialmente eu deixei hyperthreading no BIOS, mas durante alguns testes e coisas empurrando duro, eu corri um programa chamado "crashme" por Carrette. Este programa tenta travar um SO por disparando um processo e alimentá-lo lixo para tentar e correr. Minha configuração dupla Opteron ele correu para sempre sem um problema, mas o 950 caiu dentro de uma hora. Ele não caiu para mais nada a não ser que eu fiz algo estúpido, por isso era muito surpreendente. Por um capricho eu desliguei HT e executou o programa novamente. Corre-se toda a noite, até mesmo várias instâncias do mesmo. Uma anedota não significa muito, mas experimentá-lo e ver o que acontece. Além disso, parece que o processador é um pouco mais frio em qualquer determinada carga se HT está desligado. YMMV.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top