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.
Computadores paralelos podem ser classificados de acordo com o nível em que o hardware suporta o paralelismo. Computadores multinúcleos possuem muitos elementos de processamento em uma máquina só, enquanto que clusters e MPP (Massively Parallel Processor) usam múltiplos computadores para processar as mesmas tarefas. Atualmente, as arquiteturas mais utilizadas em supercomputadores são o cluster e o MPP.
Um cluster é formado por um conjunto de computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído. Muitas vezes é construído a partir de computadores convencionais, os quais são ligados em rede e juntos trabalham como se fosse uma única máquina de grande porte. Já os MPPs são construídos com milhares de processadores comerciais conectados por uma rede de alta velocidade. O alto desempenho é obtido através do grande número de processadores.
Os principais fatores a serem levados em conta para os processadores são sua quantidade, número de núcleos de cada um, frequência de operação, consumo, dissipação de calor e custo. A velocidade de processamento de um supercomputador é medida em FLOPS (Floating Point Operations Per Second), ou seja, quantidade de operações de ponto flutuante por segundo. Os supercomputadores atuais atingem a grandeza dos petaflops (PFLOPS), o que equivale a quatrilhões de cálculos por segundo. Um computador pessoal chega aos 100 gigaflops (Core i7 980x Intel), cerca de 10 mil vezes menor.
Quando se usa muitos processadores e núcleos, é consumida muita energia e há grande dissipação de calor, sendo necessário que as salas em que os supercomputadores são mantidos devem conter sistemas de refrigeração especiais. Devido ao seu alto número de processadores e dispositivos, eles chegam a ocupar salas inteiras.
98,8% do mercado dos supercomputadores utiliza Linux como sistema operacional devido à sua abertura, pois possibilita que os desenvolvedores personalizem o SO para que haja o maior desempenho possível.
Existe uma grande diversidade de arquiteturas de supercomputadores, então para demonstrar um pouco mais a fundo precisamos escolher uma, e nada melhor que usar o primeiro colocado na lista do TOP 500 de junho de 2017, o TaihuLight da Sunway.
Esse supercomputador chinês tem um desempenho que pode chegar a 125,4 Pflops por segundo suas características são:
Memória principal | 1,31 PB |
---|---|
*Processador | SW26010 |
Núcleos de processamento | 10.649.600 |
Sistema Operacional | Sunway Raise OS 2.0.5 |
O SW26010 é um processador multinúcleo que contém 260 núcleos(CPEs e MPEs), ele segue a arquitetura RISC (Reduced Instruction Set Computer), onde todas as instruções possuem o mesmo tamanho no caso 64 bits. Ele é composto por:
Cada MPE e CPE é um RISC de 64 bits que processa instruções de 264bits, com cache L1 de 16KB 64KB de Scratch Pad Memory(memória de acesso rápido), porém o CPE só tem suporte ao modo usuario, sendo o modo sistema restrito ao MPE.
A estrura do processador é explicada na figura abaixo.
Cada processador representa um nó do TaihuLight.
Na próxima figura é exemplificada a conexão entre os nós e os elementos externos
Para se ter uma idéia da grandeza desse computador:
Confira a evolução dos Supercomputadores com o passar do tempo.
Processamento: 500 Flops/s
Tamanho: 167,22 Metros Quadrados
Processamento: 3 KiloFlops/s
Tamanho: 46 Metros Quadrados
Processamento: 5 KiloFlops/s
Tamanho: 865 Metros Quadrados
Processamento: 160 KiloFlops/s
Tamanho: 6 Metros Quadrados
Processamento: 800 KiloFlops/s
Tamanho: 10 Metros Quadrados
Processamento: 1.9 GigaFlops/s
Tamanho: 1.4 Metros Quadrados
Processamento: 2 TeraFlops/s
Tamanho: 148 Metros Quadrados
Processamento: 7 TeraFlops/s
Tamanho: 1114 Metros Quadrados
Processamento: 36 TeraFlops/s
Tamanho: 3158 Metros Quadrados
Processamento: 470 TeraFlops/s
Tamanho: 232 Metros Quadrados
Processamento: 16 PetaFlops/s
Tamanho: 317 Metros Quadrados
Processamento: 34 PetaFlops/s
Tamanho: 719 Metros Quadrados
Processamento: 93 PetaFlops/s
Tamanho: 182 Metros Quadrados
Devido ao seu grande poder de processamento, os supercomputadores podem realizar inúmeras tarefas e resolver problemas dos mais variados tipos, como: problemas com alta precisão numérica, repetidas operações numéricas sobre grandes vetores de números, etc. Abaixo estão algumas áreas que também utilizam supercomputadores atualmente:
Eles podem ser usados para calcular a interação de medicamentos e tratamentos com base em condições genéticas, cruzamento de informações com resultados passados e até mesmo simulações. Desta forma, se tornaram grandes aliados dos médicos e cientistas que estão em busca da cura do câncer, de DSTs e de várias outras doenças que ainda não conhecem uma solução definitiva.
Cruzando informações sobre presença e densidade de nuvens, velocidade e direção dos ventos, temperatura das massas de ar e outros dados relevantes, eles podem definir quando vai haver chuva ou quando vai esfriar ou quando o Sol estará mais presente
O IBM Watson é um supercomputador utilizado para o processamento avançado, recuperação de informação, representação de conhecimento, raciocínio automatizado e tecnologias de aprendizado de máquinas. De acordo com a IBM, "Mais de 100 técnicas diferentes são utilizadas para analisar a linguagem natural, identificar origem, localizar e gerar hipóteses, localizar e marcar evidências e juntar e rankear hipóteses."