Como medimos a real potência de um computador?
Quando vemos notícias como:
“O supercomputador mais rápido do mundo alcança 1 exaFLOP!”, pode parecer (e talvez seja) algo absurdo e impossível de entender.
Mas… o que isso realmente significa?
Vamos tentar entender isso neste post.
O que é FLOP?
FLOP significa:
Floating Point Operation (Operação de ponto flutuante)
é uma única operação matemática com números decimais.
Exemplos:
- 5.3 + 2.1
- 9.7 × 4.2
- 1.5 ÷ 3.8
Cada cálculo desses é um FLOP.
FLOPS ≠ FLOP
Detalhe importante:
-FLOP → uma operação
-FLOPS → Floating Point Operations Per Second
Quantas operações de ponto flutuante o computador consegue fazer por segundo.
A partir daqui mudamos completamente a interpretação.
Entendendo os FLOPS
É muito comum pensar algo assim:
“Meu PC faz 150 bilhões de cálculos de ponto flutuante por ciclo.”
Mas não é bem assim.
Se uma CPU tiver 1 Hz de clock, significa que ela terá 1 ciclo por segundo.
Ciclo de Clock: É o pulso elétrico que sincroniza os componentes.
Instrução: Uma tarefa simples (como somar 1 + 1) pode levar um ciclo, vários ciclos ou, em processadores modernos, o chip pode realizar várias instruções em um único ciclo (tecnologia chamada superscalar).
E tome cuidado:
1 ciclo não significa necessariamente 1 FLOP.
O seu PC pode precisar de mais de um ciclo para realizar determinada operação matemática de ponto flutuante.
As CPUs atuais funcionam em ciclos (GHz), mas o desempenho teórico em FLOPS depende da fórmula:
FLOPS = Número de Cores x Frequência (Hz) x Operações por Ciclo
Se o processador roda a 3 GHz, isso significa que ele faz 3 bilhões de ciclos por segundo.
E dentro de cada ciclo ele pode executar múltiplas operações, graças a:
-
Pipelines
-
Execução fora de ordem
-
Vetorização (SIMD)
-
Múltiplas unidades de ponto flutuante
Ou seja: uma CPU pode realizar vários FLOPs em um único ciclo.
Escala dos FLOPS
| Unidade | Valor |
|---|---|
| 1 GFLOP | 1 bilhão de operações por segundo |
| 1 TFLOP | 1 trilhão |
| 1 PFLOP | 1 quatrilhão |
| 1 EFLOP | 1 quintilhão |
Nesse ponto, os cálculos que uma máquina pode realizar começam a ficar difíceis até de imaginar.
O computador mais rápido do mundo
Atualmente, o supercomputador Frontier, localizado no Oak Ridge National Laboratory, nos Estados Unidos, ultrapassou a marca de:
1 exaFLOP (1 EFLOP)
Isso significa: 1.000.000.000.000.000.000 operações de ponto flutuante por segundo, uma marca impressionante e que certamente alguma outra empresa ou país já está pronta para quebrar.
E por que medir em ponto flutuante?
Porque cálculos científicos usam números decimais:
-
Simulações climáticas
-
Física de partículas
-
Modelagem molecular
-
Inteligência artificial
-
Treinamento de redes neurais
Números inteiros são simples, mas muitas aplicações exigem precisão fracionária.
E é aí que entra o padrão IEEE 754 e toda a complexidade do hardware de ponto flutuante (FPU).
O que isso tem a ver com meu PC?
Quando você vê que sua máquina tem, por exemplo, um processador Intel i5 de 4.1GHz, seria como supostamente dizer que ele tem a capacidade 150 FLOPS.
Isso significa que ela pode fazer 150 bilhões de operações decimais por segundo, em condições ideais.
Atenção! estamos falando de pico teórico.
Nem todo software:
-
Usa vetorização
-
É paralelo
-
Consegue manter a CPU 100% ocupada
Além disso, existem gargalos de memória.
FLOPS é potência máxima possível, não desempenho real garantido.
Resumo
Quando alguém fala: “Esse supercomputador tem 1 exaFLOP”, agora você sabe que significa:
Ele consegue fazer um quintilhão de operações matemáticas decimais por segundo.
Não é por ciclo.
Não é por núcleo.
É por segundo.
E tudo isso acontece porque, por baixo:
-
Existem bilhões de transistores
-
Unidades vetoriais trabalhando em paralelo
-
Pipelines profundos
-
Execução fora de ordem
-
Múltiplas FPUs
Conclusão
FLOPS não é só um número bonito do marketing e sim uma medida da capacidade bruta de cálculo científico de uma máquina.
Quando você entende isso, começa a enxergar o processador não como uma “caixa preta”, mas como um sistema matemático absurdamente otimizado executando bilhões (ou trilhões) de operações por segundo.