O Ubuntu é otimizado para CPUs multicore?

33

O Ubuntu faz uso de CPUs multicore (como o Windows 7 costuma fazer)?

Em outras palavras, é multitarefa otimizada para que os usuários se beneficiem de mais de 4 processadores principais?

Paulo
fonte
7
A palavra "otimizado" faz pouco ou nenhum sentido nesse caso. O kernel do Linux suporta CPUs multicore, portanto o Ubuntu também. A "otimização" é dada pelo nível de qualidade desse "suporte".
Gd1
2
Se você deseja obter o melhor desempenho, execute a versão de 64 bits do Ubuntu, que pode ser mais rápida em algumas tarefas.
Anônimo
@ Anonymous Isso não seria porque ele pode utilizar mais RAM? Os 32 bits podem usar apenas tantos GB de RAM (incluindo todas as placas de vídeo, etc.), mas precisam de CPUs e sistemas operacionais especiais.
Anonymous Penguin

Respostas:

45

Sim, o Ubuntu é otimizado para CPUs multicore e existe há muitos anos.

Alguns antecedentes :

"A versão 2.0 (do kernel do Linux) foi lançada em 9 de junho de 1996. Havia 41 lançamentos na série. O principal recurso do 2.0 era o suporte a SMP (ou seja, multiprocessamento simétrico em um único sistema) e suporte a mais tipos de processadores . "

imbaer
fonte
4
Basicamente, o Linux tinha SMP antes do Abacus. Ele ainda tem suporte a SSMP2, mas nunca saberemos o que é isso até que a tecnologia alcance o Linux.
Luis Alvarado
Claro que melhor que o windows! ;)
Paulo
2
@ Michael K, para constar, o kernel do Windows NT tem um bom suporte SMP há muito tempo. Se os aplicativos são inteligentes o suficiente para tirar proveito de vários processadores ou núcleos é outra questão.
Mircea Chirea
25

O Ubuntu é um sistema operacional, uma distribuição Linux. Um sistema operacional consiste em vários componentes de software, como um kernel, bibliotecas , serviços / daemons, aplicativos etc.

O Ubuntu usa o kernel do Linux, que utiliza o multiprocessamento simétrico (SMP) e vários núcleos. Ele se adapta muito bem a sistemas de núcleo único de baixo custo e CPU única a clusters de supercomputadores de última geração com milhares de CPUs com vários núcleos.

O Ubuntu é fornecido com centenas de bibliotecas, algumas das quais são multithreaded e thread-safe, outras não. Em alguns casos, faz sentido que eles sejam multiencadeados; em outros, não é aplicável, geralmente possível ou não faz muito sentido.

O Ubuntu é fornecido com centenas de aplicativos, alguns são codificados para fazer uso de CPUs com vários núcleos, outros não. Em alguns casos, faz sentido codificar o aplicativo como tal, em outros casos não é possível. Nem todos os aplicativos que poderiam ou deveriam usar vários núcleos o fazem.

Exemplo: faz sentido que um jogo use o multi-core para gráficos, áudio, rede, física, etc. Mas não faz sentido que uma calculadora, ferramenta de captura de tela, suduko ou editor de menu reconheça o multi-core.

Anônimo
fonte
"seguro para o comércio"? Você quis dizer thread-safe?
Flimm
10

O kernel do Ubuntu suporta várias CPUs há muito tempo, não importa se suas CPUs com vários núcleos ou múltiplos em um sistema, elas serão tratadas perfeitamente.

Porém, é preciso estar ciente de que, apenas porque um sistema tem suporte para várias CPUs / núcleos e esses estão presentes em um sistema, isso não significa que seus aplicativos serão executados automaticamente mais rapidamente. Você é dito muito ao contrário hoje em dia, é uma coisa de marketing.

Para que um aplicativo aproveite várias CPUs / núcleos ao mesmo tempo, ele precisa ser construído para compartilhar a carga do processo sobre essas CPUs / núcleos.

Ou seja: digamos que você esteja executando algo tão simples como wordpadno Windows e que esteja abrindo um arquivo de texto enorme , o tempo de carregamento será o mesmo, se você tiver 1 CPU ou 1 zilhão de CPUs (para CPUs com a mesma velocidade de barramento e arquitetura semelhante) ofc).

O mesmo acontece com o Linux Kernel e a distribuição Ubuntu, se um aplicativo for construído para um único thread, não haverá mais nada de CPUs.

Uma coisa que os sistemas operacionais estão fazendo hoje em dia para otimizar o carregamento de aplicativos em várias CPUs / núcleos é a capacidade de executar um processo em um núcleo que não é tão carregado quanto o outro, equilibrando a carga e garantindo seus múltiplos núcleos a utilização é ótima. Difícil na prática, a utilização dessa técnica traz apenas pequenas melhorias na velocidade.

Se você realmente deseja ver seus núcleos brilharem, precisa fazer uma utilização pesada da CPU com programas que suportam multiprocessamento simétrico , como edição de vídeo, etc.

Bruno Pereira
fonte
1

Sim, funciona perfeitamente para mim e tenho vários processadores e hyper-threading, que esqueci o que isso significa, mas tenho certeza que significa algo sobre o fato de cada processador poder executar vários threads, o que combinado com o fato de cada processador ter 2 núcleos, parece ser um problema. O único problema que encontrei até agora é que os programas no ubuntu tendem a congelar. Eu fiz isso acontecer com menos frequência, diminuindo o swappiness, pois tenho 6 GB de RAM.

barefoot138
fonte
O comentário que você faz sobre os programas suspensos pode ser melhor colocado em uma pergunta sobre isso. Se você não conseguir encontrar as perguntas apropriadas sobre os programas suspensos, faça você mesmo e responda - tudo bem no askubuntu. Estou não sugerindo que você remover os comentários aqui - só que você compartilhar o conhecimento que você aprendeu em algum lugar onde possa ser mais facilmente encontrados.
John S Gruber