Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouVítor Orta Alterado mais de 10 anos atrás
1
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant Leonardo Gomes de Oliveira
2
Conteúdo Processamento Paralelo Arquiteturas de Computadores Paralelos Paradigmas de Programação Conclusões
3
O que é Processamento Paralelo? Execução simultânea (concorrente) de vários programas, em diferentes processadores, visando a solução de um único problema
4
Por que Usar Programação Paralela? Algumas classes de problemas: Grandes demais para máquinas seqüenciais – tempo de execução muito longo Os resultados somente são úteis se obtidos dentro de um limite máximo de tempo
5
Vantagens da Computação Paralela Computação mais rápida Melhor relação custo/benefício Escalabilidade: o desempenho de um programa melhora se ele for executado em mais processadores
6
Validação dos Resultados fornecidos pela Computação Paralela Resultados obtidos devem ser os mesmos: a cada execução do código paralelo quando comparados com aqueles obtidos na versão seqüencial do programa
7
Por que preciso Programar em Paralelo? Não existem ferramentas de auxílio ao desenvolvimento de programas paralelos que identifiquem automaticamente o paralelismo de aplicações genéricas gerem código eficiente para as mesmas
8
Por que preciso Programar em Paralelo? (II) A programação paralela pode ser dividida em duas etapas Encontrar o paralelismo Explorar o paralelismo
9
Determinando Paralelismo É a parte mais difícil Uma dica: como você faria para distribuir sua aplicação entre vários trabalhadores? A sutileza do que você procura é a razão pela qual o compilador não pode fazer a paralelização por você!
10
Explorando Paralelismo Para explorar o paralelismo, deve-se distribuir a carga computacional entre os diferentes processadores A melhor forma de se fazer isso depende da natureza da aplicação e da arquitetura do computador paralelo usado: mapeamento => eficiência
11
Forma de um Programa Paralelo Inicialização Tarefa 1 Tarefa 2 Tarefa 3 Divisão das Tarefas Coleta Fim
12
Rodada de Computação/Comunicação
13
Controle Explícito do Paralelismo O programador decompõe o problema em tarefas independentes: Decomposição de dados Decomposição de controle O programador codifica explicitamente o controle entre os processos
14
Decomposição de Dados Os dados do problema são particionados entre os diferentes processadores Cada processador executa basicamente o mesmo código, só que sobre dados diferentes
15
Exemplos de Decomposição de Dados Cálculo da área sob uma curva Tarefas independentes!
16
Vantagens da Decomposição de Dados Pode-se dividir o domínio de forma a que todos os processadores realizem a mesma quantidade de computação Muitos problemas exigem comunicação entre as tarefas somente nas fronteiras dos subdomínios de dados
17
Sincronismo e Comunicação Processos devem cooperar entre si Troca de dados deve ser feita na ordem correta Sincronismo é necessário!
18
Medindo o Desempenho do Programa Paralelo Quando se desenvolve uma aplicação paralela, é útil sabermos o quanto seu desempenho se aproxima do ótimo Essa valor teórico é função: da fração seqüencial f do código do nº de processadores, n
19
Medindo o Desempenho do Programa Paralelo (II) A diferença entre o valor ideal e o valor obtido na prática aumenta com o aumento do nº de processadores Para todo programa paralelo, há um valor de n acima do qual não compensa ir
20
Medindo o Desempenho do Programa Paralelo (III) No mundo real, o overhead causado pela comunicação entre processadores chega até a reduzir o speedup após certos valores de n Speedup: Quantas vezes o código paralelo fica mais rápido (que sua versão seqüencial) com o nº de processadores utilizados
21
Exemplo Localizar a sequência que possui soma máxima.
22
Exemplo Divide as tarefas para os n processadores, de forma que apenas o último poderá conter um número diferente dos demais.
23
Exemplo 3
24
3 15 12
25
Conclusões Computação paralela é a forma mais acessível de se resolver problemas que exigem muita computação Está se difundindo cada vez mais pela queda no custo dos componentes eletrônicos
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.