Lei de Amdahl e limites do paralelismo
A fração serial, o cálculo do speedup máximo e a leitura crítica do teto.
Nesta página
A introdução mostrou que o speedup real fica abaixo do ideal. A lei de Amdahl quantifica esse teto a partir de uma só pergunta, que fração do programa não se divide.
A lei
Seja a fração serial do tempo de execução, a parte que nem com infinitos núcleos acelera. A fração paralelizável é e, com núcleos, demora . O speedup máximo é:
O denominador lê-se como orçamento de tempo. A parcela nunca mexe. A parcela paralela encolhe com , mas nunca chega a zero enquanto for finito. Quando tende para infinito, o speedup tende para . É esse o teto, e ele depende só da fração serial.
Exemplo completo
Um simulador passa 20 por cento do tempo a ler dados e a escrever resultados, trabalho serial, e 80 por cento a calcular, trabalho paralelizável. Então .
Com 4 núcleos:
Com 16 núcleos:
Com infinitos núcleos:
Repara no rendimento decrescente. Quadruplicar de 4 para 16 núcleos sobe o speedup de 2,5 para 4, um ganho de 60 por cento por 4 vezes mais hardware. E nenhum hardware do mundo passa de 5. A conclusão prática: quando o speedup estabiliza, o trabalho útil é atacar a fração serial, não comprar núcleos.