Enviado por Avelino de Almeida Bego (avelino·begoΘgmail·com):

“Para continuar melhorando o desempenho dos computadores, os fabricantes se voltaram para a adição de mais “núcleos”, ou unidades de processamento, em cada chip, deixando de lado a antiga corrida pela aceleração pura dos processadores.

(…) Muitos especialistas defenderam que, para aproveitar a geração multicore seria necessário reinventar a computação, incluindo reescrever as linguagens de programação e os sistemas operacionais para permitir tirar proveito dos múltiplos núcleos em um único processador.

Mas um grupo de pesquisadores do MIT, nos Estados Unidos, acaba de demonstrar que pode não ser necessária tal revolução, pelo menos a curto prazo. Especificamente no caso do sistema operacional Linux, os pesquisadores demonstraram que a arquitetura de software atual poderá sobreviver muito bem a um aumento crescente de núcleos dentro de um mesmo processador – pelo menos até 48 núcleos por processador.

Para ter uma noção de como o Linux poderá rodar nos chips do futuro, os pesquisadores do MIT desenvolveram um sistema no qual oito processadores de seis núcleos simulam o funcionamento e o desempenho de um processador de 48 núcleos.

Usando esta plataforma, eles testaram uma bateria de aplicativos e testes de benchmarking que demandam fortemente o sistema operacional.

Em seguida, eles foram ativando os 48 núcleos, um por um, e observaram as consequências sobre o funcionamento do sistema operacional e sobre o seu desempenho. Num determinado ponto, a adição de mais núcleos começou a tornar o sistema operacional mais lento.

Mas, segundo os pesquisadores, o problema teve uma explicação surpreendentemente simples e pôde ser resolvido igualmente sem complicações.

Em um sistema multicore, os múltiplos núcleos muitas vezes executam cálculos que envolvem os mesmos dados. Enquanto os dados são necessários para algum núcleo, eles não podem ser apagados da memória. Assim, quando um núcleo começa a trabalhar com os dados, ele incrementa um contador central; quando ele termina a sua tarefa, ele decrementa o contador.

O contador, portanto, mantém uma contagem do número total de núcleos usando os dados. Quando a contagem chega a zero, o sistema operacional fica sabendo que pode apagar os dados, liberando memória para outros processos.

Conforme aumenta o número de núcleos, contudo, tarefas que dependem dos mesmos dados são divididas em pedaços cada vez menores. Os pesquisadores do MIT descobriram que, a partir daí, os núcleos começam a gastar tempo demais incrementando e decrementando o contador e acabam tendo menos tempo para realizar seu trabalho.

Depois de fazer uma alteração simples no código do Linux, para que cada núcleo mantivesse um contador local, que apenas ocasionalmente era sincronizado com o contador dos outros núcleos, o desempenho geral do sistema melhorou muito, e o acréscimo de núcleos voltou a melhorar o rendimento total do sistema.(…)” [referência: inovacaotecnologica.com.br]