1 / 23

Aluno: Hedley Luna Gois Oriá Disciplina: Introdução a Pesquisa Científica Prof. Jeandro

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. Organização. Introdução a Computação Paralela CUDA OpenCL Caixeiro Viajante Metaheurísticas.

sidney
Download Presentation

Aluno: Hedley Luna Gois Oriá Disciplina: Introdução a Pesquisa Científica Prof. Jeandro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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.

  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

More Related