Pergunta

Na computação paralela, a lei da Amdahl é usada principalmente para prever a velocidade máxima teórica para o processamento do programa usando vários processadores.Se denotarmos a velocidade, então a lei da Amdahl é dada pela fórmula:

s= 1 / ((1-p) + (p / n)

onde p é a proporção de um sistema ou programa que pode ser feito paralelo, e 1-p A proporção que permanece serial.Minha pergunta é: Como podemos calcular ou estimar p para um determinado programa?

Mais especificamente, minha pergunta tem duas partes:

Como podemos calcular p teoricamente? Como podemos calcular p na prática?

Referência: https://www.techopedia.com/definition/17035/amdahls-Law

Foi útil?

Solução

amdahl dividiu um programa em duas partes, serial e paralelo, e assumiu cada processador para ter a mesma capacidade de computação. Este conceito foi ainda mais refinado por Hill e Marty A lei de Amdahl na era multi-core , Em outras palavras, não é necessário que todo processador tenha a mesma capacidade de computação e cassidy Além da lei de Amdahl: Uma função objetiva que liga os ganhos de desempenho multiprocessador a atrasar e energia , em outras palavras, por que dividir em apenas duas partes.

Após uma breve visão geral da lei da Amdahl, respondo a pergunta como medir as partes seriais (1-P) e paralelo (p) de um programa.

    .
  1. Instrumentação estática: Coloque uma função que fornece a hora atual como GetTimeOfday no Linux no início do programa, o ponto em que você cria encadeamentos e pontos onde você participa de threads e, se necessário (se o seu programa faz um monte de pós-processamento ) No final do programa. Tome diferenças e você terá o valor da p. Use o programa de rosca única. Se você quiser ter mais precisão na medição, use a instrução RDTSCP em processadores Intel Excelente blog pelo Dr. John McCalpin .
  2. instrumentação dinâmica: é possível fazer o acima mesmo quando você não tiver o código-fonte para fazer instrumentação estática. Você pode usar o pré-carregamento da biblioteca (ld_preload) ou a ferramenta Intel Pin Introdução ao PIN usando exemplos ou semelhantes ferramentas de instrumentação binária dinâmica, como Dynamorio, Valgrind e Linux Perf Tutorial por Brendan Gregg . Todos eles são estruturas estabelecidas, totalmente gratuitas, com várias ferramentas de pesquisa usando-as.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top