Foi demonstrado em outras questões que, devido ao estado dos aplicativos de computador, os processadores com vários núcleos sofrem com retornos decrescentes. Este ainda é o caso no mundo de hoje?
A maioria dos novos aplicativos adota multiencadeamento e, assim, tira proveito de ter vários núcleos? Caso contrário, os sistemas operacionais mais recentes de 64 bits ajudam a tirar proveito dos núcleos, atribuindo tarefas / processos a diferentes núcleos? Ou os processadores com vários núcleos ainda continuam a sofrer os mesmos retornos decrescentes (ou similares)?
Faça backup de quaisquer reivindicações com referências.
cpu
multi-core
community-faq-proposed
rishimaharaj
fonte
fonte
Respostas:
Depende muito do que você faz.
Para o Word, Excel e Minesweeper regulares, e qualquer outra coisa que sua mãe use, um núcleo ainda é suficiente e mais de dois é um exagero. Esses tipos de aplicativos passam a maior parte do tempo ociosos, aguardando a entrada do usuário.
Para jogos, você se beneficiará de pelo menos dois. Depois disso, depende do jogo. Teoricamente, você pode executar cada oponente da IA em um segmento separado, mas a lógica central do jogo não pode ser facilmente paralelizada - você precisa de um local onde todos os resultados sejam reunidos para formar um estado coerente do jogo. Portanto, geralmente há um segmento "principal" em que todos esperam.
Para multimídia, processamento de números reais e ciência, todos os núcleos contam. Essas são tarefas inerentemente multithread ou que podem ser facilmente executadas, e os desenvolvedores têm um forte incentivo para tirar proveito de todo o poder de processamento disponível.
Usuários avançados gostam de multitarefa. Torrent, VirtualBox, captura de tela, vídeo, minecraft e navegação na web, tudo funcionando ao mesmo tempo. Então, você se beneficiará de que cada aplicativo com fome de CPU tenha seu próprio núcleo. Hoje em dia é popular transmitir ao vivo seu jogo. Portanto, são dois núcleos para o jogo, pelo menos mais um para o encoder, e pelo menos mais um para o resto do sistema. São pelo menos 4 núcleos.
fonte
Receio que a resposta ainda seja, como sempre foi, "depende do que você está fazendo".
Sim, há retornos decrescentes da adição de mais e mais núcleos, e sempre haverá se você executar apenas um aplicativo por vez .
Mesmo em um aplicativo multiencadeado bem elaborado, muitas das tarefas segmentadas são realizadas para aguardar os componentes mais lentos da máquina - disco rígido, rede - sem afetar o desempenho aparente para o usuário. Estes não podem ser melhorados por uma maior paralelização, pelo que qualquer limite teórico de velocidade é inacessível para fins práticos.
Vale a pena notar que existem poucos aplicativos "grandes" que não são multiencadeados (basta verificar o equivalente ao Gerenciador de Tarefas do seu sistema operacional, ele poderá informar quantos pertencem a cada processo - meu Firefox atualmente usa 31, por exemplo )
Obviamente, a execução de vários aplicativos não interdependentes não é tão restrita por esses limites. À medida que você adiciona mais núcleos, você pode executar mais aplicativos simultaneamente com pouca queda no desempenho do processamento (no entanto, o desempenho do disco rígido, da rede, etc.) não aumenta tão bem. Na prática, mesmo isso também está sujeito a retornos decrescentes, pois há uma sobrecarga inevitável no gerenciamento da distribuição do trabalho entre núcleos, pipelines de comunicação e assim por diante.
Por exemplo, esta publicação de Tom's Hardware (de 2009) tenta analisar o desempenho de alguns processadores com vários núcleos em aplicativos simultâneos - executando um jogo ao lado de uma verificação do AVG (ambos provavelmente com vários threads). Todos os processadores quad, tri e dual core têm desempenho semelhante apenas com o jogo, mas adicionam a verificação simultânea do AVG e o desempenho (medido pelo FPS médio) cai 22%, 40% e 59%, respectivamente.
Portanto, enquanto um quad core não ofereceu aumento de desempenho em relação ao dual core ao executar um aplicativo intensivo, assim que outra tarefa intensiva apareceu, acabou tendo o dobro de desempenho. Infelizmente, não consigo encontrar muito mais que investiga o quão bem isso é dimensionado com mais núcleos e tarefas mais intensivas.
E então você deve observar os recursos modernos de processadores como o Turbo Boost da Intel / Turbo Core da AMD. Esses recursos específicos permitem que um processador de vários núcleos estacione núcleos (coloque-os em um modo mais lento, de baixo consumo de energia) e use a energia disponível para fazer overclock dos núcleos que permanecem ativos - permitindo que o processador se otimize para fornecer o máximo de poder de processamento possível para o número de tarefas apresentadas.
fonte
Para adicionar combustível ao fogo, li aqui que o Android é realmente mais lento por ter mais de um núcleo:
fonte
Claro, isso depende do que você está fazendo, mas sim, há retornos decrescentes.
Aplicativos simples e cotidianos, como processamento de texto ou navegação na Web, beneficiam-se pouco de ter mais de dois núcleos de processador. Os aplicativos científicos de computação e jogos tendem a fazer melhor uso de quatro (ou mais) núcleos e / ou capacidade de hyperthreading, pois tendem a ser projetados para aproveitar ao máximo o hardware moderno, mas o benefício de mais de quatro núcleos é limitado.
Além disso, nem tudo é vinculado à computação. A adição de núcleos de processador não ajudará se sua carga de trabalho estiver vinculada a E / S. Se você já instalou um SSD para substituir um disco rígido mecânico, provavelmente saberá que o desempenho da computação diária é limitado com mais frequência do que o armazenamento do seu computador. Em ambientes de servidor ocupados, onde um grande número de núcleos é usado para permitir que o sistema lide com um grande número de usuários e solicitações simultaneamente, matrizes de disco especializadas, SSD e outros sistemas de armazenamento são usados para garantir o máximo desempenho sob carga.
fonte