Gráficos Log-Log & Saturação
A velocidade de computação seguiu uma curva de crescimento exponencial por 50 anos. Em um gráfico log-linear (velocidade em log vs tempo linear), isso aparece como uma linha reta com inclinação b = taxa de crescimento em ordens de magnitude por ano.
Limites físicos impõem um teto horizontal: uma velocidade máxima S_max determinada pelo tamanho molecular, velocidade da luz & restrições térmicas. À medida que o exponencial se aproxima de S_max, o crescimento deve desacelerar.
Saturação Logística
Um modelo comum para crescimento com um teto:
S(t) = S_max / (1 + e^(−r(t − t₀)))
Esta é a equação logística aplicada à tecnologia. Em tempos iniciais (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — exponencial puro. Próximo ao teto (t >> t₀): S(t) → S_max assintoticamente.
A geometria: uma linha reta em coordenadas log-linear se curva próximo ao teto, produzindo uma forma em S quando vista em coordenadas linear-linear.
Quando o Crescimento Satura?
Suponha que a velocidade de um único processador cresça a 10^(0,09t) a partir de 10⁰ ops/seg em 1940. Teto físico: S_max = 10^(12) ops/seg (uma estimativa aproximada para um processador de núcleo único, limitado por restrições térmicas & de velocidade da luz).
Raio Máximo de Comunicação
A velocidade de clock de um processador determina o raio máximo dentro do qual ele pode se comunicar em um ciclo. Os sinais viajam a aproximadamente 2×10⁸ m/s no cobre.
Para um período de clock T (em segundos), o raio máximo de comunicação em uma única direção:
r_max = v × T / 2
(dividido por 2 para ida e volta: o sinal deve ir e voltar dentro de T)
À medida que a velocidade de clock aumenta, T diminui, então r_max encolhe. Essa restrição geométrica força os componentes a se agruparem mais próximos — reduzindo a área do chip — ou a aceitar latência de múltiplos ciclos para comunicação fora do chip.
A Esfera de Influência
Todos os componentes alcançáveis dentro de um ciclo de clock formam uma esfera de raio r_max centrada no processador. Volume: V = (4/3)π r_max³.
Se a densidade de componentes for ρ (componentes/m³), o número de componentes alcançáveis dentro de um ciclo: N = ρ × V = ρ × (4/3)π r_max³.
À medida que r_max encolhe com o aumento da velocidade de clock, N encolhe cubicamente — um aumento de 2× na velocidade de clock reduz a contagem de componentes alcançáveis por (1/2)³ = 1/8.
Componentes Alcançáveis por Ciclo de Clock
Uma estação de trabalho da era de 1993 funciona a 100 MHz (T = 10 ns). Velocidade do sinal = 2×10⁸ m/s. Densidade de componentes em uma placa de circuito ≈ 10⁸ componentes/m³ (estimativa aproximada incluindo chips, resistores, capacitores).
Uma GPU moderna funciona a 2 GHz (T = 0,5 ns).
O Limite de Aceleração Paralela
A velocidade de um único processador se aproxima de tetos físicos. A resposta da indústria: arquiteturas paralelas. A Lei de Amdahl quantifica a aceleração alcançável a partir do paralelismo.
Lei de Amdahl
Suponha que uma fração f de um programa possa ser paralelizada, e a fração (1−f) deva ser executada serialmente. Com p processadores:
Speedup(p) = 1 / ((1−f) + f/p)
Quando p → ∞: Speedup_max = 1 / (1−f)
A fração serial (1−f) estabelece um teto rígido para a aceleração alcançável, independentemente de quantos processadores sejam adicionados.
Perspectiva geométrica: a aceleração como função de p segue uma curva hiperbólica. A assíntota é 1/(1−f). Para f = 0,9, a aceleração máxima = 10, mesmo com infinitos processadores. Para f = 0,99, a aceleração máxima = 100.
A lição implícita de Hamming: o interesse em arquiteturas paralelas era real, mas o resultado dependia inteiramente de quão paralelizável era a carga de trabalho — um fato que muitos otimistas da computação paralela ignoravam.
Calculando a Aceleração Paralela
Uma simulação científica é executada em 1000 segundos em um processador. A análise de perfil revela: 200 segundos em uma fase de inicialização serial (não pode ser paralelizada); 800 segundos em uma fase de computação paralela.