A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Uma Análise das plataformas CUDA e OpenCL usando MetaHeurísticas aplicadas no Problema do Caixeiro Viajante Aluno: Hedley Luna Gois Oriá Disciplina: Introdução.

Apresentações semelhantes


Apresentação em tema: "Uma Análise das plataformas CUDA e OpenCL usando MetaHeurísticas aplicadas no Problema do Caixeiro Viajante Aluno: Hedley Luna Gois Oriá Disciplina: Introdução."— Transcrição da apresentação:

1 Uma Análise das plataformas CUDA e OpenCL usando MetaHeurísticas aplicadas no Problema do Caixeiro Viajante Aluno: Hedley Luna Gois Oriá Disciplina: Introdução a Pesquisa Científica Prof. Jeandro

2 Organização Introdução a Computação Paralela CUDA OpenCL
Caixeiro Viajante Metaheurísticas

3 O que vem por aí....

4 Computação Paralela Computação paralela é uma forma de computação em que vários cálculos são realizados simultaneamente! A Computação paralela já é usada há vários anos na computação de alto desempenho! Geralmente é usada para resolver problemas matemáticos supercomplexos. Quando não é mais possível melhorar o hardware, usa-se a computação paralela. A recente preocupação com o consumo de energia fez com que a computação paralela tivesse um “boom”.

5 Continuação.... Tipos de Arquiteturas Paralelas: Multiprocessadores,Multicomputadores e Clusters. Tipos de Paralelismo: No Bit,Na Instrução,No Dado e Na Tarefa. A programação paralela é geralmente implementada através de trocas de mensagens entre os núcleos. Exemplo: OpenMP e MPI. O grande problema da computação paralela se dá na complexidade da implementação! Mais recentemente nasceu uma(mais uma) plataforma de programação paralela: a CUDA. A mais nova plataforma para a programação paralela é a OpenCL.

6 Cluster da Beowulf System

7 CUDA CUDA = Compute Unified Device Architecture.
Propriedade da Nvidia. GPGPU Computação Heterogênea CUDA provê suporte para até 100 núcleos de processamento! E mais de 1000 threads!(E isso vai aumentar!) A série TESLA.

8 Continuação... A única linguagem atualmente suportada pelo CUDA é o C, mas futuramente também C++ e Fortran. A partir das novas placas, de codinome Fenri, o C++ já será suportado. Os códigos paralelisados usando o CUDA serão executados em um dispositivo através de várias threads. Threads. Blocos. Cada thread executa apenas uma parte do código. As threads podem(e devem) ser sincronizadas durante a execução do programa, visando um ganho maior de eficiência.

9 Continuação... O CUDA usa memória compartilhada entre as threads.
Entretanto, por questões de segurança, thereads de blocos diferentes não se comunicam. O desenvolvedor não precisa de preocupar em gerenciar as threads. Pode ser usada em conjunto com OpenMP e MPI. A comunicação entre as GPU’s.

10 Cluster feito de GPU’s Nvidia Tesla

11 Continuação...

12 Exemplos

13 Exemplo

14 Exemplo

15 OpenCL OpenCL (Open Computing Language)
Primeira plataforma paralela totalmente free! Várias empresas dão suporte ao OpenCL, entre elas, Nvidia e ATI(AMD). Mais nova plataforma, algumas bibliotecas ainda serão lançadas. Ao contrário do CUDA, o OpenCL é suportado tanto nas Nvidia quanto nas ATI. O OpenCL já permite o uso nativo do C++.

16 Continuação.. GPGPU Gerenciamento de Threads é transparente.
Computação Heterogênea. O OpenCL ainda não possui compilador próprio, ao contrário do CUDA. O OpenCL é um “irmão” do CUDA, pois os códigos escritos são muito parecidos.

17 Exemplo

18 Exemplo

19 Caixeiro Viajante O problema consiste em visitar todas as cidades em um dado circuito sem que cada cidade seja visitada mais de uma vez, com o menos trajeto possível. É o problema mais explorado na área da computação. É um problema de combinatória. Tem aplicações nas áreas de logística,genética,produção e outros. É um problema de complexidade NP-Hard.

20 Continuação.. Se tivermos, n cidades, teremos (n-1)! rotas diferentes! Por isso, mesmo problemas pequenos são extremamente difíceis. n Rotas por segundo (n-1)! Cálculo total 5 250 milhões 24 Insignificante 10 110 milhões 0.003 seg 15 71 milhões 87 bilhões 20 minutos 20 53 milhões 1.2x1017 73 anos 25 52 milhões 6.2x1023 470 milhões de anos

21 Metaheurísticas Metaheurísticas são estratégias de alto nível para explorar espaços de busca usando diferentes métodos de resolução visando um balanço entre diversificação e intesidade de procura no espaço escolhido. Exemplos de metaheurísticas: Algoritmo Genético,Otimização da Colônia de Formigas,Simullated Annealing,Tabu Search e etc.

22 Continuação... A melhor forma de tentar resolver o problema do caixeiro viajante em um tempo computacional viável é a utilização das metaheurísticas, pois, apesar delas não apontarem a melhor solução(geralmente), chegam muito próximo disso em bem menos tempo. O grande problema das metaheurísticas é que, se mal implementadas, não fornecem uma solução de alta qualidade, pois o algoritmo pode parar em um ótimo local.

23 Obrigado Pela Paciência
Se alguem não tiver dormido ainda, pode perguntar alguma coisa. =D


Carregar ppt "Uma Análise das plataformas CUDA e OpenCL usando MetaHeurísticas aplicadas no Problema do Caixeiro Viajante Aluno: Hedley Luna Gois Oriá Disciplina: Introdução."

Apresentações semelhantes


Anúncios Google