2009-07-15 15:38:47 +0000 2009-07-15 15:38:47 +0000
68
68

Núcleos de CPU: Quanto mais, melhor?

Tenho actualmente um processador dual-core no trabalho e um quad-core em casa. Reparei que ambos os PCs são bastante iguais no que diz respeito ao lançamento de aplicações/surfing da web.

A diferença que posso ver é que o meu dual-core é 2,8GHz e o meu quad-core é 2,4GHz.

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

Respostas (12)

53
53
53
2009-07-15 15:42:45 +0000

NOTE: Esta resposta foi escrita há 8 anos atrás. Desde então, a programação paralela tornou-se mais relevante. Isto deve-se provavelmente aos limites de velocidade de relógio inerentes e aos limites de tamanho de transístor que se aproximam rapidamente.


O seu problema principal é 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 do software, atinge um ponto de retorno decrescente muito rapidamente após dois núcleos. Em Quad-Core Desktops e Diminuição de Retornos &, questionei o quão eficazmente o software actual pode realmente utilizar até quatro núcleos de CPU, muito menos os inevitáveis oito e dezasseis núcleos de CPU que veremos daqui a alguns anos.

& É respondido aqui (destaque copiado do artigo de Jeff),

Contudo, houve aqui algumas surpresas, tais como Excel 2007, e a definição de “operações simultâneas” de Lost Planet. É possível que a engenharia de software acabe por avançar ao ponto de a velocidade do relógio importar menos do que o paralelismo. Ou eventualmente poderá ser irrelevante, se não conseguirmos escolher entre velocidades de relógio mais rápidas e mais núcleos de CPU. Mas entretanto, ** a velocidade do relógio ganha a maior parte do tempo. Mais núcleos de CPU não é automaticamente melhor***. Os utilizadores típicos estarão melhor com o CPU de núcleo duplo mais rápido possível que podem pagar.


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 desenhadores de processadores um embaraço de riquezas de transístores, e em nenhum lugar isso é mais aparente do que no processador Nehalem de 45nm da Intel. Estreando em variantes de 4 e 8 núcleos no final deste ano, Nehalem embala uma tonelada de hardware numa única tomada de processador. (Os primeiros números colocam a contagem de transistores de uma Nehalem de 4 núcleos em 781 milhões; ainda não apareceram números para o modelo de 8 núcleos). Mas tentar alimentar todo esse hardware com a arquitectura de barramento frontal existente na plataforma Intel seria uma loucura. Assim, igualmente importante, Nehalem também soa o toque de morte há muito esperado para a arquitectura de autocarros de frentes geriátricas positiva da Intel.

A mudança radical na situação da largura de banda do sistema da Intel que o novo QuickPath Interconnect (QPI) da Intel representa é talvez o maior factor único que moldou o design de Nehalem. Entre 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.

AMD moveu o controlador de memória para o processador mais cedo e utilizou o Hypertransport.

18
18
18
2009-07-15 15:41:59 +0000

Há, na minha experiência, um enorme benefício de desempenho que vai de um a dois núcleos. De repente, um programa CPU elevado não bloqueia a sua máquina nem a torna inutilmente lenta. Diferença maciça.

Mas dois a quatro? Para 99% das pessoas, isso não fará diferença. Terá de executar muitos programas ao mesmo tempo ou usar programas que possam tirar partido de mais de 2 núcleos (e realisticamente não há assim tantos). Alguns codificadores de media vêm-me à mente.

Há também uma diferença entre os Intel Core 2s e os AMD Phenoms a este respeito. A AMD utiliza o Hypertransport, que é um protocolo ponto a ponto, pelo que cada núcleo tem largura de banda dedicada. Os Intel Core 2s (mas não* Core i7s e outras CPUs baseadas em Niehalem) utilizam um barramento frontal, que é partilhado de forma a ter mais núcleos a competir pela mesma largura de banda.

Isto pode potencialmente tornar um mesmo quad core de relógio (marginalmente) mais lento em algumas circunstâncias. A relação custo-benefício continua a ser com núcleos duplos IMHO. Dito isto, eu tenho um quad core.

10
10
10
2009-07-15 15:53:09 +0000

Gosto como Donald Knuth resume :

Para mim, parece-me mais ou menos que os designers de hardware ficaram sem ideias, e que estão a tentar passar a culpa do futuro desaparecimento da Lei de Moore para os escritores de software, dando-nos máquinas que funcionam mais rapidamente apenas em alguns pontos de referência chave! Não me surpreenderei de todo se toda a ideia multithreading se revelar um fracasso, pior do que a abordagem “Itanium” que era suposto ser tão fantástica - até que os compiladores desejados eram basicamente impossíveis de escrever.

& > Deixem-me pôr as coisas desta forma: Durante os últimos 50 anos, escrevi bem mais de mil programas, muitos dos quais de tamanho substancial. Não consigo pensar sequer em cinco desses programas, que teriam sido sensivelmente melhorados por paralelismo ou multithreading. Certamente, por exemplo, os processadores múltiplos não são uma ajuda para o TeX.

Para algumas aplicações, é muito fácil tirar partido de múltiplos núcleos. Mas algumas outras aplicações nunca beneficiarão deles, enquanto outras podem beneficiar se os criadores os optimizarem (o que é muito difícil).

5
5
5
2009-07-15 15:48:54 +0000

Para o meu ambiente de trabalho principal no meu empregador, utilizo uma máquina Xeon dual quad-core com 8 GB de RAM.

Quando estou a programar, e tenho Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (ou 2010) e uma instância local Sql Server Express… tudo zumbi ao longo de muito bem.

Comparativamente, eu tinha um núcleo duplo antes, e as coisas começariam a rastejar apenas com Visual Studio, Chrome, e Sql Express a correr.

É uma questão do que se faz com a máquina. Se é um utilizador de potência que vai editar vídeo, modelar em 3-d, ou programar com recursos significativos… então sim, vai querer o quad-core e muita RAM.

1
1
1
2009-07-15 16:56:28 +0000

De acordo com Anandtech.com :

& > Tudo se resume ao TDP do chip, ou o seu Ponto de Desenho Térmico. Quanto mais o TDP constrange uma plataforma, mais se pode ganhar com o modo Turbo da Intel. Deixe-me colocar de outra forma; para encaixar quatro núcleos num TDP de 130W, cada núcleo tem de funcionar a uma velocidade de relógio mais baixa do que se tivéssemos apenas um núcleo nesse mesmo TDP.

& > Em TDPs superiores, há normalmente altura térmica suficiente para executar os núcleos individuais bastante altos. Nos TDPs mais baixos, os fabricantes de CPU têm de fazer uma troca entre o número de núcleos e a velocidade do seu relógio - é aí que nos podemos divertir um pouco.

Tudo isto no contexto de ter de escolher entre núcleos (ou roscas) e a frequência do núcleo.

1
1
1
2009-07-15 15:43:26 +0000

Depende. Se estiver a fazer coisas que utilizem fortemente cada núcleo 4 núcleos é melhor (edição de vídeo, renderização, etc.). A maioria das pessoas encontrará dois núcleos rápidos melhores neste momento, porque não há muitas aplicações escritas para tirar o máximo partido de 4 núcleos

1
1
1
2009-07-15 15:49:30 +0000

Note que os processadores i7 mais recentes podem efectivamente aumentar a velocidade do relógio nos núcleos activos quando nem todos são necessários; por exemplo, se tiver um quad-core a 2,4GHz, mas o software só precisa de 2 núcleos para funcionar, então pode automaticamente ser cronometrado até 2,8GHz (não um número real, apenas um exemplo).

E a última geração do i7 penso que pode cronometrar até 3 ou 4 silos se apenas um ou dois núcleos forem necessários. Como tal, pode acabar por não ficar tanto como está actualmente…

1
1
1
2009-07-15 15:43:13 +0000

Para uso diário e programas que não sejam multi-core optimizados um dual-core rápido irá bater um quad-core mais lento.

À medida que o tempo passa e as aplicações devidamente multi-núcleos se tornam os quad-core normais, os quad-core vão-se adiantando.

A partir de um estrondo para a sua perspectiva de quad-core, os dual-core continuam a ter uma vantagem confortável.

0
0
0
2009-07-15 15:44:50 +0000

Depende do que está a fazer e das capacidades do seu sistema operativo e aplicações.

Se tiver um SO leve e estiver a executar uma única aplicação ligada ao CPU que só pode utilizar um processador, então dois processadores a maior velocidade serão uma melhor escolha.

Caso contrário, se o SO puder programar eficazmente todos os núcleos e estiver a executar muitas aplicações ou aplicações que possam fazer uso de mais de um processador o mais lento quad-core então esperar-se-ia um melhor desempenho para um menor consumo de energia e, por conseguinte, uma menor saída de calor.

0
0
0
2009-07-20 05:41:55 +0000

Depende.

Muito.

Pode facilmente encontrar um quad-core usando apenas dois núcleos. Isto tem em parte a ver com o sistema operativo e com o desenho do software. Mais ainda, eles ainda partilham tudo o resto, particularmente a memória, disco, e dispositivos.

Sabe que o SO não arranca (notavelmente) mais depressa e que as páginas web não descarregam mais depressa (podem, no entanto, desenhar mais depressa).

0
0
0
2009-07-15 15:46:35 +0000

Se estiver a fazer muita codificação de vídeo, renderização 3d, ou compilação de código fonte distribuído, então quanto mais núcleos, melhor. Verá uma diferença acentuada no desempenho para estes tipos de aplicação ao passar de 1 para 2 para 4 para 8 núcleos.

Caso contrário, a execução de aplicações padrão não beneficiará realmente de mais núcleos. Mesmo os jogos não explorarão assim tanto múltiplos núcleos. IMO, é melhor gastar o dinheiro numa placa gráfica melhor.

0
0
0
2009-07-15 15:43:11 +0000

No seu caso, o quad-core seria melhor. Lembre-se, quanto mais núcleos tiver, mais paralelelo pode fazer. Assim, no seu dual-core poderá ser capaz de executar uma única aplicação mais rapidamente do que o quad, mas o quad pode executar 4 aplicações mais rapidamente do que o seu dual será capaz de fazer. Além disso, se uma aplicação for escrita para processar em parrallel (multi-threaded), então a aplicação funcionará melhor numa arquitectura multi-core.

Isto é tudo relativo, porém, uma vez que um quad-core a 100 Mhz não vai executar um dual-core 4 Ghz. De um modo geral, no entanto, quanto mais núcleos, melhor.