Meio Bit » Baú » Indústria » A indústria de software está longe da maturidade para processadores com vários núcleos

A indústria de software está longe da maturidade para processadores com vários núcleos

03/02/2007 às 14:19

A indústria de software sempre corre atrás da indústria de hardware, tornando-os obsoletos em seguida. É o ciclo do "mais e mais" que tanto conhecemos. Cria-se um hardware poderoso e software básico para usá-lo. Os engenheiros de software, analistas de sistema e programadores estudam novas formas de fazer aquele mesmo hardware funcionar, melhorando o código e otimizando. Mais funcionalidades são agregadas e o hardware torna-se impróprio.

Por isso diz-se que software é muito mais complicado que o hardware, dependendo da situação. A nVidia foi uma empresa que provou como investir em drivers compensava: com 3 equipes fazendo melhorias contínuas, existem casos de melhorias de 100% ou mais em performance. Isso apenas manipulando o micro-código do processador gráfico, extraindo o máximo da arquitetura.

Mas e se o software não faz uso do que o hardware oferece? Veja o que acontece quando um programa não foi construído pensando-se em dois ou mais núcleos.

A Techsmith usa CODECs de terceiros para gerar os arquivos multimídia como o usado no primeiro screencast sobre SVS. Empresas como Real e LeadTools fornecem kits de desenvolvimento para que empresas criem soluções para seus usuários, mas sem a necessidade de criar todo o ciclo de desenvolvimento do software.

Mas estou constatando cada vez mais que ainda estamos longe do software que fará uso pleno de 4 processadores. A imagem abaixo mostra uma das minhas experiências com a conversão para FLV, usando Variable Bit Rate (VBR) com 2 passes.

Processadores como o Cell da IBM, com oito núcleos, só terão seu poder de processamento destravado quando compiladores e frameworks de programação fornecerem esse suporte de forma automática. O mesmo serve para os processadores de 4 núcleos da AMD e IBM. Simplesmente não haverá software para fazer uso eficaz do processamento.

O uso jamais passou de 53%. E a segunda CPU ficou bastante ociosa. Imagine trabalhar com 4 CPUs?

Será necessário uma nova geração de compiladores e frameworks sérias de desenvolvimento como "Java Octopussy" ou ".Net Crazy 8" para que o desenvolvedor escreva o código e eles façam esse gerenciamento de forma automática, junto com o a micro-programação dessas CPUs para otimizar o desempenho e usar todo o potencial latente.

Se a migração do 32 bits para 64 ainda está na adolescência, saltar para 4 núcleos esse ano e 8 em dois anos, não parece ser a melhor saída. Com o aquecimento Global finalmente mostrando seus dentes e o relatório da ONU batendo o martelo, a indústria de tecnologia deveria responder com eficiência e melhoria do que já possuímos.

relacionados


Comentários