VinBR

AEDs III 11/04/2011

Mar 6th, 2012
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.89 KB | None | 0 0
  1. CONCEITO:
  2. Overhead é o aumento de trabalho gasto na manutenção do funcionamento do paralelismo.
  3.  
  4. CONCEITOS:
  5. Particionamento de dados é dividir os dados para processamentos separados até que possam ser únidos no resultado final.
  6. Particionamento da execução é a criação de processos separados onde cada um realiza uma fração das tarefas sobre um conjunto de dados.
  7. Particionamento hibrido é a adaptação dos dois metodos acima em conjunto.
  8.  
  9. CONCEITO:
  10. The Owner Computes Rule -> O dono é quem computa, ou quem processa.
  11.  
  12. É garantir que os dados que foram tratados em um processador continuem naquele processador para os processamentos futuros.
  13. Dessa forma voce evita tranferencias longas e desnecessárias tranferências de dados entre caches de processadores diferentes.
  14. // Parece que o gerenciamento disso é manter uma thread mãe por processador que funciona do inicio ao fim do processamento, e garante que todos os dados que ela receber só serão delegados a outro processador uma vez que não houve mais atividades à serem feitas.
  15.  
  16. CONCEITO:
  17. O que é decomposição exploratória?
  18.  
  19. É o mapeamento e balanceamento da divisão de tarefas de maneira dinâmica e adequada entre os processadores.
  20. Este problema é NP completo, e se voce for faze isto de maneira dinâmica voce deve procurar uma heurística.
  21. // Um exemplo dessa atividade é dividir as tarefas de calcular os vários possíveis próximos passos
  22. // em um jogo de chadrês de maneira balanceada e sem abusar da capacidade de processamento.
  23.  
  24. CONCEITO:
  25. Decomposição especulativa:
  26. É o ato de gerar processos que processam dados que tem boa probabilidade de serem usados.
  27. E fazer isto antes da real requisição destes, podendo acontecer de voce se preciptar e precisar descartar um processamento inteiro.
  28. A vantagem disso é aproveitar os processadores que iriam estar ociosos, ocupando o tempo deles com uma especulação,
  29. A desvantagem é que corre-se o risco desse trabalho ser perdido.
  30. Um detalhe importante desse sistema é a necessidade de um mecanismo de "roll back" que é um meio para voltar a trás com
  31. todo o programa, e manter a coerência.
  32.  
  33. // Exemplo disso: Simulação discreta de eventos
  34. // Em uma simulação de trânsito é praticamente necessário a especulação de onde e quando cada carro deve surgir e etc,
  35. // Usa-se uma lista de eventos para organizar o que está a acontecer e o que está em pendencia de ser processado
  36. // Ex. de Roll Back no caso acima:
  37. // Nesse caso se eu suponho que o carro do rubens chegava ao Hospital Belo Horizonte mas outro evento
  38. // é lançado dizendo que rubens bateu antes de chegar lá é preciso fazer um roll back =/.
  39. // É meio o que o Grand Chase faz ele permite que cada usuário faça sua jogada, e se houver uma incoêrencia
  40. // ele arrasta o jogador que havia "sofrido o acidente" para a posição correta.
  41.  
  42. CONCEITO:
  43. Marsheling é o ato de pausar o funcionamento de um processo que está funcionando muito rápido para evitar sobrecarga
  44. de overhead e sincroniza-lo com os demais processos evitando especulações por demais precipitadas.
  45. // Imagino que esse processo de marsheling deve ter razões bem genericas para ser utilizado, ele se parece com uma ferramenta
  46. // de sincronização de processamentos, e portanto deve ter varias e varias aplicações, não necessáriamente apenas as que eu citei.
  47.  
  48. Nota do Professor:
  49. Na distribuição de tarefas e de dados, deve-se tomar o cuidado para manter um tamanho adequado de processamento para cada processador.
  50. -Se processos acabam muito rapido processando muito pouco o overhead explode, // rede
  51. -Se voce copia um volume de dados muito grande para cada execução durar um tempo razoavel, voce pode estourar é a memória. // disco
  52. -E se o número de processos superar em muito o de processadores mesmo com os dados balanceados,
  53. você estará ganhando overhead sem ganhar mais processamento. // processamento
  54. // Repare que o professor acabou citando os 3 casos para os quais ele nos chamou a atenção na ultima aula.
  55.  
  56. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  57.  
  58. CONCEITO:
  59. Como destribuir as tarefas que voce cria?
  60. há dois meios:
  61.  
  62. Geração estática: Seguro você sabe bem o que voce ta fazendo e o negocio não explode.
  63. // Exemplo: voce tem 4 processadores e um vetor a ser processado
  64. // voce divide o vetor em 4 e a distribuição está feita. Isso é estático.
  65.  
  66. Geração dinamica: É perigoso, deve saber onde limitar isso senão voce explode a memória e não aproveita o processamento.
  67. // Exemplo: voce tem 4 processadores e tem que prever jogadas em um jogo de chadrês.
  68. // o numero de possíveis jogadas é infinito, então voce tem que saber bem onde parar de especular
  69. // para não sobrecarregar sua máquina fisica. Tanto em questão de memória quanto em processamento.
  70.  
  71. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  72.  
  73. CONCEITO:
  74. O que é interação de tarefas?
  75. É um nome que reúni "mapeamento" e a "comunicação" em uma só palavra.
  76. Podemos dividir os meios de se realizar essa tarefa em dois grupos:
  77.  
  78. Interação estática: fácil.
  79. // Onde voce gera tarefas de maneira estatica e apenas as comunicações realmente necessárias, sendo fácil e seguro de se fazer.
  80.  
  81. Interação dinamica: difícil.
  82. // Onde voce gera um diálogo entre os processos para decidir quem deve fazer o quê, isso aumenta a carga de comunicação
  83. // mas pode vir a melhorar em muito a eficiência.
  84.  
  85. Nesse caso diz-se que o ótimo é inimigo do bom.
  86. Uma ótima interação pode gastar mais processamento que o próprio programa,
  87. assim frequentemente uma heurística de balanceamento de interação é mais produtiva.
  88.  
  89. // Sendo este um problema NP finito, assuma então que se os processadores estiverem sempre ocupados, e sem muito overhead
  90. // essa solução já está boa de mais, não perca muito tempo atrás do ótimo.
  91.  
  92. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  93.  
  94. Relembrando
  95. CONCEITO:
  96. O que é mapeamento?
  97. Mapeamento é balancear as tarefas para que os processadores sejam bem aproveitados.
  98. Ou seja, cuidar das dependencias de dados para que ninguém fique esperando ninguém etc.
  99.  
  100. CONCEITO:
  101. Distribuição cíclica é distribuir as tarefas de maneira ciclica entre os processadores, uma maneira de denotar isso é dizer que
  102. a tarefa x será responsabilidade do processador x%n sendo n o número de processadores.
  103. Assim consegue-se um certo balanceamento de número de tarefas entre os processos,
  104. com o risco de algumas ficarem travadas devido a dependencias, por isso seu uso deve ser feito com cuidado.
  105.  
  106. Nota do Professor: Não vamos ser cobrados de fazer nada ótimo mas temos de entender o que se passa nessa área.
  107. Principalmente nas provas.
  108.  
  109. CONCEITO:
  110. Mapeamento Hierarquico é quando voce tem uma zona de processadores tipo um cluster ou processamento em rede
  111. e é preciso bolar um mapeamento para os dados entre quadcores e coisas do tipo.
  112. // É como se fosse um mapeamento em cima do outro, pois em pequena escala dentro de um quadcore pode haver mais comunicação,
  113. // agora entre os diferentes clusters ainda que pouca comunição pode ser bem mais cara e deve ser balanceada de acordo.
  114.  
  115. CONCEITOS:
  116. -Mapeamento dinâmico centralizado é quando você tem um "Mestre do jogo" que dita quem faz o que.
  117.  
  118. -Mapeamento dinamico distribuido é quando os processos decidem sozinhos ("entropia") o que fazer, sem haver realmente um lider.
  119. // É o CAOS nas palavras do professor.
  120.  
  121. // Comentario do Professor: na prova agente vai ter que ver paralelismo e dizer pro professor onde tem oportunidades pra
  122. // isso o que seria bom de se fazer e etc, então não esquente tanto a cabeça com detalhes.
  123.  
  124. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  125.  
  126. Listagem de Estratégias:
  127. Maximizar a localidade de dados. // disco
  128. Minimizar o volume de troca de dados. // banda
  129. Minimizar a frequência de troca de dados // latencia (banda e latencia fazem parte da rede)
  130. Minimizar os gargalos, distribuir as tarefas e e evitar os "hot-spots"
  131. que são os pacotes de dados que exigem mais processamento que o normal.
  132.  
  133. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  134.  
  135. O negócio de AEDs 3 é o Compromisso e pensar sempre como balancear esse tanto de coisas que se tem por ai.
  136.  
  137. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  138.  
  139. Modelos de algoritimos paralelos:
  140.  
  141. Master-slave model
  142.  
  143. Pipleline/produtor-consumidor
  144.  
  145. e modelos hybridos.
  146.  
  147. UAHH ELE FALA MTA COISA E MTO RAPIDO. uahhhhh uahhh xP
Advertisement
Add Comment
Please, Sign In to add comment