Núcleos de CPU: quanto mais, melhor?

69

Atualmente, tenho um processador dual-core no trabalho e um quad-core em casa. Percebi que os dois PCs são praticamente iguais no que diz respeito ao lançamento de aplicativos / navegação na web.

A diferença que vejo é que meu núcleo dual é de 2,8 GHz e meu quad-core é de 2,4 GHz.

É melhor ter um dual-core com uma velocidade de clock rápida ou um quad-core com uma velocidade de clock medíocre?

Travis
fonte
5
'Rápido' e 'medíocre' são relativos. No seu caso, um quad core seria melhor porque a diferença nas velocidades de clock é de apenas 400 MHz. No entanto, um núcleo dual de 3 GHz é melhor que um núcleo quádruplo de 1,5 GHz, na maioria das vezes.
21415 Sasha Chedygov
Não use GHz para comparar processadores, use alguns resultados de teste de velocidade / carga para comparar a velocidade efetiva de um processador. Um processador 3GHz de dois núcleos pode ser mais lento que um i7 de 2,4 GHz (o i7 não tem barramento frontal, ...) ...
Ben
2
@ Ben, deve ser óbvio que seria a mesma arquitetura de processador (por exemplo, 45nm Core 2 Duo vs Quad).
Mircea Chirea

Respostas:

53

NOTA: Esta resposta foi escrita há 8 anos. A programação paralela tornou-se mais relevante. Provavelmente, isso se deve aos limites inerentes de velocidade do relógio e aos limites de tamanho do transistor que se aproximam rapidamente.


Seu principal problema é o software não escrito para multi-core.

Veja o excelente artigo de Jeff Atwood sobre Escolhendo Dual Core ou Quad Core .

para a maioria dos softwares, você atinge um ponto de retorno decrescente muito rapidamente após dois núcleos. Em desktops quad-core e retornos decrescentes , questionei a eficácia com que o software de hoje pode realmente usar até quatro núcleos de CPU, muito menos os inevitáveis ​​oito e dezesseis núcleos de CPU que veremos daqui a alguns anos.

Você foi respondido aqui (destaque copiado do artigo de Jeff),

No entanto, houve algumas surpresas aqui, como o Excel 2007 e a configuração "operações simultâneas" do Lost Planet. É possível que a engenharia de software avance até o ponto em que a velocidade do relógio importe menos que o paralelismo. Ou, eventualmente, pode ser irrelevante, se não conseguirmos escolher entre velocidades de clock mais rápidas e mais núcleos de CPU. Enquanto isso, a velocidade do relógio ganha na maioria das vezes. Mais núcleos de CPU não são automaticamente melhores . Os usuários típicos terão melhor desempenho com a CPU dual-core mais rápida possível.


A questão do Front-Side Bus (esse termo sempre me divertiu).
Com Nehalem, as coisas mudam ... como a ArsTechnica disse no ano passado.

A Lei de Moore deu aos projetistas de processadores uma vergonha das riquezas dos transistores, e em nenhum lugar isso é mais aparente do que no processador Nehalem de 45 nm da Intel. Estreando nas variantes de 4 e 8 núcleos ainda este ano, a Nehalem empacota uma tonelada de hardware em um soquete de processador. (Os números anteriores elevam a contagem de transistores de um Nehalem de quatro núcleos em 781 milhões; ainda não havia números para o modelo de 8 núcleos.) Mas tentar alimentar todo esse hardware com a arquitetura de barramento frontal existente na plataforma Intel seria uma loucura. Assim, o mais importante é que Nehalem também parece estar muito atrasado para a arquitetura de ônibus frontalmente geriátrica da Intel.

A mudança radical na situação de largura de banda do sistema da Intel que o novo QuickPath Interconnect (QPI) da Intel representa talvez seja o maior fator isolado que moldou o design da Nehalem. Entre o QuickPath e o controlador de memória integrado da Nehalem, um processador Nehalem terá acesso a uma quantidade sem precedentes de largura de banda agregada, especialmente em implementações de dois e quatro soquetes.

A AMD mudou o controlador de memória para o processador anteriormente e usou o Hypertransport.

nik
fonte
3
A outra questão a considerar é o desempenho do barramento frontal. Com tantos núcleos, tanta memória e programas tão grandes, o acesso à memória se torna crítico! Se a CPU tiver que falhar para acessar a memória principal, isso prejudicará o desempenho. Quanto mais multitarefa, maior a probabilidade de isso acontecer, independentemente do tamanho obscenamente grande do cache de chips.
#
11
Nos oito anos desde que essa pergunta foi aberta em 2009, as coisas mudaram. O software agora é muito melhor em tirar proveito de muitos núcleos, e essa tendência só continuará.
Contango
11
@Contango Concordado, esta resposta precisa ser atualizada para refletir as tendências atuais.
18

Existe, na minha experiência, um enorme benefício de desempenho que varia de um a dois núcleos. De repente, um programa de alta CPU não trava sua máquina ou a torna inusitavelmente lenta. Diferença maciça.

Mas duas a quatro? Para 99% das pessoas, não fará diferença. Você precisará executar muitos programas de uma só vez ou usar programas que possam tirar vantagem de mais de 2 núcleos (e, realisticamente, não existem muitos). Certos codificadores de mídia vêm à mente.

Há também uma diferença entre o Intel Core 2s e o AMD Phenoms a esse respeito. A AMD usa o Hypertransport, que é um protocolo ponto a ponto, para que cada núcleo tenha largura de banda dedicada. Os Intel Core 2s (mas não os Core i7s e outras CPUs baseadas em Niehalem) usam um barramento frontal, que é largura de banda compartilhada, para que você tenha mais núcleos competindo pela mesma largura de banda.

Isso pode potencialmente tornar um mesmo quad core de clock (marginalmente) mais lento em algumas circunstâncias. Valor para o dinheiro ainda está com IMHO de núcleos duplos. Dito isto, eu tenho um quad core.

Peter Mortensen
fonte
11
O Nehalem usa QPI (QuickPathInterconnect), que está no mesmo parque que o Hypertransport.
nik
10

Eu gosto de como Donald Knuth resume :

Para mim, parece mais ou menos que os projetistas de hardware ficaram sem ideias e estão tentando passar a culpa do futuro desaparecimento da Lei de Moore para os criadores de software, dando-nos máquinas que trabalham mais rápido apenas em algumas poucas. principais parâmetros de referência! Não ficarei surpreso se a ideia de multithreading acabar sendo um fracasso, pior do que a abordagem "Itanium", que deveria ser tão fantástica - até que os compiladores desejados fossem basicamente impossíveis de escrever .

Deixe-me colocar desta maneira: durante os últimos 50 anos, escrevi mais de mil programas, muitos dos quais com tamanho substancial. Não consigo pensar em nem cinco desses programas que teriam sido aprimorados visivelmente pelo paralelismo ou multithreading. Certamente, por exemplo, vários processadores não ajudam o TeX.

Para algumas aplicações, é muito fácil tirar proveito de vários núcleos. Mas alguns outros aplicativos nunca se beneficiarão com eles, enquanto outros poderão se beneficiar se os desenvolvedores os otimizarem (o que é muito difícil).

Bastien Léonard
fonte
4
Em geral, concordo que os múltiplos núcleos não ajudariam o próprio TeX. Mas seria uma grande vitória para um editor gráfico de TeX, que chama repetidamente o TeX para atualizar a exibição enquanto o documento está sendo editado.
21119 KeithB
3
Este é um daqueles lugares onde meu coração se apega a Knuth, mas minha mente não concorda completamente.
nik
5

Para minha área de trabalho principal no meu empregador, eu uso uma máquina Xeon de quatro núcleos com 8 GB de RAM.

Quando estou programando e tenho o Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (ou 2010) e uma instância local do Sql Server Express ... tudo fica bem.

Comparativamente, eu tinha um núcleo duplo antes e as coisas começavam a rastrear apenas com o Visual Studio, Chrome e Sql Express em execução.

É uma questão do que você faz com a máquina. Se você é um usuário avançado que irá editar vídeos, modelar em 3-d ou programar com recursos significativos ... então sim, você desejará o quad-core e muita RAM.

Jeff Fritz
fonte
1

Para o uso diário e programas que não são otimizados para múltiplos núcleos, um núcleo duplo rápido supera um núcleo quádruplo mais lento.

À medida que o tempo passa, os aplicativos multiencadeados se tornam a norma que os quatro núcleos seguirão em frente.

Do ponto de vista da sua perspectiva, os núcleos duplos ainda têm uma vantagem confortável.

Auxonic
fonte
1

Depende. Se você estiver fazendo coisas que usarão cada núcleo fortemente, 4 núcleos serão melhores (edição de vídeo, renderização etc.). A maioria das pessoas encontrará melhor dois núcleos rápidos no momento, porque não há muitos aplicativos escritos para aproveitar ao máximo quatro núcleos

David Hayes
fonte
1

Observe que os processadores i7 mais recentes podem realmente aumentar a velocidade do clock nos núcleos ativos quando nem todos são necessários; por exemplo, se você possui um quad-core em 2,4 GHz, mas o software precisa apenas de 2 núcleos para rodar, então ele pode obter automaticamente o clock de até 2,8 GHz (não uma figura real, apenas um exemplo).

E a última geração do i7, eu acho, pode criar até 3 ou 4 posições, se apenas um ou dois núcleos forem necessários. Como tal, pode não acabar sendo tão compensador quanto é atualmente ...

jerryjvl
fonte
1

De acordo com Anandtech.com :

Tudo se resume ao TDP do chip ou ao seu Thermal Design Point. Quanto mais restrita o TDP for uma plataforma, mais você ganha com o modo Turbo da Intel. Deixe-me explicar de outra forma; para encaixar quatro núcleos em um TDP de 130 W, cada núcleo deve ser executado em uma velocidade de clock mais baixa do que se tivéssemos apenas um núcleo no mesmo TDP.

Em TDPs mais altos, geralmente há espaço térmico suficiente para executar os núcleos individuais bastante altos. Em TDPs mais baixos, os fabricantes de CPU precisam fazer uma troca entre o número de núcleos e suas velocidades de clock - é aí que podemos nos divertir.

Tudo isso no contexto de ter que escolher entre núcleos (ou threads) e frequência de núcleo.

Ivo Flipse
fonte
Isso seria mais relevante para um interesse em overclock? Bom artigo de qualquer maneira.
nik
0

No seu caso, o quad-core seria melhor. Lembre-se, quanto mais núcleos você tiver, maior será o processamento paralelo. Portanto, no seu núcleo dual, você poderá executar um único aplicativo mais rápido que o quad, mas o quad pode executar 4 aplicativos mais rapidamente do que você é capaz. Além disso, se um aplicativo for gravado para processar em paralelo (multiencadeado), o aplicativo será executado melhor em uma arquitetura multinúcleo.

Tudo isso é relativo, no entanto, como um quad-core rodando a 100 Mhz não vai executar um dual-core 4 Ghz. De um modo geral, porém, quanto mais núcleos, melhor.

Joseph
fonte
Você está assumindo que um aplicativo que pode funcionar em dois núcleos também poderá tirar proveito de quatro núcleos. Isso não é sempre verdade.
nik
@nik Não, não estou, eu estava afirmando que um aplicativo multiencadeado apresentaria melhor desempenho em uma arquitetura multinúcleo. Não indiquei nada sobre ganho proporcional sobre o número de núcleos que você possui.
314 Joseph
0

Depende do que você está fazendo e dos recursos do seu sistema operacional e aplicativos.

Se você possui um sistema operacional leve e está executando um único aplicativo vinculado à CPU que pode usar apenas um processador, dois processadores em velocidade mais alta serão a melhor opção.

Caso contrário, se o sistema operacional puder agendar todos os núcleos de maneira eficaz e você estiver executando muitos aplicativos ou aplicativos que podem usar mais de um processador, o quad-core mais lento, esperaria um melhor desempenho para menor consumo de energia e, portanto, menos produção de calor.

mas
fonte
0

Se você estiver criando muitas codificações de vídeo, renderização em 3D ou código-fonte distribuído, então, quanto mais núcleos, melhor. Você verá uma diferença acentuada no desempenho para esses tipos de aplicativos à medida que você muda de 1 para 2 a 4 a 8 núcleos.

Caso contrário, a execução de aplicativos padrão realmente não se beneficiará de mais núcleos. Mesmo os jogos realmente não exploram muito vários núcleos. Na IMO, é melhor gastar dinheiro com uma placa gráfica melhor.

Nick Haddad
fonte
0

Depende.

Muito mesmo.

Você pode encontrar facilmente um quad-core usando apenas dois núcleos. Em parte, isso tem a ver com o sistema operacional e com o design do software. Mais ainda, eles ainda compartilham todo o resto, principalmente a memória, o disco e os dispositivos.

Você sabe que o sistema operacional não inicializa (notavelmente) mais rapidamente e as páginas da Web não são baixadas mais rapidamente (elas podem ser mais rápidas).

dlamblin
fonte