Qual é a diferença entre o proc multicore e o sistema multiproc?

17

Eu me pergunto qual é a diferença entre um computador dual core e um computador com 2 processadores na placa-mãe. Eu acho que é algo relacionado com os threads mas não entendo muito bem ..

    
por bAN 26.07.2009 / 10:48

5 respostas

18

Múltiplos processadores permitem que o seu computador faça literalmente duas coisas ao mesmo tempo (em vez de aparentemente fazer duas coisas ao mesmo tempo, mas na verdade apenas trocar entre tarefas de forma extremamente rápida).

Vários núcleos são iguais. A vantagem de múltiplos núcleos em múltiplos processadores é que eles compartilham alguns bits da CPU, e. o cache de segundo nível, que possibilita que eles trabalhem de maneira ainda mais eficiente se tiverem alguns dados compartilhados. Isso os torna muito mais baratos de fabricar. Um único processador dual-core também ocupa menos espaço do que dois processadores single-core, o que é um fator importante nos dias de hoje, com todos mudando para laptops.

Pode haver algumas diferenças de desempenho, mas nada é provável que você perceba.

    
por 27.07.2009 / 05:03
11

Veja esta imagem que mostra a diferença entre Multi Processor, Hyper Threaded e Multi Core:

    
por 23.11.2010 / 23:08
3

Você deve começar com Multi-core e Multithread artigos na Wikipedia.

  • Um começo mais suave: A diferença entre Programação Multithreaded e Multicore
  • Mais orientado para hardware - Desmistificando multithreading e multi-core
por 26.07.2009 / 10:52
2

Bem, trata-se de redimensionar horizontalmente em vez de verticalmente. Antigamente, eles usavam a CPU de maneira mais rápida e rápida. Com o tempo, a velocidade do CPU aumentou de apenas um punhado de megahertz para super velocidades de até 3 gigahertz. No entanto, quando a velocidade de 3 gigahertz foi atingida, os fabricantes de CPU descobriram um limite para o quão longe eles poderiam aumentar a velocidade em um único núcleo de CPU.

Enquanto essa corrida de velocidade estava acontecendo, para aqueles aplicativos que precisavam de mais potência (como servidores e farms de renderização CGI), as placas-mãe de CPU com vários soquetes foram introduzidas. Isso permitiu que mais de um processador (geralmente dois) fosse colocado na placa-mãe. Sistemas operacionais que, quando capazes de utilizar múltiplas CPUs de uma só vez, poderiam rodar softwares que aproveitassem esse recurso distribuindo a carga por essas duas CPUs, aumentando a velocidade de execução.

Avance rapidamente para o dia atual. O limite de velocidade da CPU é um pouco alcançado e, em vez de ser dimensionado verticalmente (tornando-o mais rápido), os fabricantes de CPU estão começando a escalar horizontalmente colocando vários núcleos em um único chip. Atualmente chips dual core são muito comuns e em breve os quad core serão o padrão. Agora imagine que você colocou dois núcleos quad em uma única placa-mãe. Isso significaria que o sistema operacional teria acesso a 8 CPUs, todas rodando a 3 gigahertz.

Além dos processadores multi-core, existe também um CPU dual core 'falso' que usa uma tecnologia conhecida como 'hyper-threading'. Com hyper-threading a CPU emula a presença de duas CPUs quando existe na realidade apenas um núcleo real presente. A CPU sabe como usar o que normalmente seria o tempo de inatividade, agendando instruções de uma maneira específica, ganhando mais eficiência.

    
por 26.07.2009 / 13:17
1

De uma perspectiva de desenvolvimento de software, há relativamente pouca diferença.

Alguns aplicativos multi-threaded escritos incorretamente podem acidentalmente trabalhar em um processador multi-core, mas não em uma placa-mãe multiprocessador, mas eu não perderia muito sono com isso, já que ... bem ... nós re falando software escrito incorretamente.

A principal diferença entre os dois cenários para o mesmo número total de núcleos disponíveis (por exemplo, 1x processador 4-core vs. 2x processador 2-core) é que, no caso do cenário multiprocessador, normalmente há um maior largura de banda de memória agregada. Isso significa que, para qualquer carga de trabalho intensiva de memória, você pode estar melhor com o último. No entanto, observe que as primitivas de bloqueio podem na verdade ser um pouco mais lentas (dependendo da implementação do hardware), portanto, os algoritmos que usam muita sincronização podem ter um desempenho pior no último.

Mesmo assim, eu não me preocuparia muito com a diferença, porque se você trabalha em uma área onde essa diferença é importante, então você provavelmente já sabe sobre ela (conhecimento específico do domínio).

    
por 26.07.2009 / 11:17