98° artigo publicado
98° artigo publicado(segunda-feira, 20.06.2011)
Entenda o que são os supercomputadores
Nesta semana, o supercomputador Watson, da IBM, foi premiado como Personalidade do Ano pelo Webby Awards, conhecido como o "Oscar da internet". O supercomputador da IBM venceu, em fevereiro deste ano, dois humanos em um programa de perguntas e respostas na TV americana, o Jeopardy. O Watson é composto por 90 computadores conectados e 16 TB de memória RAM. Mas você sabe o que são supercomputadores, qual a capacidade de processamento dos mais poderosos e como vai o Brasil nessa área? Veja como funcionam essas supermáquinas, que levam horas para fazer cálculos complexos que levariam anos em PCs comuns.
1-O que é um supercomputador?
Basicamente, um supercomputador é um computador cujo desempenho é extremamente grande. A velocidade de processamento de uma máquina dessas supera em milhares (às vezes milhões) de vezes a de um computador doméstico. Ele também precisa ter uma capacidade de memória absurdamente superior para dar conta da enorme quantidade de dados apresentados na entrada e depois produzidos na saída. Por fim, a maioria dos supercomputadores usa um tipo de processamento de informação chamado de processamento paralelo, o que quer dizer que pode calcular várias coisas ao mesmo tempo.
Embora essa capacidade de processamento possa parecer fútil, os supercomputadores são bastante úteis. Cálculos e simulações científicas que poderiam levar anos podem ser feitas em questão de dias ou mesmo horas. Por conta disso, os supercomputadores têm lugar cativo em centros de pesquisa, sejam elas aeroespaciais, militares, de física, química e medicina.
Por exemplo, já notou que as previsões de tempo hoje são muito mais precisas do que há trinta ou mesmo vinte anos? Isso ocorre porque os institutos de meteorologia e clima não mais tentam “adivinhar” o que vai acontecer pela configuração prévia da atmosfera. Em vez disso, um supercomputador simula, baseado nas condições atuais e nas tendências anotadas, como o clima realmente estará. A quantidade de cálculos para essa simulação é assombrosa, e deve acontecer em poucas horas - caso contrário, não será possível emitir a tempo um alerta de furação ou de maremoto, por exemplo. Da mesma forma, apenas o imenso poder dos supercomputadores tornam práticas as pesquisas científicas e simulações de armas nucleares, modelagem química e molecular e projeto de aeronaves e carros de corrida.
2-Os primeiros e os mais modestos
Os primeiros supercomputadores foram criados na década de 1960 pelo engenheiro Seymour Cray para a extinta Control Data Corporation. Cray posteriormente fundou uma empresa que leva o seu nome, a Cray Research, e dominou o mercado da supercomputação durante cerca de 25 anos, até o início dos anos 1990. Os Cray ainda são estrelas no mundo da supercomputação, mas hoje a concorrência é grande, com empresas como HP, Oracle e, claro, IBM disputando cabeça por cabeça esse polpudo mercado.
Além dos imensos supercomputadores das grandes empresas, é possível construir, com orçamentos mais modestos, supermáquinas de porte menor, mas ainda assim de grande capacidade de processamento. Esse é o caminho trilhado por centenas de Universidades espalhadas pelo mundo e mesmo por empresas e entusiastas que querem ingressar nesse seleto clube. Um dos exemplos é o FASTRA ii. Em vez do conceito de cluster (computadores independentes ligados em rede), todos os processadores no FASTRA ii trabalham paralelamente compartilhando os mesmos barramentos de dados dentro do mesmo gabinete.
3-Processamento paralelo
O grande segredo dos supercomputadores é a força bruta. Além de muita memória, eles possuem inúmeros processadores (hoje contados na casa dos milhares) que funcionam juntos, como em uma orquestra.
Por conta da quantidade de processadores e de memória, os PCs de casa não são páreos para os supercomputadores, mesmo os mais acanhados. Se compararmos com os primeiros da lista, então, a coisa fica ainda mais distante: o famoso Roadrunner, sétimo supercomputador mais rápido do mundo, possui mais de 19 mil processadores. O Jaguar, terceiro no ranking, tem cerca de 37 mil processadores de dois núcleos, num total de quase 80 mil núcleos. Um PC caseiro tem, no máximo, quatro processadores. E até bem pouco tempo atrás, a regra era possuírem um só.
Com apenas um processador, um computador doméstico ou empresarial pode desempenhar apenas uma tarefa por vez. Mesmo com sistemas operacionais ditos “multitarefa” (como o Windows e o Linux), o que ocorre é apenas a ilusão de várias tarefas sendo executadas ao mesmo tempo. Na verdade, o sistema alterna entre as várias tarefas (pula de uma para outra) numa velocidade muito grande, dando a ilusão de que você está editando no Word e jogando paciência ao mesmo tempo.
Hoje, os PCs domésticos têm processadores com dois ou mesmo quatro núcleos - um processador com dois núcleos é um “dois-em-um”, funcionando como se fossem dois processadores separados. Portanto, é correto dizer que os sistemas domésticos possuem processamento paralelo. Mas, com dois processadores, são apenas duas tarefas ao mesmo tempo. Há diversas tecnologias empregadas pelos supercomputadores para controlar e distribuir tarefas a todos os seus processadores, de forma que, ao mesmo tempo, cada um faça uma coisa diferente (é a isso que chamamos de processamento paralelo).
Além de processadores “tradicionais” (como os intel Core e os AMD Opteron) trabalhando de forma paralela, é comum ver processadores vetoriais (os mesmos usados em placas de vídeo para desenhar rapidamente cenas complexas na tela, especialmente em jogos) também contribuindo em cálculos matemáticas a altas velocidades. Não é o intuito deste artigo discorrer sobre o funcionamento de cada tecnologia, mas é curioso notar como componentes criados para um propósito específico acabam sendo úteis em outros usos.
4-Software
Para que todos esses processadores trabalhem em cooperação, é necessário que, em primeiro lugar, tenham algum tipo de comunicação entre si. Essa comunicação pode ser direta - ou seja, como se fosse um computador só contendo todos os processadores - ou em forma de cluster - muitos computadores comuns ligados entre si para simular um supercomputador, normalmente em uma rede comum de computadores.
Mas não basta ligar todo mundo em rede para ter um supercomputador. É preciso que o sistema operacional em cada um deles seja preparado para isso, e ainda que haja um software central para distribuir as tarefas entre todos eles. No caso dos clusters, o software mais popular para isso é o Beowulf (beowulf.org), gratuito e aberto, mas há outras opções pagas como o MOSIX (mosix.org) e o Microsoft Windows Computer Cluster Server 2003.
A gratuidade, o código aberto e a grande comunidade que se formou em volta do Linux e do Beowulf permitem que se construam, facilmente, pequenos supercomputadores “em casa” (ou na Universidade, como normalmente é o caso), a custo baixo. Qualquer um pode construir um supercomputador modesto se tiver vários PCs à disposição e quiser “meter a mão” em configurações de rede e na instalação do Linux e do Beowulf. Para mais informações, um bom ponto de partida é o artigo da wikipedia sobre clusters, disponível em en.wikipedia.org/wiki/Computer_cluster (em inglês).
No caso dos supercomputadores maiores, em que os processadores (ou "nós", como também são chamados nesse ambiente) são ligados internamente, cada instalação têm o seu software próprio de controle. Uma coisa bastante comum entre todos, entretanto, é que a maioria dos supercomputadores no mundo (mesmo os maiores) rodam alguma versão do sistema operacional Linux.
5-Petaflops
O desempenho de qualquer computador - mesmo os pequenos PCs que todos têm em casa - é medido em uma unidade esquisita chamada flops (assim mesmo, com “s” no final, mesmo no singular). Um flops representa a potência computacional de uma máquina capaz de realizar uma operação matemática em ponto flutuante - ou seja, com números decimas de muitas casas - em um segundo (o “s” de flops representa o segundo). Apesar da unidade ser chamada de flops, é usual que os múltiplos sejam grafados sem esse “s” final quando no singular (um teraflop, três quiloflops).
O desempenho em flops pode ser grafado com os multiplicadores que estamos acostumados na vida cotidiana (quilo, mega, giga, tera) para facilitar a compreensão. Assim como 1 kg representam 1 mil g, podemos quantificar os flops da seguinte maneira:
- 1 megaflop = 1 milhão de flops
- 1 gigaflop = 1 bilhão de flops
- 1 teraflop = 1 trilhão de flops
- 1 petaflop = 1 quatrilhão de flops
Um petaflop, a unidade usada em supercomputadores, representaria portanto a capacidade de realizar um quatrilhão dessas operações em ponto flutuante em um segundo. Supercomputadores mais antigos rodam a “meras” centenas de teraflops. A título de comparação, um computador PC de configuração mais rápida possível, equipado com três Intel Core i7 980 XE (ou seja, 12 núcleos!), chega, segundo a página Top10 Flops, a “apenas” 20 gigaflops, ou 0,02 teraflops ou, para podermos comparar com o desempenho do Tianhe-1A, 0,00002 petaflops.
6-Chineses desbancam americanos
Depois de anos de hegemonia americana, a China alcançou o segundo lugar na lista semestral dos Top500 (top500.org), que elenca os supercomputadores mais potentes do planeta. A lista apresentada na Conferência Internacional de Supercomputação 2010 mostra que o sistema chinês Nebulae já ocupava o segundo lugar. O primeiro lugar continuava (até o aparecimento do Tianhe-1A, atual campeão) com o Jaguar da ORNL, nos Estados Unidos.
Mais tarde, em outubro de 2010, a China anunciou a poderosa máquina Tianhe-1A, que conseguiu ultrapassar seu concorrente imediato, o americano Jaguar (que pulou para segundo e deixou o Nebulae em terceiro). O Tianhe-1A possui 7.168 unidades de processamento gráfico da NVIDIA, de modelo Tesla M2050 e 14.336 processadores Intel Xeon. Ainda não foi desta vez que a China conseguiu produzir um supercomputador com chips nacionais, mas a combinação Intel + NVIDIA do dragão chinês foi capaz de desenvolver um desempenho de cerca de 2,51 petaflops.
Fisicamente, o Tianhe-1A é um monstro de computação. Ele tem 262 terabytes de memória e está alocado em 140 gabinetes do tamanho de geladeiras e ocupa um andar inteiro. O Jaguar, na verdade um Cray XT-5, está localizado no Laboratório Nacional Oak Ridge, no Tennessee, e fica “lá atrás”, com um desempenho de “apenas” 1,75 petaflops, já que tem “somente” 37.376 processadores Opteron, da AMD.
A posição ocupada pelo sistema Nebulae já mostrava a clara iniciativa da China de entrar para o grupo de países possuidores de supercomputadores, afirmou o site da organização do Top500 na época. O Nebulae está localizado no Centro Nacional de Supercomputação, em Shenzhen e é baseado na plataforma Dawning TC3600 Blade, com processadores Intel X5650 e GPU (Graphics Processing Unit) NVidia Tesla C2050. Como se pode ver, nenhum dos três está para brincadeiras.
O Roadrunner, produzido pelo laboratório de Berkeley em parceria com a IBM e a NASA, foi o primeiro computador a quebrar (em 2008) a barreira do petaflop. Apesar de já meio “velhinho”, o Roadrunner é um importante componente para a pesquisa norte-americana e chegou a simular um modelo completo do universo em 2009. Na época em que o Roadrunner foi apresentado, o chefe da Direção Nacional de Segurança Nuclear disse que se as mais de 6 bilhões de pessoas em todo o planeta usassem máquinas de calcular e fizessem cálculos durante 24 horas por sete dias de uma semana, levariam 46 anos para fazer o que o supercomputador Road runner pode fazer em um dia.
7-E o Brasil?
O Brasil tem dois supercomputadores entre os 500 mais poderosos do mundo. De acordo com a lista organizada pelo site Top500 divulgada em novembro, os brasileiros ficaram em 29° lugar com o Tupã, do CPTEC (Centro de Previsão do Tempo e Estudos Climáticos), e em 115º posição com o Galileu, do Núcleo de Atendimento em Computação de Alto Desempenho da Universidade Federal do Rio de Janeiro.
O Tupã chegou no fim do ano passado ao CPTEC, a um custo de R$ 50 milhões. Capaz de 258 trilhões de cálculos por segundo, o Tupã está entre os mais poderosos supercomputadores do mundo para previsão de tempo e estudos sobre as mudanças climáticas
Já o Galileu é usado principalmente no apoio a pesquisas inovadoras na área de petróleo e gás. Sua performance média é de “modestos” 64 teraflops (0,064 petaflops) e roda Linux - como o RoadRunner, o Jaguar e as duas máquinas chinesas. Em 2009, chegou a figurar entre os 100 supercomputadores mais potentes do mundo, e já foi a máquina mais poderosa da América Latina.
Agradecimentos
Vinícius Fonseca da Costa, o criador do Tecnosite!!