Zen e a arte de programar dezenas de núcleos
Pré-IDF San Francisco 2007: Boa parte do dia da imprensa com o grupo de Pesquisa e Desenvolvimento da Intel foi dedicada ao desafio de como criar programas tirando o máximo proveitos dos chips com mais de um núcleo, onde a lógica não é mais tão linear e sim paralela.
Para isso, a Intel desenvolveu uma estratégia que envolve os três aspectos da programação paralela, ou seja, o ensino de novas técnicas, o suporte à programação e a pesquisas de novas ferramentas, compiladores e linguagens.
O ensino está sendo suprido pelo chamado Intel Software College, que incentiva e apóia cursos de programação paralela nas faculdades e hoje atende mais de 280 universidades, podendo chegar a 400 no final do ano.
O suporte à programação segue o esquema tradicional da empresa, que oferece uma boa variedade de compiladores, ferramentas de programação e de ajuste fino para maximizar seu desempenho. A grande novidade dessa à rea foi o anúncio da versão 2.0 do TBB (Intel threading building blocks) for Open Source. O site threadingbuildingblocks.org é dedicado ao suporte de programação em C++ para a comunidade de software livre. Outro site que entrou no ar desde o inÃcio dessa semana é o Whatif.intel.com, ponto de encontro onde os programadores podem ter contato e trocar informações com os engenheiros da Intel.
O brinde de lançamento do site é a disponibilidade de uma versão preliminar de um compilador C++ com suporte a uma tecnologia que a Intel chama de STM (Software Transactional Memory), um método para lidar com processos concorrentes em sistemas multi-threaded. Todo esse esforço é para facilitar a vida do programador.
Tive a oportunidade de falar sobre isso com Jerry Bautista, diretor de gerenciamento de tecnologia e um dos pais do teraflop processor. Segundo Bautista, a interação de hardware e software nessa nova realidade de múltiplos núcleos está sendo um processo de desenvolvimento contÃnuo que acompanha o próprio desenvolvimento dos chips multicore, que começou com apenas dois núcleos e agora caminha para dezenas deles.
Bautista afirmou que o esforço de seu grupo é para que não existam diferenças fundamentais entre programar para dois ou dezenas de núcleos — ou até mais. Sob esse ponto de vista, ele acredita que a Intel está se dando melhor que, por exemplo, a IBM/Sony com seu processador Cell Broadband Engine (usado no Playstation 3), que exige um enorme esforço de programação para tirar proveito de todos os oito núcleos.
Quando perguntei se a Intel chegou a considerar a possibilidade de lançar um chip com vários núcleos logo de cara, Jerry me disse que sim, mas preferiram um caminho mais seguro, que seria a criação e o domÃnio da tecnologia de um chip dual core para depois pensar em mais núcleos. Pelo visto, seu trabalho vai bem, obrigado.


[...] Zen e a arte de programar dezenas de núcleos [...]