VinBR

AEDs III 06/04/2011

Mar 6th, 2012
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. A aula de hoje também será sobre programação paralela.
  2.  
  3. // Falaremos de projeto de algoritomos paralelos, um pouco nessa aula e um pouco talvez na seguinte.
  4.  
  5. Ao pensar no paralelismo de um programa deve-se pensar em "Tarefas" de modo que possam ser distribuidas entre as partições do programa.
  6. // Há sempre no paralelismo a ideia de que voce acaba com uma carga maior de tarefas do existiria em processamento sequencial
  7. // A questão então é se compensa mesmo usar o paralelismo,
  8. // Normalmente se o tempo de execução for mais rapido, já é positivo,
  9. // tem outros detalhes a se considerar mas não falaremos deles aqui.
  10.  
  11. Quanto às tarefas, existem dois tipos:
  12. Os programas com tarefas regulares.
  13. // Nesse caso as tarefas são visíveis voce consegue entender o que é preciso fazer e quantas vezes de cada coisa.
  14. Os programas com tarefas irregulares.
  15. // Nesse caso as tarefas ficam desbalanceadas novas tarefas podem surgir durante o processamento, e é necessária um gasto maior
  16. // de processamento com a gestão e distribuição delas.
  17.  
  18. Nota do Professor:
  19. Ao pensar no lucro de se fazer paralelismo não pense no numero máximo de processadores que voce podera usar,
  20. mas sim quantos processadores voce usará a maior parte do tempo. Assim voce consegue uma idéia mais real do que se passa.
  21.  
  22. CONCEITO:
  23. Caminho Crítico é o maior caminho que será realizado necessariamente de forma linear.
  24. Esse caminho é o garga-lo de tempo. Por mais que voce distribua as demais tarefas, se voce não conseguir reduzir esse garga-lo.
  25. o tempo final do seu programa será igual ao tempo do caminho crítico.
  26. // Note que uma vez que voce elimine um caminho crítico outro aparece pra tomar o lugar dele, a idéia é tornar o programa
  27. // mais balanceado, sem nenhum caminho muito mais longo que outro.
  28.  
  29. CONCEITO:
  30. Mapeamento é a distribuição de processos por entre os processadores
  31.  
  32. Deve-se fazer o mapeamento de modo que nenhum processo fique sobrecarregado ou ele será o caminho critico,
  33. E tambem devem haver poucas trocas de informações entre os processos pois elas são lentas e acabam prejudicando o programa.
  34. Lembre-se no entando que mapeamento é um problema NP completo e portanto não tem solução ótima que dê pra se fazer.
  35.  
  36. Macetes: - os processos do caminho crítico devem ser associados a processadores tão rapido quanto possivel.
  37. - divida um processo pra cada processador se possivel.
  38.  
  39. CONCEITO:
  40. O que é Decomposição Recursiva?
  41. Decomposição Recursiva de tarefas é o programa que ao trabalhar na solução de um problema
  42. gera a cada recursão uma nova arvore de tarefas, e para cada uma inicia um novo processo.
  43. É uma atividade que se aplica muito bem a técnicas de divisão e conquista.
  44.  
  45. Nota do Professor:
  46. Desperdiçar espaço para diminuir a comunicação entre processadores pode valer a pena,
  47. quando o custo do espaço e da cópia dos dados for menor que o custo da comunicação.
  48. É uma troca que deve ser bem pensada as vezes.
Advertisement
Add Comment
Please, Sign In to add comment