COMPUTAÇÃO EVOLUTIVA PROGRAMAÇÃO PARALELA UTILIZANDO CUDA

0053

Aluno de Iniciação Científica: Evelim Carla Ribeiro (PIBIC/CNPq)

Curso: Ciência da Computação - Bacharelado (TN)

Orientador: Aurora Trinidad Ramirez Poxo

Departamento: Informática

Setor: Setor de Ciências Exatas

Área de Conhecimento: 10303006


RESUMO

O estudo de programação paralela efetuado em placas de vídeo está crescendo com a Computer Unified Device Architecture, mais conhecida como CUDA, desenvolvida pela NVIDIA. Este modelo de programação além de obter um aumento na performance computacional, é de fácil compreensão, pois seus códigos podem ser escritos em linguagem de alto nível. Este trabalho visa: 1) Entender este modelo de programação entre CPU e GPU (processamento que está contido na placa de vídeo), no qual a GPU utiliza aplicativos que são acelerados e executam subproblemas, que são resolvidos independentemente em paralelo por blocos de threads, assim livrando a CPU de trabalhar com as partes sequenciais; 2) Estudar o algoritmo evolutivo Enxame de Partículas, mais conhecido como PSO (Particle Swarm Optimization), com o objetivo de aprender sua estrutura de dados, além de compreender sua implementação em CUDA para criar maior familiaridade com essa plataforma. A execução do PSO ocorre em um conjunto de movimentos de partículas dentro do domínio que busca uma função para achar o melhor valor de fitness (função de avaliação); 3) Estudar os algoritmos GD (Generational Distance) e IGD (Inverted General Distance) para tomar conhecimento dessas métricas usadas em algoritmos evolutivos de muitos objetivos, e então implementá-los em CUDA, visando um aumento na performance do tempo de execução do algoritmo em relação ao não paralelizado. O GD é uma métrica experimental cujo valor representa quão "longe" o pareto front conhecido está do pareto front verdadeiro. E o IGD é a métrica inversa ao GD, no qual calcula a distância do pareto front verdadeiro para o pareto front conhecido. Os algoritmos pesquisados nesse estudo são especialmente aptos para serem programados com GPU, pois o PSO é um algoritmo populacional, e os algoritmos GD e IGD tratam problemas com muitos objetivos.

Palavras-chave: CUDA, PSO, Métricas de Muitos Objetivos