A contagem de núcleos mais alta ou a velocidade de clock mais alta são mais benéficas para o desempenho de um computador? [fechadas]

16

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

Eu lembro apenas alguns anos atrás, eu tinha um bom processador Pentium 4 single-core. Fast-forward para hoje, e eu não acho que você pode até comprar um processador single-core (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? Suponhamos que estamos entrando em centenas de núcleos, todos funcionando 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 outro? Existem alguns processos que podem ser, mas atualmente não são (devido a razões técnicas) acelerados pelo aumento de seu paralelismo?

Suponha que o processador hipotético tenha exatamente o mesmo design principal (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.

    
por Breakthrough 17.08.2011 / 21:27

5 respostas

12

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

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

  2. O processador é usado para vários programas em execução ao mesmo tempo

A primeira situação é onde o processador 'speed' é mais importante, já que o usuário quer a capacidade de fazer cálculos com rapidez e eficiência. Essas situações são tipicamente para processamento intensivo de cálculo, ou seja, o cálculo de números primos para criptografia / descriptografia

O segundo é 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 "engarrafamento" entre si. No mundo de hoje, o usuário comum usará seu computador para vários programas por vez, tornando o processamento de vários núcleos uma coisa desejável.

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

* Existem alguns programas, e esperamos que logo mais sejam criados, onde múltiplos núcleos podem ser usados ao mesmo tempo. O futuro do software é encontrado com esta " Programação Paralela ":

Software developers can no longer rely on increasing clock speeds alone to speed up single-threaded applications; instead, to gain a competitive advantage, developers must learn how to properly design their applications to run in a threaded environment. Multi-core architectures have a single processor package that contains two or more processor "execution cores," or computational engines, and deliver—with appropriate software—fully parallel execution of multiple software threads.

-Intel

    
por 17.08.2011 / 22:21
2

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 é a rede da qual você faz parte.

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

A Intel agora permite que você alimente os 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.

    
por 17.08.2011 / 21:48
2

Como ChrisF menciona em um comentário, depende. Mas como respostas como essas não são realmente respostas, tentarei identificar alguns cenários em que um será mais benéfico do que o outro:

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

No entanto, você esqueceu uma das tarefas mais comuns realizadas nos computadores hoje: navegação. Vários navegadores populares abrem cada guia em um processo separado (o Chrome é o único que tenho certeza, pois é 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 os segmentos do SO e outras coisas), e seja tão rápido quanto se não houvesse outras abas / janelas do navegador abertas. Para as pessoas que navegam com várias guias abertas por vez, isso pode ser uma melhoria séria no desempenho sem a necessidade de criar 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 que um sistema single-core com um núcleo rápido é saber se você fará muitas coisas diferentes simultaneamente ou < em algumas coisas, mas pesadas, . Como isso vai diferir muito de usuário para usuário, assim será a resposta à sua pergunta.

As outras respostas também fazem 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ê está gastando seu tempo em aplicativos hospedados, como o Google Docs, a velocidade da sua placa de rede vai importar mais do que a velocidade do (s) núcleo (s) do processador. Se você estiver assistindo ou editando material de filme de alta resolução, o desempenho do disco rígido será mais importante. Etc ...
por 17.08.2011 / 22:01
2

Antes de tudo, as velocidades single-core não diminuíram tanto assim. A única razão pela qual a atual linha Sandy Bridge da Intel não ultrapassa os Pentium 4s single-core em termos de megahertz é que a Intel carece de concorrência, então eles não precisam forçar muito.

Segundo, a velocidade do clock não é tudo, mesmo em um único núcleo. Ao analisar o desempenho dos aplicativos, novamente no 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 pulso de clock que o Pentium 4 (Prescott sendo a última encarnação dele) são numerosas, mas possuem controlador de memória inteligente pré-busca, com controlador de memória no mesmo chip com CPU e maior O Paralelismo de Nível de Instrução (ILP) contribui 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 estiverem dependendo uma da outra, a CPU pode começar a carregar dados para as duas ao mesmo tempo e possivelmente reordenar as instruções dos dados. porque um deles chega antes do outro.

Em terceiro lugar, algumas aplicações beneficiam-se muito bem de múltiplos núcleos. Por exemplo, o Photoshop quase sempre prefere mais núcleos em relação à freqüência de operação. Ie. mesmo um quad-core lento quase sempre supera qualquer chip dual-core, e qualquer dual-core supera qualquer chip single-core. Os tri-núcleos são um saco misto, eles frequentemente conquistam os núcleos duplos, mas nem sempre.

Geralmente, aplicativos que fazem 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 naturalmente paralelizam muito bem, mas essa parte é executada na GPU, não na CPU. A física restante, a contabilidade do mundo dos jogos e os IAs são paralelos com menos facilidade.

    
por 17.08.2011 / 21:54
1

Atualmente, o fator mais importante não é a velocidade de clock do processador, há uma série de 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:

  • 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 de processador (2ª, 6ª, etc.) e, em seguida,
  • velocidade do clock do processador.

Na verdade, quando quero comparar as velocidades do processador, consulte passmark de notebookcheck tabelas 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.

    
por 17.08.2011 / 21:39