Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Roger William Weber
Título: Ferramenta para Execução de Scripts OPL para otimização Combinatória em GPU
 
Conclusão:
Com a pesquisa sobre otimização combinatória, verificou-se a necessidade de uma ferramenta de apoio à resolução de problemas desta natureza. Observou-se que a área de otimização combinatória usando programação OPL já possui implementações que funcionam e com resultados excelentes. Entretanto, verificou-se que não utilizam o paralelismo em placas de vídeo. Os algoritmos que resolvem estes problemas, como Simplex, podem ser desenvolvidos usando paralelismo, como visto nos trabalhos correlatos. Assim sendo, foi desenvolvida uma ferramenta para converter scripts em OPL para código correspondente em linguagem C/C++, com algoritmos paralelos em GPU.
O objetivo principal do trabalho foi alcançado com sucesso. O compilador desenvolvido mostrou-se capaz de detectar os erros léxicos, sintáticos e semânticos nos programas testados. No entanto, não foi possível desenvolver toda a análise semântica da gramática, mas uma parte importante foi implementada. A execução do programa gerado pela ferramenta apresentou precisão aceitável nos resultados comparados à ferramenta IBM ILOG CPLEX, com poucas divergências de arredondamento de valores.
Observa-se que não foi possível realizar uma comparação de tempo de execução com a ferramenta IBM ILOG CPLEX devido à restrição de tamanho do problema modelado na versão gratuita (no máximo 500 restrições). Porém, conforme os trabalhos correlatos, o ganho de tempo de execução de programas em GPU aumenta conforme o tamanho do problema e os resultados se mantiveram com precisão aceitável com um número grande de variáveis.
A exemplo dos trabalhos correlatos, existem diversas pesquisas na área de utilização de processamento gráfico para resolução de problemas de programação linear. Logo, a execução de scripts OPL na plataforma GPU com a ferramenta desenvolvida provê uma forma de executar os programas já criados. Além disso, a elaboração e a manutenção desses scripts em OPL é mais simples do que a respectiva implementação em C++ com GPU, visto que os problemas em OPL podem ser modelados por pessoas da área de negócio ou da matemática que não estejam familiarizadas com C++ para GPU.