Amdahl's law
expressãoprogramação
O ganho de paralelizar uma tarefa é limitado pela sua fração serial: processadores infinitos não superam 1/s.
Gene Amdahl a defendeu contra o entusiasmo inicial com multiprocessadores em 1967: se 10 por cento de um trabalho é inerentemente sequencial, nenhuma quantidade de hardware paralelo rende mais que dez vezes de aceleração. A lei disciplina toda conversa de escalabilidade, de chips multicore a pipelines distribuídos, apontando a otimização primeiro para o gargalo serial. Gustafson depois ofereceu a releitura otimista para problemas que crescem, mas Amdahl ainda governa cargas fixas.
A lei de Amdahl afirma que o ganho de paralelizar um programa é limitado pela fração que precisa rodar em série. Se um décimo do trabalho não pode ser paralelizado, então infinitos processadores ainda rendem apenas um ganho de dez vezes, e a aritmética fica desanimadora rápido.
A implicação que importa é que acrescentar núcleos tem um teto determinado pelo algoritmo, e não pelo orçamento. Uma carga noventa e cinco por cento paralela para em vinte vezes, por mais hardware que chegue, e os últimos poucos por cento de serialização costumam ser os mais difíceis de remover, porque são coordenação, travamento ou ordenação que existem por um motivo.
A lei de Gustafson é o contra-argumento padrão e vale sustentar ao lado. Amdahl pressupõe tamanho de problema fixo e, na prática, pessoas com mais poder computacional resolvem problemas maiores em vez do mesmo problema mais rápido, e problemas maiores costumam ter fração paralela maior. Ambas estão corretas sobre situações diferentes, e saber qual descreve a sua é a habilidade de fato: carga fixa com meta dura de latência é Amdahl, carga crescente com meta de vazão é Gustafson.