Entendendo os supercomputadores
Publicado em 26/11/2009 – 18:39por Carlos Morimoto
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.

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:

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:

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.

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:

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:

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:

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.



29 respostas para “Entendendo os supercomputadores”
Excelente matéria. Impressionante como computaçao corporativa avança em um ritmo alucinado e surpreendente em relação à computação de consumo.
Uau!!! Que monstros!!! Isso faz processadores como o Core i9 e o Phenom II x6 (que serão lançados ano que vem) parecerem coisas ultrapassadas!!! O.O
Fico curioso para saber quantos gigaflops ou teraflops um computador doméstico high-end atual atinge, para ter uma noção de comparação. =O
Ótima matéria, Morimoto! =]
Excelente artigo!
Não sei se posso fazer perguntas, mas mesmo assim as farei.
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?
Bom artigo. Agora só falta um artigo falando dos softwares que são utilizados para colocar estas crianças para funcionar. Que tal um sobre supercomputadores com sistemas abertos ???
Se não me engano, ouvi falar de um linux para rodar essas supermáquinas.
Ainda na F-1, a BMW lançou mão de clusters para realizar simulação aerodinâmica pois a FIA está limitando o uso do túnel de vento.
Eu posso estar enganado, mas li que nos clusters rodava linux.
Quase todos os supercomputadores hoje em dia usam Linux, tanto que nem se cita muito. Dizer "supercomputador que roda Linux" virou algo redundante, igual dizer "água molhada"… :)
Na última lista são 89.20% Linux, 5.20% Unix e BSD, menos de 1% Windows (3 em 500) e 4.6% para sistemas diversos:
http://www.top500.org/stats/list/34/osfam
Morimoto, por favor, escreva sobre sistemas operacionais para supercomputadores.
grato,
Os softwares utilizados nesses supercomputadores são desenvolvidos em quais linguagens? Fortran?
Para o amigo ali em cima, que queria saber quantas operações de ponto flutuante um pc pode fazer, existe um programa chamado Sandra (http://www.sisoftware.net/) que faz esse calculo. Até onde me lembro, ele é só para windows.
Abraço.
Posso jogar Doom 3 num desses? :P
Morimoto, muito bom mesmo este artigo ! E muito interessante… eu gosto muito deste assunto de supercomputadores e clusters. Pena eu não poder interagir com um sistema destes… hehehe
Tem como montar, digamos, um "pequeno cluster" em casa ? Até mesmo para um estudo e tal…
Um abraço…
Olá, Morimoto.
Esse poder de processamento não seria maior se fossem usadas GPUs ao invés de CPUs?
mas existe um sistema central que gerencia tudo e reconhece todos esses núcleos, memória e HD ou então é tudo dividido em vários sistemas e um que só interliga esses sistemas?
Sim existe. Tem distribuições otimizadas para fazer isso. Um exemplo é o Oscar http://svn.oscar.openclustergroup.org/trac/oscar
Faz uns dois anos que o pessoal da UNESP de Rio Preto, fez um supercomputador exatamente com essa idéia de cluster (juntaram vários processadores em paralelo) e mais uma informação o supercomputador da Petrobras roda Fortran que vai muito bem obrigado apesar destes anos todos de utilização
Muito interessante. Agora há quem tem coragem de utilizar o lixo MS-Windows? Tálôku! Possibilidade de supervírus, p/ alguma coisa serve ao menos!
Já vi uma reportagem que o pessoal fez um cluster usando PS2 em uma universidade. Basta procurar no google que vocês acham.
O mais interessante que no artigo falava que o mais dificil desta montagem foi tirar os PS2 da caixa!!! rs
E é claro, tudo como sempre, rodava com Linux otimizado para o PS2 (muito conhecido, basta pesquisar na internnet como sempre… o que seria de nós sem a internet???)
Doom 3? Deixa de ser exagerado, "ô rapá"! Uma partidinha de Counter-Strike num telão de 32" já é suficiente! :-)
Agora consigo "enxergar" as possibilidades de uso dos supercomputadores em games que rodam direto no navegador, como o Quake Live. E num futuro não muito distante, com a tendência de utilizar GPUs para renderizar páginas e scripts, não vai ser novidade saber que os futuros lançamentos de jogos no mercado não estarão nas prateleiras ou nas bancas de um camelô, mas num cadastro de uma conta de acesso e uma mensalidade "light" a ser paga.
Aliás, a Steam já disponibiliza seus jogos via downloads… &;-D
Simprismente impresionante..!
"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 :)
Que nada, o legal seria usar o Jaguar para o processamento da AI nos mapas dos zumbis. Teríamos trilhões de zumbis simultâneos :-O
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. =]
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.
entenda-se facinação por "fascinação" e ves por "vez".
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!
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…
Uns dias atras ,os chineses fizeram uma baita gambiarra dessas ,com coisas "off the shelf " ou materiais comprados em qualquer loja.
Excelente artigo. Morimoto, deixo uma dica para um futuro artigo seu. Falar sobre computação quântica e os futuros supercomputadores quânticos.
Olá caro amigo, gostaria de saber se posso adicionar algum artigo seu em meu blog
desde ja meus parabens.
belo trabalho