Índice das dicas

Entendendo os supercomputadores

Por Carlos E. Morimoto em 26 de novembro de 2009 às 18h39

30

Embora muito grandes e caros, os supercomputadores oferecem um poder de processamento milhares de vezes superior ao de qualquer desktop doméstico. As aplicações são muitas, englobando principalmente pesquisas científicas, aplicações militares e diversos tipos de aplicativos financeiros, meteorológicos e simulações complexas; tarefas que envolvem um volume absurdo de cálculos e são necessárias para governos e instituições que podem pagar vários milhões por um computador o mais rápido possível.

O termo "supercomputador" começou a ser usado na década de 1960 para distinguir os sistemas de alto desempenho dos computadores de pequeno e médio porte, destinados a tarefas secundárias. Antes disso, o termo não faria muito sentido, já que todos os computadores eram "super" no sentido de serem muito grandes e caros.

Na época existiam também os "minicomputadores", que eram sistemas do tamanho de um armário, capazes de executar tarefas especializadas. Como pode imaginar, o termo "microcomputador" foi cunhado com o surgimento dos computadores pessoais, que eram muito menores. Hoje em dia esses termos não fazem muito sentido (afinal, hoje em dia um notebook de 3 kg é considerado "grande"), mas não deixam de ser uma curiosidade interessante.

Voltando ao tema central, o primeiro supercomputador de sucesso comercial foi o CDC 6600, lançado em 1964. Ele oferecia um poder de processamento de cerca de 3 megaflops (similar ao desempenho de um 486), um valor impressionante para a época, considerando que ele ainda era baseado em placas de circuito com transistores individuais e não em microchips.

Para atingir esse nível de desempenho, foi adotado o uso de um conjunto de instruções bastante simples, que permitia que os circuitos de processamento operassem a uma frequência de 10 MHz, compensando a falta de flexibilidade com simplicidade e potência bruta. Esta filosofia levou ao aparecimento dos processadores RISC, cujo legado pode ser encontrado mesmo nos processadores atuais da Intel e AMD, que combinam unidades de execução simplificadas com circuitos de apoio destinados a manter a compatibilidade com as instruções x86.

Assim como outros supercomputadores da época, o CDC 6600 já rodava um sistema operacional primitivo e era usado através de terminais burros, que incluíam o teclado e monitor. Isso permitia que ele fosse acessado por vários usuários simultaneamente, ajudando a justificar o custo. Também eram usadas unidades de armazenamento em fita, impressoras, leitores de cartões (cartões perfurados, não cartões de memória... :) e diversos outros periféricos.

supercomputadores_html_m7f227d63

Na década de 1970 surgiu o microchip, que além de possibilitar o surgimento dos computadores pessoais, fez com que o desempenho dos supercomputadores crescesse assustadoramente. Um bom exemplo é o Cray-1, lançado em 1976.

Ele utilizava uma unidade de processamento composta por cerca de 200 mil transistores, que processava instruções de 64 bits, operava a 80 MHz e utilizava um total de 8 MB de memória RAM. Ele oferecia um desempenho estimado em 160 megaflops, o que é similar ao oferecido por um Pentium III de 600 MHz, porém atingido 23 anos antes.

Como pode imaginar, usar um clock de 80 MHz em um supercomputador composto por várias placas de circuito separadas não era uma tarefa simples. A temporização dos ciclos de clock era tão curta que se aproximava do tempo que o sinal elétrico demorava para percorrer o circuito. Isso levou ao uso de um formato de semi-círculo (para permitir que os circuitos ficassem mais próximos) combinado com um sistema de refrigeração baseado em um sistema de gás freon pressurizado. Apesar de tudo, ele era relativamente compacto para um supercomputador, pesando apenas 5.5 toneladas:

supercomputadores_html_m2a99f40e

O Cray-1 marcou época e deu origem à uma família bem-sucedida de supercomputadores comerciais, incluindo o Cray XMP/4 de 1983 (que era capaz de quebrar a barreira de 1 gigaflop rodando aplicativos bem otimizados) e o Cray2/8 de 1985, que atingiu a impressionante marca de 2.4 gigaflops.

Durante a década de 1990, os supercomputadores migraram para arquiteturas de processamento distribuído (basicamente, eles se tornaram clusters de grande escala), onde em vez de um único sistema (como no caso do Cray-1) são usados vários pequenos servidores, baseados em processadores da Intel, AMD ou (no caso dos supercomputadores da IBM) em processadores PowerPC ou PowerXCell:

supercomputadores_html_4d9746f3

Via de regra, cada nó utiliza de um a quatro processadores e uma quantidade suficiente de memória RAM. Em geral, são utilizadas unidades especializadas de armazenamento (cada uma com vários HDs em RAID e grandes caches de dados) em vez de HDs em cada nó, mas isso não é uma regra.

Um nó sozinho possui poder de processamento similar ao de um servidor (ou mesmo de um PC doméstico) high-end. O grande segredo é a forma como eles são interligados (usando interfaces de rede ou alguma interface proprietária), o que os torna partes do mesmo sistema de processamento, assim como neurônios interligados para formar um cérebro. Com isso, o grande limite passa a ser o capital disponível, já que é possível obter mais processamento adicionando mais nós.

Essa abordagem permitiu simplificar o desenvolvimento e reduzir drasticamente os custos por unidade de processamento. Embora supercomputadores como o Roadrunner e o Jaguar custem dezenas de milhões de dólares, o custo por teraflop de processamento é muitas vezes inferior ao de um PC doméstico. Basicamente, os supercomputadores se tornaram uma opção de processamento no atacado. :)

Outro efeito colateral é que com o processamento distribuído o poder de processamento dos supercomputadores passou a avançar muito mais rápido, com a diferença entre eles e os PCs domésticos aumentando rapidamente em vez de diminuir.

Um bom lugar para se manter informado sobre os avanços na área é a lista do Top500, que duas vezes por ano publica um ranking atualizado dos 500 supercomputadores mais poderosos do mundo: http://www.top500.org/

A performance é estimada através do HPL, uma versão especializada do Linpack destinada a sistemas de processamento distribuído, que mede o desempenho bruto em cálculos de ponto flutuante. Embora não seja perfeito, o teste oferece uma boa estimativa do desempenho em situações reais, já que (diferente do que temos nos PCs domésticos), os software usados são quase sempre bem otimizados para cada arquitetura, extraindo o máximo de desempenho do equipamento.

Entre novembro de 2004 e junho de 2008, o computador mais rápido do planeta foi o IBM Blue Gene/L, um descendente do Deep Blue (que derrotou Garry Kasparov no xadrez em 1997). Ele era originalmente composto por de 65.532 processadores Dual PowerPC 440 (131.072 núcleos no total), com 32 terabytes de memória RAM, 1.01 petabytes de armazenamento e um poder de processamento bruto de 280.6 teraflops.

Em vez de utilizar chips x86 e placas-mãe para servidores, a IBM optou por utilizar um layout especializado, privilegiando a densidade. O componente básico são placas (batizadas de "compute cards") contendo dois processadores PowerPC 440 dual-core (4 núcleos por placa no total) com 1 GB de memória DDR (512 MB por chip) e uma interface de comunicação. Os chips operam a apenas 700 MHz, o que foi uma decisão deliberada para reduzir o consumo e permitir agrupar um maior número de chips por gabinete.

supercomputadores_html_38354f6e

As placas com os processadores são espetadas em placas de interface (batizadas de "node boards"), cada uma contendo 16 compute cards (ou seja, 32 chips) e mais dois nós de interface, destinados a coordenar a comunicação e executar funções de gerenciamento:

supercomputadores_html_m79f55625

As node boards são então montadas em racks, cada um contendo 32 placas (1024 chips no total), com a comunicação entre as placas e entre os racks sendo feita através de interfaces de rede.

A versão inicial do Blue Gene/L era composta por 64 destes racks, organizados em filas de oito, o que formava um conjunto relativamente pequeno, que ocupava cerca de 230 metros quadrados. Esta foto de divulgação da IBM mostra parte das instalações:

ibm

O Blue Gene/L foi atualizado em 2007, o que elevou os totais para 106.496 processadores, 69 TB de memória e 1.9 PB de armazenamento, com um desempenho bruto de 478.2 teraflops. Isso aumentou bastante a sobrevida do sistema, permitindo que ele continuasse por mais um ano no topo da lista.

Em 2008 o Blue Gene/L perdeu o posto de mais rápido para o Roadrunner, outro sistema da IBM, dessa vez baseado em uma combinação de processadores AMD Opteron 2210 e processadores PowerXCell, fabricados pela própria IBM.

O Roadrunner inclui um total de 19.440 processadores, sendo 6480 Opterons dual-core e 12960 PowerXCells, acompanhados por 103.6 TB de memória RAM e processadores adicionais para gerenciamento de dados e comunicação. Isso resultou em um desempenho bruto de 1.1 petaflops (1105 teraflops), mais de duas vezes mais do que a versão atualizada do Blue Gene/L.

Apesar disso, o Roadrunner não ficou muito tempo no topo da lista. Em 2009 ele foi superado pelo Cray XT5-HE (Jaguar), que oferece um desempenho bruto de 1.76 petaflops.

O XT5-HE é também baseado em processadores da AMD, desta vez com o Opteron de 6 núcleos, baseado no core Istambul. Ele inclui um total de nada menos que 37.376 processadores, ou seja, 224.256 núcleos (um quarto de milhão!).

Diferente do Blue Gene/L e do Roadrunner que utilizam uma arquitetura própria, ele utiliza a arquitetura padrão para processadores AMD, com links HyperTransport e chipsets regulares, com dois processadores e 16 GB de memória RAM por nó. A única grande diferença em relação à arquitetura de um servidor típico é que ele utiliza placas especiais, que agrupam 4 nós em cada gabinete, aumentando a densidade:

supercomputadores_html_mb598b4a

O Jaguar inclui nada menos que 4.672 gabinetes como este, ligados através de uma topologia proprietária de rede, com um total de 300 TB de memória e 10 PB de armazenamento centralizado. Não é à toa que ele roubou o posto de supercomputador mais rápido.

30 comentáriosPor Carlos E. Morimoto. Revisado 23 de março de 2011 às 12h34

Comentários

 
por Humberto (anônimo) em 4 de junho de 2010 às 16h09
User, tudo varia muito com a arquitetura. Uma coisa que você tem que ter em mente é que apesar do poder de processamento enorme estes monstros geralmente são criados para uma tarefa específica e projetos enormes (ou seja que vão tomar bastante tempo) não tem nada a ver com a flexibilidade que temos em um pc doméstico (no qual você joga COD4 e minutos depois instala um servidor Mysql). Conforme você viu nos exemplos postados a tendência atual é a modularização, no nível dos exemplos a coisa é feita num nível baixíssimo, mas você pode ter acesso a muitos dos conceitos usando alguns pcs antigos como módulos de um cluster
Beowulf (não estou dizendo que cluster seja a
mesma coisa que supercomputador, mas há
similaridade de conceitos), procure por Beowulf Cluster no google, estude e vai se divertir muito
se tiver curiosidade sobre o tema... Sobre algo
mais baixo nível eu sugiro que você pesquise
arquitetura, inicialmente Intel mesmo por ter mais
informação disponível e depois vá expandindo seus
horizontes.

Morimoto, gostaria de saber sobre a vida útil desses equipamentos, se são "mais" duráveis que pc's comuns? E queria saber também, se em toda a estrutura da Google são encontrados supercomputadores? Gostaria de saber também sobre os "OS" utilizados por esses computadores?
 
por Fabricioow (anônimo) em 28 de dezembro de 2009 às 23h39
Olá caro amigo, gostaria de saber se posso adicionar algum artigo seu em meu blog

desde ja meus parabens.

belo trabalho
 
por Rodrigo (anônimo) em 9 de dezembro de 2009 às 18h04
Excelente artigo. Morimoto, deixo uma dica para um futuro artigo seu. Falar sobre computação quântica e os futuros supercomputadores quânticos.
 
por superjacu (anônimo) em 3 de dezembro de 2009 às 18h25
Uns dias atras ,os chineses fizeram uma baita gambiarra dessas ,com coisas "off the shelf " ou materiais comprados em qualquer loja.
 
por petaLpusher (anônimo) em 3 de dezembro de 2009 às 01h43
Ola, Concordo plenamente com nelio.
Rodava xp num k6 II abri um video e um processador de texto e a maquina fica quase travada.
Rodei o kurumim do cd sem instalar, abri 4 videos diferentes 5 tabs no firefox e um processador de planilhas ae que começou a dar umas pequenas travadinhas. Fiquei pasmo surpreso. me afundei no linux em algumas semanas.
Não axei melhor distro que o kurumim para fazer a ponte do meu acontecimento. atualizei ele completo via net, rodava uma maravilha, super completo, agora uso ele para passar arquivos em maquinas com SO corrompido.
Não axei ate agora um distro com as mesma qualidade do kurumim.
Axo que todo computador de fabrica tinha que vir com o kurumim.
Morimoto so vc mesmo pode terminar isto que vc começou... muito tentaram mais ninguem manteve a essencia do Menino tupi.
Retome esse projeto, por todos nos...
 
por Nélio Ramos (anônimo) em 2 de dezembro de 2009 às 22h14
Morimoto, eu sei que esta pergunta é fora do assunto, mas acaso você ainda pensa em uma versão nova do Kurumim? cara, que saudade da distro mais famosa do país, parabéns pelo seu trabalho antes feito, quem sabe um dia teremos novas versões do nosso grande Kurumim.

Um grande abraço!
 
por Fabian Pablo Borges de Amorim (anônimo) em 2 de dezembro de 2009 às 12h11
entenda-se facinação por "fascinação" e ves por "vez".
 
por Fabian Pablo Borges de Amorim (anônimo) em 2 de dezembro de 2009 às 12h09
Nobre Mestre Carlos Morimoto, neste último trimestre, estive acompanhando quase que diarimente o GDH, e esta noticia simplesmente acabou com um trabalho de arquitetura para o curso que faço, eu quase que decorei a arquitetura do Roadrunner, e derrepente, você posta que o Papaléguas já foi superado, é claro que eu fui conferir, afinal, diante de toda credibilidade que o GDH tem, eu precisava conferir. Estou simplesmente pasmo, com o avanço tecnológico e com a capacidade de processamento que estas máquinas estão alcançando, eu fico pirado quando vejo estes tipos de coisa, porque sou um apaixonado por informática e toda esta evolução me facina.
Parabéns por todos os artigos maravilhosos que tem feito, e só pra constar, seu nome é referencia onde estudo.
Felidades Mil mais um ves Parabéns.
 
por André Vitor de Lima Matos (anônimo) em 28 de novembro de 2009 às 14h07
Morimoto, sei que são feitas muitas perguntas aqui, mas uma boa idéia também seria falar um pouco sobre a espectativa do computador quantico. Não tenho muita informação, mas até onde sei, é uma arquitetura completamente diferente para processamento de dados, que ao invés de transístores, utiliza átomos e moléculas (compare a diferença de tamanho e velocidade). Espera-se que, quando alcançarem a tecnologia, com apenas alguns anos de pesquisa após isso, teremos computadores menores que um servidor desse ai, com poder de processamento algumas potências de dez maiores que desses supercomputadores citados na matéria. Rsrs, o problema, quando conseguirem inventar, vai ser o software pra rodar neles, já que nada programado da forma tradicional, poderá se comparar ao poder de processamento dessas máquinas. Uma solução esperada é programar o processador para programar seu próprio programa. =]
 
por Gustavo (anônimo) em 28 de novembro de 2009 às 11h25
"Doom 3? Deixa de ser exagerado, "ô rapá"! Uma partidinha de Counter-Strike num telão de 32" já é suficiente! :-)"

Aí é desperdício! Tem que ser uma super competição de CoD 5 multiplayer com umas 200 pessoas (cada uma num terminal burro) num mapa gigante :)
por Carlos E. Morimoto