Conteúdos da cadeira

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.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
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 ff a fração serial do tempo de execução, a parte que nem com infinitos núcleos acelera. A fração paralelizável é 1f1 - f e, com pp núcleos, demora (1f)/p(1 - f)/p. O speedup máximo é:

Sp=1f+1fpS_p = \frac{1}{f + \frac{1 - f}{p}}

O denominador lê-se como orçamento de tempo. A parcela ff nunca mexe. A parcela paralela encolhe com pp, mas nunca chega a zero enquanto pp for finito. Quando pp tende para infinito, o speedup tende para 1/f1/f. É 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 f=0,2f = 0{,}2.

Com 4 núcleos:

S4=10,2+0,8/4=10,2+0,2=2,5S_4 = \frac{1}{0{,}2 + 0{,}8/4} = \frac{1}{0{,}2 + 0{,}2} = 2{,}5

Com 16 núcleos:

S16=10,2+0,8/16=10,2+0,05=4,0S_{16} = \frac{1}{0{,}2 + 0{,}8/16} = \frac{1}{0{,}2 + 0{,}05} = 4{,}0

Com infinitos núcleos:

S=10,2=5,0S_{\infty} = \frac{1}{0{,}2} = 5{,}0

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.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.