Uma contagem maior de núcleos ou uma velocidade de clock mais alta são mais benéficas para o desempenho de um computador?

Uma contagem maior de núcleos ou uma velocidade de clock mais alta são mais benéficas para o desempenho de um computador?

Com a redução dos custos do silício e o aumento das necessidades dos consumidores, os fabricantes parecem estar pressionando uma de duas coisas: velocidade do clock e/ou contagem de núcleos. Do jeito que as coisas estão indo, não parece que a velocidade do clock dos processadores esteja mais aumentando, mas sim o número de núcleos dos processadores.

Lembro-me de que há apenas alguns anos eu tinha um processador Pentium 4 de núcleo único e rápido. Avançando até hoje, não acho que você possa comprar um processador de núcleo único (sem mencionar o aumento crescente de processadores multicoremesmo em celulares). Do jeito que as coisas estão, poderemos encontrar computadores com centenas de núcleos em alguns anos (e sei que muitos sistemas operacionais já têm suporte para isso).

É mais benéfico para o desempenho geral de um sistema aumentar a velocidade do clock ou aumentar o número de núcleos? Suponha que estamos tendo centenas de núcleos rodando juntos, ou velocidades de clock dez vezes maiores do que temos hoje (independentemente de isso ser ou não fisicamente possível).

Quais são alguns exemplos de processos comuns (por exemplo, criptografia, compactação de arquivos, edição de imagens/vídeos) que mais se beneficiarão de um ou de outro? Existem alguns processos quepodeser, mas atualmente não são (por razões técnicas) acelerados pelo aumento do seu paralelismo?


Suponha que o processador hipotético tenha exatamente o mesmo design de núcleo (tamanho da palavra, largura de bits do endereço, tamanho do barramento de memória, cache, etc...), então as únicas variáveis ​​aqui são a velocidade do clock e a contagem de núcleos. E, novamente, não estou falando de um, dois ou mesmo quatro núcleos – imagine dezenas a centenas.

Responder1

Existem duas situações básicas que devem ser consideradas:

  1. O processador é usado com um computador que faz cálculos apenas para um único programa

  2. O processador é usado para vários programas executados ao mesmo tempo

A primeira situação é onde a 'velocidade' do processador é mais importante, pois o usuário deseja a capacidade de fazer cálculos de forma rápida e eficiente. Estas situações são normalmente para processamento intensivo de cálculo, ou seja, cálculo de números primos paracriptografia/descriptografia

A segunda é onde vários núcleos são úteis, já que cada programa pode ser atribuído a um núcleo separado, liberando assim cada programa de "gargalos" entre si. No mundo de hoje, o usuário médio usará seu computador para vários programas ao mesmo tempo, tornando assim o processamento multi-core algo desejável.

No entanto, multi-core!=velocidades mais rápidas ou desempenho superior em todos os casos. Como a maioria dos programas são escritos para processamento de núcleo único * , ainda é importante observar a velocidade do clock. Uma combinação de ambos deve ser levada em consideração(juntamente com muitos outros fatores também).


* Existem alguns programas, e esperamos que em breve mais sejam criados, onde vários núcleos possam ser usados ​​ao mesmo tempo. O futuro do software é encontrado com este "Programação Paralela":

Os desenvolvedores de software não podem mais depender apenas do aumento da velocidade do clock para acelerar aplicativos de thread único; em vez disso, para obter uma vantagem competitiva, os desenvolvedores devem aprender como projetar adequadamente seus aplicativos para serem executados em um ambiente threaded. As arquiteturas multinúcleo possuem um único pacote de processador que contém dois ou mais "núcleos de execução" de processador, ou mecanismos computacionais, e fornecem - com software apropriado - execução totalmente paralela de vários threads de software.

-Informações

Responder2

Pessoalmente, acho que a contagem de núcleos é o caminho a percorrer. O desenvolvimento de software mudou para sistemas em rede, portanto os recursos locais não são mais os únicos recursos disponíveis para você. O fator mais importante em como você trabalha agora é o queredevocê faz parte.

Observe a mudança para banda larga móvel, conectividade constante, acesso remoto, etc. Com isso, conectividade constante requer bateria. Embora seja discutível quais fatores de CPU são mais ideais para a duração da bateria (você tem uma equação clássica de otimização de valor de trabalho versus tempo), eu pessoalmente acho que, se você tivesse que escolher um, eu escolheria mais núcleos.

A Intel agora permite alimentar núcleos sob demanda. Embora não seja tão ideal quanto não ter núcleos para dormir, ter a opção de usar mais núcleos oferece flexibilidade para executar mais aplicativos na mesma plataforma de hardware.

Responder3

Como ChrisF menciona em um comentário,depende.Mas como respostas como essa não são realmente respostas, tentarei imaginar alguns cenários em que uma será mais benéfica que a outra:

Na maioria dos processos comuns mencionados, o número de núcleos não importa muito, já que a maior parte do trabalho é feita em um único thread que só pode ser executado em um único núcleo (por vez). Para tais processos, um núcleo único, mas muito poderoso, terá melhor desempenho do que alguns núcleos mais lentos. Tanto a criptografia quanto a compactação de arquivos podem ser exceções, mas depende muito de quais algoritmos são usados ​​e se eles podem ser executados em paralelo.

Porém, você se esqueceu de uma das tarefas mais comuns realizadas nos computadores atualmente: navegar. Vários navegadores populares abrem cada guia em um processo separado (tenho certeza que o Chrome é o único que faz isso, já que é o que eu uso), o que significa que se você tiver quatro guias abertas em um sistema quad-core, cada janela de navegação pode (em teoria) tem um núcleo "para si mesmo" (ignorando threads do sistema operacional e outras coisas) e é tão rápido como se não houvesse outras guias/janelas do navegador abertas. Para pessoas que navegam com muitas guias abertas ao mesmo tempo, isso pode ser uma grande melhoria de desempenho sem a necessidade de construir núcleos de CPU extremamente rápidos.

A chave para saber se um sistema multi-core com núcleos mais lentos será mais rápido do que um sistema single-core com núcleo rápido é saber se você fará isso.muitas coisas diferentes simultaneamenteoualgumas coisas, mas pesadas. Como isso varia muito de usuário para usuário, a resposta à sua pergunta também será.


As outras respostas também abordam alguns pontos importantes:

  • o desempenho do processador não se resume mais à velocidade do clock ou ao número de núcleos - outras partes do processador estão se tornando gargalos à medida que a velocidade do clock e a contagem de núcleos melhoram.
  • para a maioria dos usuários, o desempenho do processador nem é o gargalo, para começar. Se você gasta seu tempo em aplicativos hospedados como o Google Docs, a velocidade da sua placa de rede será mais importante do que a velocidade do(s) núcleo(s) do seu processador. Se você estiver assistindo ou editando material de filme de alta resolução, o desempenho do disco rígido será mais importante. Etc...

Responder4

Na verdade hoje o fator mais importante não é a velocidade do clock do processador, há muitas novidades lançadas desde que esse “fator de comparação” caiu em desuso.

Hoje você deve observar muitos fatores para inferir sobre o desempenho dos processadores. Coisas como:

  • Número de núcleos
  • número de threads de operação paralela
  • família de processadores (Dual core, Pentium, Core i/Calpella, Sandy Bridge, etc.)
  • geração do processador (2ª, 6ª, etc.) e depois
  • velocidade do clock do processador.

Na verdade, quando quero comparar velocidades de processador eu consultosenhadeverificação de cadernotabelas de referência. Os benchmarks, na minha opinião, são o melhor fator para medir e comparar a velocidade e o desempenho do processador.

informação relacionada