Com a redução dos custos de silício e as crescentes necessidades dos consumidores, os fabricantes parecem estar pressionando uma de duas coisas: velocidade do relógio e / ou contagem de núcleos. Com a maneira como as coisas estão indo, não parece que a velocidade do clock dos processadores esteja aumentando mais, mas o número de núcleos do processador.
Lembro-me de apenas alguns anos atrás, eu tinha um bom processador Pentium 4 de núcleo único e rápido. Avanço rápido de hoje, e acho que você nem pode comprar um processador de núcleo único (para não mencionar o aumento crescente de processadores multicore, mesmo em celulares ). Do jeito que as coisas estão indo, podemos encontrar computadores com centenas de núcleos em alguns anos (e eu 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 entrando em centenas de núcleos, todos funcionando juntos, ou a velocidade do relógio é dez vezes maior do que temos hoje (independentemente de isso ser fisicamente possível ou não).
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 que podem ser, mas atualmente não são (devido a razões técnicas) acelerados aumentando seu paralelismo?
Suponha que o processador hipotético tenha exatamente o mesmo design de núcleo (tamanho da palavra, largura do bit de endereço, tamanho do barramento de memória, cache, etc ...), portanto, 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 até quatro núcleos - imagine dezenas a centenas.
Respostas:
Há duas situações básicas que devem ser consideradas:
O processador é usado com um computador que faz cálculos apenas para um único programa
O processador é usado para vários programas em execução 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 maneira rápida e eficiente. Essas situações são tipicamente para processamento intensivo de cálculo, ou seja, cálculo de números primos para criptografia / descriptografia
O segundo é o local em que vários núcleos são úteis, já que cada programa pode ser atribuído a um núcleo separado, liberando assim cada programa do 'engarrafamento' entre si. No mundo de hoje, o usuário médio usará o computador para vários programas ao mesmo tempo, tornando o processamento multi-core uma coisa desejável.
No entanto, multi-core ! = Velocidades mais altas ou desempenho mais alto em todos os casos. Como a maioria dos programas é gravada para processamento de núcleo único * , a velocidade do clock ainda é importante. Uma combinação de ambos deve ser levada em consideração (junto com muitos outros fatores) .
* 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 esta " Programação Paralela ":
fonte
Pessoalmente, acho que a contagem principal é o caminho a percorrer. O desenvolvimento de software mudou para os sistemas em rede, de modo que os recursos locais não são mais os únicos recursos disponíveis para você. O fator mais importante na forma como você trabalha agora é em qual rede você faz parte.
Observe a mudança para a banda larga móvel, conectividade constante, acesso remoto, etc. Com isso, a conectividade constante requer vida útil da bateria. Embora seja discutível quais fatores da CPU são mais ideais para a vida útil da bateria (você tem a clássica equação de otimização do valor do trabalho versus o tempo), 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 a flexibilidade de executar mais aplicativos na mesma plataforma de hardware.
fonte
Como ChrisF menciona em um comentário, isso depende. Mas como respostas como essas não são realmente respostas, tentarei entender alguns cenários em que um será mais benéfico que o outro:
Na maioria dos processos comuns mencionados, o número de núcleos não importa muito, uma vez que a maior parte do trabalho é realizada em um único encadeamento que só pode ser executado em um único núcleo (por vez). Para esses processos, um núcleo único, mas muito poderoso, terá desempenho melhor 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 podem ser executados em paralelo.
No entanto, você esqueceu uma das tarefas mais comuns executadas nos computadores atualmente: a navegação. Vários navegadores populares abrem cada guia em um processo separado (o Chrome é o único, com certeza, 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 poderá (em teoria) têm um núcleo "próprio" (ignorando tópicos e coisas do SO) e seja tão rápido quanto se não houvesse outras guias / janelas do navegador abertas. Para as pessoas que navegam com muitas abas abertas ao mesmo tempo, isso pode ser um sério aprimoramento de desempenho sem a necessidade de criar núcleos de CPU extremamente rápidos.
A chave para saber se um sistema multinúcleo com núcleos mais lentos será mais rápido que um sistema núcleo único com um núcleo veloz é saber se você fará várias coisas diferentes simultaneamente ou poucas, mas pesadas . Como isso varia muito de usuário para usuário, a resposta para sua pergunta também será.
As outras respostas também trazem alguns pontos importantes:
fonte
Primeiro de tudo, as velocidades de núcleo único não diminuíram muito. A única razão pela qual a atual linha Sandy Bridge da Intel não supera o Pentium 4s de núcleo único em termos de megahertz é que a Intel não tem concorrência, portanto não precisa se esforçar tanto.
Segundo, a velocidade do relógio não é tudo, mesmo no núcleo único. Ao analisar o desempenho dos aplicativos, novamente em relação ao Pentium 4, a linha atual da Intel é cerca de 50% mais rápida por ciclo de clock . As razões pelas quais o Sandy Bridge é mais rápido por ciclo de clock do que o Pentium 4 (Prescott é a última encarnação dele) são numerosas, mas possuem um controlador de memória inteligente de pré-busca, um controlador de memória na mesma matriz com CPU e ILP (Instruction Level Parallelism) mais alto contribuir para isso.
Paralelismo no nível da instrução significa basicamente que o processador examina as instruções e suas dependências e, se duas instruções não dependem uma da outra, a CPU pode começar a carregar dados para os dois ao mesmo tempo e possivelmente reordenar as instruções dos dados para um dos seguintes eles chega antes do outro.
Terceiro, algumas aplicações realmente se beneficiam muito bem de vários núcleos. Por exemplo, o Photoshop quase sempre prefere mais núcleos do que a frequência operacional. Ou seja. mesmo um quad-core lento quase sempre supera qualquer chip dual-core, e qualquer dual-core vence qualquer chip single-core. Os núcleos triplos são uma mistura, eles geralmente conquistam os núcleos duplos, mas nem sempre.
Geralmente os aplicativos que realizam o mesmo tipo de operações para muitos conjuntos diferentes de dados se beneficiam mais do paralelismo. Por exemplo, a compactação de vídeo ou a edição de fotos geralmente podem ser paralelizadas facilmente. Por outro lado, os jogos de computador provaram ser difíceis de paralelizar. Os gráficos neles, é claro, paralelizam muito bem, mas essa parte é executada na GPU, não na CPU. A física remanescente, a contabilidade do mundo dos jogos e as IA são paralelas com menos facilidade.
fonte
Atualmente, o fator mais importante não é a velocidade do processador, existem muitos novos recursos lançados desde que esse "fator de comparação" caiu em desuso.
Hoje você deve dar uma olhada em muitos fatores para inferir sobre o desempenho dos processadores. Coisas como:
Na verdade, quando quero comparar as velocidades do processador, consulte a marca de passagem das tabelas de benchmark de verificação de notebook . Os benchmarks, na minha opinião, são o melhor fator para medir e comparar a velocidade e o desempenho do processador.
fonte