VinBR

AEDs III 13/04/2011

Mar 6th, 2012
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. Hoje falaremos sobre Modelagem analítica de sistemas paralelos.
  2.  
  3. Nota do Professor:
  4. Ao considerar o desenvolvimento de um algoritimo paralelo pense sempre no algoritimo quanto na arquitetura sobre a qual ele vai rodar,
  5. diferente da programação sequencial no paralelismo um bom conhecimento da arquitetura é bastante importante.
  6.  
  7. // Existem maquinas quadprocessadas que na verdade não são porque o barramento é de um dual core.
  8.  
  9. // o E7 finge que são 8 cores pro sistema operacional, ai o SO prepara 8 threads pra ele.
  10.  
  11. // Pergunta ingenua, se eu usar 2 processadores meu programa não deveria rodar duas vezes mais rapido? não, tem sempre trabalho a mais
  12.  
  13. CONCEITO:
  14. Modelagem analítica é tentar otimizar um algoritimo pensando na arquitetura.
  15. Na variação do número de processadores,
  16. Na variação do tamanho de memória e etc.
  17.  
  18. CONCEITOS:
  19. Fontes geradoras de Overhead:
  20.  
  21. Comunicação,
  22.  
  23. Distribuição mal feita de processamento, gerando ociosidade em alguns processadores.
  24.  
  25. Computação excessiva que não é feita pela computação serial.
  26. // (normalmente relacionado ao gerenciamento dos processos que não existem em computação serial)
  27.  
  28. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  29.  
  30. Sendo
  31. Ts o tempo de execução serial
  32. Tp o tempo em paralelo
  33. e Tall a soma do tempo de uso de cada processador
  34. Temos:
  35.  
  36. Tall - Ts = Overhead total.
  37. // Em um caso ideal isso seria 0, significando que a tarefa foi perfeitamente dividida entre os processadores,
  38. // sem nenhum ganho de trabalho. Na prática no entanto isso nunca acontece.
  39.  
  40. CONCEITO:
  41. Speedup é a razão do tempo gasto na resolução de um problema em serial sobre sua resolução em paralelo com n computadores.
  42. Ou seja é mais ou menos isso: Ts/Tp(n), sendo Tp uma função de n.
  43. Um speed up alto, é um bom incentivo ao uso de paralelismo.
  44.  
  45. // Repare que se voce divide por 2 processadores Tp fica igual à 1/2 de Ts + Overhead
  46. // gerando um speed up um pouco menor que 2, e assim por diante a medida que se incrementa n.
  47.  
  48. CONCEITO:
  49. Superlinear speedup é quando o incremento de velocidade ao se usar 4 processadores é maior que 4 mesmo considerando o overhead.
  50. Isso ocorre quando fatores adversos como o tamanho da memória mudam juntamente com o número de processadores.
  51. Pode vir a ser ocaso de com 1 processador a memoria x explode, com 4 a memoria 4x não explode.
  52. // Tome cuidado portanto ao usar o valor de speed up como argumento para paralelismo,
  53. // ele é uma medida que é refém da arquitetura, e portanto pode passar uma falsa impressão por culpa dela.
  54.  
  55. Nota: Como usar o superlinear speedup? Pode-se por exemplo rodar dois programas sobre a mesma base de dados e isso faz com que
  56. o carregamento de dados de mais acertos que erros, evitando consultas na memoria, e dando um speedup só por usar dois programas
  57. seriais sobre a mesma base de dados em um sistema multicore.
  58.  
  59. // Nota pessoal: se eu ler isso aqui de novo, eu preciso detalhar melhor esse conceito, e essa nota aí encima.
  60. // mas por hoje ta quase no horario da prova, então não vou refazer isso não xP.
  61.  
  62. CONCEITO:
  63. Eficiencia E é o quão aproveitado foi o gasto do uso de seus processadores.
  64. Digamos que voce gastou muitos processadores mas incrementou pouco a velocidade de processamento.
  65. Em termos gerais a velocidade foi incrementada, mas voce gastou muitos mais processadores.
  66.  
  67. A eficiência então é o calculo do ganho de tempo dividido pelo número de processadores usados.
  68. É uma boa medida então quando é preciso racionar o uso dos processados, em um computador que pode ter vários outros programas,
  69. precisando de usa-los.
  70.  
  71. A eficiencia então é E = (speed up)/n
  72. Quanto mais próximo esse tempo for de Ts melhor.
  73.  
  74. // se n--> infinito E --> 0, porque voce está desperdiçando o tempo de muitos processadores.
  75. // e normalmente o speed up não vai crescer proporcionalmente a esse número.
  76. // portanto existe um valor ótimo de número de processadores onde E atinge seu maior valor e pode ser útil descobrir
  77. // esse valor.
  78.  
  79. CONCEITO:
  80. Isoeficiencia é o aumento de speed up necessário para compensar a perda de eficiência pelo aumento de processadores.
  81. // Isso gera em um gráfico de speedup/n linhas igualzinhas àquelas linhas isotermicas que apareciam em fisica a muito tempo atrás.
  82. // Se voce não se lembra tente desenhar isso, já te adianto que o formato dessa linha é uma hiperbole que em 0 quase toca
  83. // o eixo do speedup e em infinito quase toca o eixo n.
Advertisement
Add Comment
Please, Sign In to add comment