Uma contagem de núcleos mais alta ou uma 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: 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.

Avanço
fonte
9
Tudo vai depender do que você deseja fazer nesse computador. Múltiplos núcleos são bons para algumas coisas, velocidades de clock mais altas para outras.
ChrisF 17/08/11
Pessoalmente, eu sei a resposta, mas estou perguntando isso por duas razões. O primeiro é ter essas informações no site (eu só as vi solicitadas em relação aos processadores dual ou quad core), e o segundo é tentar dar às pessoas uma idéia do que está por vir "no futuro" e mostre quais são as aplicações de ambos os lados da equação.
Breakthrough
3
Eu diria que, enquanto esta é uma boa pergunta para falar sobre enquanto toma uma cerveja, é praticamente não uma pergunta boa pilha de troca.
EBGreen 17/08
11
Existem muitas variáveis, que ifs e outros parâmetros + a tecnologia em andamento mudam para desenvolver uma resposta sucinta que será relevante por mais de um período específico de tempo. Este é um tópico interessante para um fórum ou blog, mas não como algo a ser definido como uma 'resposta'. Eu votei para fechar por esse motivo, então vamos começar as chamas !!!
precisa saber é o seguinte

Respostas:

12

Há 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 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 ":

Os desenvolvedores de software não podem mais confiar apenas no aumento da velocidade do relógio para acelerar aplicativos de thread único; em vez disso, para obter uma vantagem competitiva, os desenvolvedores precisam aprender como projetar corretamente seus aplicativos para serem executados em um ambiente encadeado. As arquiteturas com vários núcleos têm um único pacote de processador que contém dois ou mais "núcleos de execução" do processador, ou mecanismos computacionais, e oferecem - com o software apropriado - execução totalmente paralela de vários threads de software.

- Intel

James Mertz
fonte
Melhor resposta que eu já vi até agora, +1. Você sabe se é possível acelerar a criptografia / descriptografia com algum tipo de algoritmo paralelo (ou existe algo assim)?
Breakthrough
2

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.

surfasb
fonte
2

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:

  • o desempenho do processador não se resume mais à velocidade do relógio ou ao número de núcleos - outras partes do processador estão se tornando pesadas, à medida que a velocidade do relógio e a contagem de núcleos melhoram.
  • para a maioria dos usuários, o desempenho do processador não é nem o gargalo da garrafa. Se você estiver gastando 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 processador. Se você estiver assistindo ou editando material de filme de alta resolução, o desempenho do disco rígido será mais importante. Etc ...
Tomas Aschan
fonte
+1 por pensar um pouco e realmente apresentar explicações, mas gostaria de salientar uma coisa: sim, alguns navegadores colocam cada guia em um processo separado , mas isso acaba ocorrendo quando o processo falha. A maioria dos navegadores, no mínimo, executa cada guia em um thread separado, e os sistemas operacionais têm a capacidade de executar vários threads (do mesmo processo) em núcleos diferentes.
Breakthrough
O IE 9 faz o método de múltiplos processos. No entanto, acredito que eles usam um número definido de processos e compartilham todas as guias entre esses processos. Isso resulta em um número muito menor de processos do que o Chrome pode acabar, enquanto ainda significa que você perderá apenas algumas guias se tudo acontecer em um monte de tonalidades de Redmond.
Music2myear
Ah, e isso também depende do software. Embora o sistema operacional possa geralmente gerenciar o gerenciamento de tráfego e enviar threads em espera para os núcleos disponíveis (imagem mental do match.com ocorrendo dentro do meu silício), programas que são multithreaded (a maioria dos produtos Adobe Creative Suite e outros aplicativos suportados) , ferramentas modernas de desenvolvimento de multimídia) aproveitarão muito mais os recursos de um sistema com vários núcleos.
Music2myear 17/08/11
2

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.

Zds
fonte
1

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:

  • 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 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.

Diogo
fonte
Sim, mas para simplificar, vamos assumir que tudo o resto é igual (mesma quantidade de cache por núcleo, mesma largura de barramento de endereço, mesmo tamanho de palavra, etc ...). Os núcleos são exatamente iguais, é apenas a) quantos, ou b) quão rápido.
Breakthrough
Hum, a família e a geração de processadores não têm nada a ver com a velocidade do processador. Afinal, os processos Atom são muito mais novos que os P4s ou Core e Core2, mas ninguém jamais diria que são mais rápidos. Outras coisas que têm efeito mais direto na velocidade da CPU são o cache no dado, o número de registros, a arquitetura do chip, o tamanho das vias condutoras (processo de manufatura nm), recursos de operação de ponto flutuante etc.
music2myear
@ music2myear - Quando se refere à geração, estou falando de família ( superuser.com/questions/314757/… ). Na verdade Atom D525 são melhores do que um monte de Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo