Wednesday, January 30, 2013

BOINC, Supercomputadores e Computação Distribuída

Olá a todos.

 Para você, caro leitor, o que é um super computador?

Não, não é um Core i7 com placas de vídeo de 2GB em Crossfire e um SSD de mais de 128GB.

Supercomputadores são computadores de alta capacidade de processamento e armazenamento. Eles possuem várias aplicações. Por exemplo, o ENIAC, a sua época (década de 40), era um super computador, que conseguia fazer 5 mil operações matemáticas por segundo e armazenar incríveis 198 bits, números irrisórios para a atualidade. A principal função do ENIAC era fazer cálculos a respeito de trajetórias balísticas, aproveitando o contexto militar no qual estava inserido.Graças a ele, cálculos que eram executados em 12h conseguiam ser feitos em menos de um minuto.

Seguindo mais para os dias de hoje, as principais aplicações dos supercomputadores encontram-se na meteorologia e na medicina. Na meteorologia, os supercomputadores são usados para a criação e execução de complexos modelos matemáticos que visam a previsão do tempo, além do estudo de previsões ambientais. O CPTEC (Centro de Previsão do Tempo e Estudos Climáticos), instituição filiada ao INPE (Instituto Nacional de Pesquisas Espaciais),  possui o Tupã, que possui capacidade de processamento de 258 TeraFLOPS.

Quanto a medicina, vale fazer uma breve explicação técnica sobre proteínas para destrinchar a função dos supercomputadores. Uma das substâncias que regem o funcionamento do nosso organismo são as proteínas, que são extensas cadeias de aminoácidos (que por sua vez são compostos baseados em carbono, oxigênio, hidrogênio e nitrogênio, simplificadamente). As proteínas, por serem moléculas muito grandes, podem assumir várias disposições espaciais, de acordo com as condições do ambiente no qual ela se encontra.

Para traduzir em miúdos, imaginemos uma "corrente inteligente", um monte de elos de metal unidos que podem modificar a sua própria organização.Podemos guardar uma corrente de várias maneiras.Podemos enrolá-la em torno de uma roda de carro velha, esticadas, dobradas...

Se quisermos fazer com que a corrente tenha um fim prático (por exemplo, conectar dois carros, ou alguma peça a um guindaste), precisamos usar cadeados.As proteínas possuem ligações entre trechos de sua molécula, que ajudam a manter sua forma, para algum fim.Pensemos nessas ligações como os cadeados.

Na Química, fatores como alterações de pH, presença de determinadas substâncias ou até aquecimento/resfriamento promovem a quebra dessas ligações.Observa-se aí que, a quebra das ligações ou a abertura dos cadeados, no nosso modelo hipotético, tira a utilidade da proteína.

Outra metáfora que podemos usar para descrever o comportamento das proteínas é a de uma chave (proteína) de Gálio, que deve abrir uma fechadura (ativar uma enzima). O Gálio é um metal com ponto de fusão extremamente baixo, de cerca de 30º C.Imagine uma chave feita desse material.Quando sólida, a chave poderia facilmente abrir uma fechadura, mas se qualquer um de nós a segurasse por muito tempo, teríamos Gálio líquido nas mãos, pois a temperatura corporal oscila entre 36º C e 37º C.Ou seja, o aquecimento da chave faz com que ela não consiga abrir a fechadura.

Esses e outros fatores podem ser previstos, ou melhor, calculados.Não são cálculos simples, mesmo para um computador relativamente bom (o Core i7 do qual falei). Para isso, são necessários os supercomputadores, que não são baratos.O Tupã, por exemplo, custou R$ 50 milhões.Isso torna o uso de um super computador algo relativamente inacessível a centros de pesquisa menores.

A solução encontrada para isso se chama computação distribuída.Basicamente, ao invés de termos vários computadores concentrados em um único local, existem milhares de computadores espalhados mundo afora, que, ao serem conectados a um servidor central, atuam como um só.Um dos exemplos de "servidores centrais" de computação distribuída são os do sistema BOINC, desenvolvido pela UC Berkeley, que permite a centralização de vários projetos, que usam do tempo ocioso de computadores para processar os dados que um supercomputador teria de processar.

Existem vários projetos nos quais podemos contribuir.Sobre as proteínas as quais eu comentei, um dos projetos principais é o folding@home (lê-se folding at home).Para os que gostam de coisas mais "paranormais", temos o SETI@home (onde SETI é Search for Extraterrestrial Intelligence), promovido através do BOINC.

Mais para frente, comentarei sobre o que é um FLOP e sobre o uso de PS3s para a formação de clusters.


Até a próxima.



No comments:

Post a Comment