A lei de Amdahl não * não * se aplica a computadores paralelos; Isso se aplica a eles, e é crucial para entender suas limitações. O mal -entendido provavelmente decorre de pessoas que esperam alcançar uma aceleração ilimitada com a paralelização. A lei de Amdahl mostra que isso é impossível.
A lei de Amdahl afirma que a aceleração máxima alcançável por paralelo a um programa é limitada pela parte do programa que * não pode * ser paralela. Vamos quebrá -lo:
*
porção serial: Algumas partes de um programa exigem uma execução seqüencial. Por exemplo, um único loop que depende do resultado da iteração anterior não pode ser paralela eficazmente. Essa é a fração do programa que permanece seqüencial, geralmente indicado como 'f'.
*
Paralle Partion: Esta é a fração do programa que * pode * ser paralelizada, (1 - f).
*
Número de processadores: 'n' representa o número de processadores utilizados.
Fórmula da lei de Amdahl:
Aceleração =1 / (f + (1 - f) / n)
Por que é relevante para computadores paralelos: Não importa quantos processadores ('n') você acrescente, se mesmo uma pequena parte do programa ('f') for inerentemente sequencial, a aceleração será limitada. Por exemplo:
* Se 10% do programa for seqüencial (f =0,1), mesmo com um número infinito de processadores (n abordagens infinitas), a aceleração máxima é de apenas 1 / 0,1 =10. Você nunca receberá uma aceleração superior a 10x, não importa quanto hardware você jogue.
Portanto, a lei de Amdahl não é sobre computadores paralelos * não * estar sujeito a seus princípios; Trata -se de destacar suas limitações inerentes na velocidade. A programação paralela eficaz requer minimizar a parte seqüencial ('f') para maximizar os benefícios da paralelização. Ignorar a lei de Amdahl leva a expectativas irreais sobre os ganhos de desempenho alcançáveis através do processamento paralelo.