Com a evolução dos smartphones, muitos se perguntam qual é a relação de desempenho entre eles e supercomputadores do passado. Para os supercomputadores, temos o http://www.top500.org/ que há vários anos oferece um ranking dos supercomputadores mais rápidos do mundo. 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 softwares usados são quase sempre bem otimizados para cada arquitetura, extraindo o máximo de desempenho do equipamento.
O primeiro da lista atualmente, por exemplo é o Cray XT5-HE (Jaguar), que oferece um desempenho bruto de 1.76 petaflops (1.760.000 megaflops). Ele é baseado no Opteron de 6 núcleos com o Istambul. Ele inclui um total de nada menos que 37.376 processadores, ou seja, 224.256 núcleos (um quarto de milhão!) em um sistema de processamento distribuído.
Diferente de sistemas como o IBM Blue Gene/L e o 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. Na foto abaixo temos um dos gabinetes usados no Jaguar, onde você pode notar os quatro pares de processadores espetados na mesma placa:
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.
Vai demorar um pouco até que tenhamos smartphones com um poder de processamento próximo disso, mas se voltarmos um pouco no tempo, poderemos encontrar um concorrente mais fácil de bater.
Se voltarmos até 1979, o supercomputador mais rápido era o Cray-1, que era ainda baseado em uma estrutura monolítica, com uma unidade de processamento composta por cerca de 200 mil transistores. Ele processava instruções de 64 bits, operava a 80 MHz e utilizava um total de 8 MB de memória RAM.
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 componentes 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 clock e e a quantidade de memória não são muito impressionantes, mas ele oferecia um desempenho bruto respeitável, estimado em 160 megaflops, o que (segundo o http://www.netlib.org/utk/people/JackDongarra/faq-linpack.html#_Toc27885750) equivalem a 12 megaflops no Linpack n=100.
Mesmo assim ele é um concorrente respeitável para um simples telefone, mas muitos aparelhos atuais já são capazes de superar com folga o desempenho oferecido por ele.
Embora ainda não existam muitos aplicativos de benchmark para smartphones, já temos disponível um porte do Linpack para o Android, que pode ser encontrada no http://www.greenecomputing.com/apps/linpack/.
Ele é um aplicativo simples, que executa o teste e devolve uma estimativa do processamento líquido oferecido pelo aparelho. Por ser um aplicativo em Java (uma imposição no caso dos aplicativos para o Android), o desempenho é atrelado ao interpretador e por isso varia de acordo com a versão do firmware e otimizações aplicadas. Em muitos aparelhos ele retorna um desempenho muito baixo, como neste G2, onde ele acusa meros 1.73 megaflops:
Embora não seja necessariamente “justo”, isso está dentro das regras, já que o Top500 lista os supercomputadores com base no desempenho líquido, realmente oferecido ao executar o benchmark e não no desempenho teórico. Mesmo que você construa um supercomputador com 10 milhões de processadores, ele não vai encabeçar a lista a menos que você consiga extrair mais do que os 1.76 petaflops oferecidos pelo Jaguar ao executar o benchmark.
Os smartphones atuais já utilizam processadores bastante poderosos, mas (sobretudo no caso do Android) é difícil extrair todo o desempenho devido ao interpretador Java e as demais camadas do sistema. Entretanto, aparelhos com firmwares modificados já estão começando a se sair bem no teste.
Seguindo o exemplo do Top500, já existe um ranking de smartphones, que pode ser consultado no http://www.greenecomputing.com/apps/linpack/linpack-top-10/. Encabeçando a lista está um HTC Magic rodando uma versão modificada do Android 2.1, com a qual ele foi capaz de atingir respeitáveis 100 megaflops, o que equivale a 8 vezes o desempenho estimado do Cray-1:
O HTC Magic é um smartphone mid-range, que é baseado no Qualcomm MSM7200A de 528 MHz, 512 MB de RAM (228 MB utilizáveis), que é ainda baseado no ARM11, é inferior aos chips baseados no Cortex A8, como TI OMAP3430 do Motorola Droid, mostrando que o resultado se deve mais às otimizações de software feitas do que ao hardware propriamente dito. É de se esperar que logo as otimizações sejam replicadas em outros aparelhos e os modelos baseados no Cortex A8 passem a roubar a cena.
O Cortex A8 é um processador dual-issue (single-core, porém com duas unidades de processamento), que processa instruções em ordem e inclui um cache L1 de 64 KB, dividido em dois blocos de 32 KB (dados e instruções). Ele inclui também um grande (do ponto de vista de um chip para sistemas embarcados) cache L2 de 256 KB, que pode ser expandido para até 1 MB de acordo com o nível de desempenho desejado pelo fabricante.
O Cortex A8 incorpora também um pipeline de 13 estágios (contra os 8 estágios do ARM11), o que possibilita o uso de frequências de operação muito mais altas. Os chips produzidos usando uma técnica de 65 nm (como os usados no iPhone 3GS e no Nokia N900) operam na casa dos 600 MHz. Em teoria, seria possível extrair cerca de 150 megaflops ou mais de um aparelho baseado neles.
Superar um supercomputador do final da década de 70 pode não parecer grande coisa, mas o feito ganha um pouco mais de importância se tivermos em mente que o Cray-1 foi uma máquina bem à frente de seu tempo, com um desempenho que demorou a ser superado pelos computadores pessoais. Além de pesar 5 toneladas, ele tinha um consumo de 230 kilowatts (mais de 200.000 vezes o consumo de pico de um smartphone atual) e custava mais de 10 milhões de dólares da época (quase 100 milhões em valores corrigidos).
Deixe seu comentário