• Listar posts
  • Feeds - RSS
Post

Entenda os supercomputadores, potentes máquinas usadas na pesquisa científica

Postado por Das Übergeek em 14/06/2011 17:30
Blog: ÜberGeek

Karmômetro (?)

tende a bom
adicionar comentário Comment

O que é um supercomputador?


Columbia, um dos supercomputadores do Centro Avançado de Supercomputação da NASA
(Crédito: NASA Ames Research Center/Tom Trower)

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 grande 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.


Seymour Cray e seu Cray-1, em 1970. (Crédito: divulgação)

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 de 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.


O FASTRA ii, um supercomputador do tamanho de um PC comum e feito em casa.
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. (Crédito: ASTRA)

.

Processamento paralelo

O grande segredo dos supercomputadores é a força bruta. Além de muita memória, eles possuem inúmeros processadores (hoje contados à casa dos milhares) que funcionam juntos, como numa orquestra.

Por conta da quantidade de processadores e de memória, os PCs de casa não são páreo 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 (veja abaixo), 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 a 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.

.

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 (gratuito e aberto) Beowulf (beowulf.org) 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 construa, 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).


Esse é o Borg, um cluster Beowulf usado pela McGill University para pesquisas sobre estrelas pulsares.
(Crédito: McGill University / A. Archiba, via Wikimedia Foundation)

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.

.

Petaflofs

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 (pegou? pegou? o “s” de flops representa o segundo). Apesar da unidade ser chamada de flops (com “s”), é 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 um quilograma representam mil gramas, 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 (veja abaixo), 0,00002 petaflops.

Os petaflops (ou teraflops ou mesmo gigaflops, se o computador for mais lento) podem ser medidos com softwares de benchmark como o Linpack (netlib.org/linpack, para Linux) e o MaxxPI² (maxxpi.net, para Windows).

.

Chineses desbancam norte-americanos

Depois de anos de hegemonia norte-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 norte-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.


Adicione um selo ‘Made in China’ também ao supercomputador mais rápido do mundo (Crédito: Wired)

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. Ocupa um andar inteiro.

O Jaguar, na verdade um Cray XT-5, está localizado no Laboratório Nacional Oak Ridge, no Tennessee (www.ornl.gov), 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.

A lista Top 500 é compilada e publicada duas vezes por ano por Hans Meuer, da Universidade de Mannheim, na Alemanha, Erich Strohmaier e Horst Simon, do Laboratório Nacional de Berkeley NERSC/Lawrence e Jack Dongarra da Universidade do Tennessee, estes três dos Estados Unidos, país que domina a lista com 282 supercomputadores entre os 500 mais rápidos.

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 “Road runner” 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.


O já venerável Roadrunner. (Crédito: NASA)

O Brasil possui apenas um supercomputador na lista, batizado de Galileu e instalado no NACAD/COPPE da Universidade Federal do Rio de Janeiro. É baseado na plataforma Blade 6048, da Sun, e usa processadores Intel Xeon de 2.8 GHz. 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..

Acompanhe nossas matérias sobre supercomputadores em geek.com.br/tags/supercomputador.


Tags:

Se você gostou,
seja um GEEK!

participe

Comentários Comment

Não há nenhum comentário ainda...

Seja o primeiro a comentar

Não preencha este campo Ele é um mecanismo para evitarmos spams. Se vc. está vendo este texto, seu browser provavelmente não interpreta corretamente CSS. De qualquer forma, apenas deixe este campo em branco e siga livre para comentar.

Ajuda com a formatação


voltar ao início