Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
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.
Veja a relação completa dos artigos de João S. O. Bueno
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
- Currently 3.03/5
- 1
- 2
- 3
- 4
- 5
Avaliação:
3.0 /5
(497 votos)
Opinião dos Leitores
Fábio
05 Dez 2007, 02:18
Pode-se montar um cluster para rodar jogos pesados?
marcelo
28 Nov 2007, 21:57
karai
Dorian
26 Out 2007, 12:44
Muito bom, parabéns pelo feito! Havia lido uma notícia a respeito e gostei de saber mais detalhes. Também achei muito interessante o link do "Guia Cluster" do governo que você indicou. Forte abraço.
jux
26 Out 2007, 11:11
Parabéns pelo artigo, ele é muito interessante, principalmente nos dias de hoje.
Gostaria de saber se tem como você disponibilizar alguns detalhes de configuração e softwares utilizados.
bvmagaldi
26 Out 2007, 09:19
Parabéns João S. O. Bueno!!
Parabéns pelo artigo , embora ainda pouco técnico, por tocar em assunto tão pouco comentado aqui no Dicas-L: cluster e computação de alto desempenho em território brasileiro.
Em meio a uma saraivada de artigos versando sobre aplicativos front-end, high level, receber artigo sobre cluster "alternativo" montado por e para brasileiros é sensacional.
Não me leva a mal, sem xenofobismos ou patriotismos baratos e sem sentido. Ocorre que computação de alto desempenho, em terras brasileiras, feito por brasileiros, construído de forma alternativa, ainda não é assunto dos mais corriqueiros, infelizmente.
parabéns mais uma vez pela iniciativa!!
Bruno Buys
26 Out 2007, 09:04
Excelente. Até agora eu só tinha conseguido ler notícias superficiais sobre esse cluster.
João, porque o fedora é mais apropriado?