De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Cluster de Playstation 3

Colaboração: João S. O. Bueno

Data de Publicação: 26 de Outubro de 2007

Uma das características por vezes pouco enfatizadas de sistemas operacionais livres como o GNU/Linux reside no fato dos mesmos serem multi-plataforma. Isto significa que quando aparecem novas CPUs no mercado, após algum esforço de desenvolvimento no Kernel (o Linux em si),e algumas outras partes do sistema - que ultimamente tem sido financiado pelos próprios fabricantes das novas tecnologias de CPU, todo o sistema está plenamente funcional na nova plataforma.

Paralelamente, o sistema GNU, que implementa padrões Posix, como os Unixes proprietários, se presta muito bem a configuração de sistemas homogêneos, facilmente configuráveis (já que todas as configurações estão em arquivos texto), propícios a ambientes para processamento paralelo - como clusters e grids. Tendo em vista que computação de alta-performance é um dos objetivos sempre em vista dos desevolvedores do Linux em si, temos uma solução bastante apropriada para ambientes que requerem muito cálculo numérico, como simulações de vários tipos, renderização 3D, etc...

Tive a oportunidade de configurar no Instituto de Biologia da Unicamp um cluster de 12 máquinas Playstation 3. O cluster foi recentemente divulgado na mídia, de forma que variava desde um pouco técnica até uma abordagem mais sensacionalista. Acho interessante ter conhecimento de alguns fatos sobre o que está em operação lá.

O fato é que o Playstation 3, como qualquer videogame, é um sistema computacional completo. E sua CPU, extremamente apropriada para performance multimídia (renderização 3D em tempo real, decodificação de vídeos, codificação e de codificação de sons e imagens), é o processador CELL - desenvolvido em conjunto pela Sony, Toshiba e IBM. Enquanto a Sony precisava de uma CPU com a capacidade necessária para tentar se manter a frente no mercado de videogames domésticos, a IBM aproveitou o desenho da CPU para que esta funcionasse também para processamento numérico de alta performance e pudesse ser vendido para o mercado de super-computadores científicos.

Pronto o CELL, a IBM oferece uma versão especializada para processamento científico do mesmo, em servidores dedicados com dois CELL por placas mãe auto-contidas (blades) para serem montadas num rack dedicado. Cada uma dessas placas-mãe custa vários milhares de dólares. Como a mesma CPU está presente nos Playstation 3, o volume de produção é grande, o que faz com que o custo da CPU em si seja menor. O "efeito colateral" é que como o sistema GNU-Linux pode ser instalado nos playstation, tem-se uma máquina com processador CELL a preço bem inferior aos praticados pela IBM para seus servidores, ao custo de uma chance maior de falha de hardware, limitações de memória física (os Playstation contam com apenas 512MB de RAM), e mesmo algumas limitações na CPU, já que a Sony disponibiliza oficialmente para os Playstations executando GNU/Linux apenas 6 das 8 unidades de processamento multimídia (SPEs) presentes no CELL, ou seja, 75% a capacidade total da CPU.

A CPU CELL em si é composta de um núcleo PowerPC de 64 bits - ou seja, a mesma arquitetura, do ponto de vista de programação, que era usada pelos computadores Apple Macintosh até a série G5 e hoje é usada pela IBM justamente como plataforma para servidores e clusters de alta performance. Agregados em torno desse núcleo PowerPC se encontram oito unidades de processamento multimídia, chamadas de SPE's (Synergistic Processing Elements), capazes cada uma de executar simultaneamente até 8 operações de Ponto Flutuante de 32 bits por ciclo - e a CPU roda a 3.2GHz, resultando em um máximo de 25 Bilhoes de operações de ponto flutuante por segundo em cada SPE. Além disso, as SPEs introduzem um novo modelo de utilização do cache primário (L1), em que os dados e código a serem utilizados são carregados explicitamente da memória RAM. Resumidamente isso implica em mais trabalho para o programador de um lado,e de outro, a certeza de uma operação muitas vezes mais rápida que uma CPU convencional ao tornar possivel evitar completamente os "cache misses" - ou seja, topar, no meio da execução de um laço otimizado de cálculo com um dado que tem que ser recuperado da memória RAM, que é centenas de vezes mais lentas que o cache primário.

A IBM tem interesse em que seja possível tirar o máximo de proveito desta CPU, portanto disponibiliza como Software Livre um kit de desenvolvimento que permite gerar e simular código para o CELL. Com isso, qualquer aplicação que faça uso intensivo de cálculo numérico pode ser modificada, pelos seus desenvolvedores, para tirar proveito integral desta CPU.

È importante notar que aplicações proprietárias, geralmente disponibilizadas apenas pré compiladas pelas empresas que os desenvolvem, tem uma chance muito menor de serem modificadas para tirarem proveito desta CPU do que aplicações livres, em que os usários finais tem sempre a possibilidade de realizarem as adequações eles mesmos, ou contratatarem serviços de programação para efetuarem essas modificações.

È importante frisar que a solução de clusters para computação de alta performance é bem documentada por uma iniciativa do governo federal em http://guialivre.governoeletronico.gov.br/guiacluster/

Na Biologia da Unicamp - no projeto da Profª Drª Mónica Pickholz, temos em operação 12 máquinas Playstation 3, configurados com Linux Fedora Core 6 - versão mais apropriada para utilização das ferramentas disponibilizadas pela IBM, executando o aplicativo livre NAMD para simulações moleculares.

Em suma, com o uso de uma pilha de soluções bem documentadas e abertas, e, em se tratando de software, livres para uso e modificação, é possível montar um ambiente para computação científica ou renderização 3D de alta performance com hardware pronto para consumo doméstico, com um custo benefício dezenas de vezes maior do que aplicações mais conservadoras.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de João S. O. Bueno