Prévia do material em texto
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA ARQUITETURA DE COMPUTADORES Exercícios – Lista 6 1. Faça uma comparação entre máquinas paralelas com memória compartilhada e com memória distribuída. Cite vantagens e desvantagens de cada uma. Resposta: Numa máquina paralela com memória compartilhada todos processadores enxergam o mesmo espaço de endereçamento, enquanto numa máquina com memória distribuída cada processador só tem acesso direto à sua memória local; acesso a memória remota requer um pedido através do envio de mensagem. As máquinas paralelas com memória compartilhada são mais fáceis de se programar pois o acesso e compartilhamento de dados é feito com instruções simples de leitura e escrita. Entretanto, a construção destas máquinas é mais difícil pois existe o desafio de permitir acesso concorrente, a uma posição ou módulo de memória, por parte (potencialmente) de todos os processadores. Já as máquinas paralelas com memória distribuída são mais fáceis de construir, porém mais difíceis de se programar. 2. Defina as etapas da metodologia de projetos de algoritmos definida por Ian Foster. Resposta: A metodologia de Foster é dividida em quatro etapas: Partição dos dados e do processamento com a criação das tarefas primitivas, estabelecimento do padrão de comunicação ente as tarefas, aglomeração de tarefas primitivas e mapeamento das tarefas nos processadores disponíveis 3. Considere a expressão para o speedup, definida por Amdahl, S = 1 / [s + (p/N)]. Plote o speedup como função do número de processadores (N), supondo que a fração estritamente serial (s) de um programa corresponde a: (a) 2 % (b) 20 % Usar N= 1, 2, 4, 8, 16, 32, 64. Resposta:. 4. Se s representa a fração serial de um programa, (a) prove que o limite superior do speedup, definido por Amdahl, é 1/s não importando quantos processadores (N) são utilizados. (b) Se as operações de um programa forem 90% paralelizáveis (p=0,9), qual é o speedup máximo alcançado numa máquina paralela com 9 processadores? (c) Qual é a eficiência alcançada neste caso? Resposta: O speedup é dado por S = 1 / [s + (p/N)], onde p representa a fração paralela do programa e N é o número de processadores. (a) Quanto N tende a infinito, S = 1/s . (b) S = (1 / ( 0,1 + 0,9/9)) = 1 / (0,2) = 5. (c) A eficiência será dada por S / N = 5 / 9 = 0,56, ou 56%. 5. Suponha um programa que tenha 67% das operações executadas sequencialmente. Calcule o speedup definido por Amdahl e o speedup escalável, definido por Gustafson, numa máquina paralela com 10 processadores. Comente os resultados obtidos. Resposta: Para o speedup definido por Amdahl, temos que S = 1 / [s + (p/N)] = 1 / [ 0,67 + (0,33 / 10) ] = 1,42. Já para o speedup escalável (Gustafson) temos que S = s + p.N = 0,67 + 0,33*10 = 3,97, ou seja, 2,8 vezes maior que o speedup tradional. Este efeito é devido ao fato que o speedup da lei de Amdahl assume que o tamanho do problema é fixo, ao passo que o speedup escalável assume que o tamanho do problema, e o número de processadores, pode aumentar.