GPUHELP: um ambiente de apoio à execução de programas paralelos em arquiteturas de GPU
Abstract
Frente às complexas dificuldades que envolvem as aplicações científicas, pesquisadores
buscam novos meios de otimizar o processamento destas, utilizando-se de novos conceitos e
paradigmas em programação paralela e distribuída. Uma alternativa emergente a este cenário, é
a utilização de GPUs (Graphics Processing Unit) devido a seu alto poder computacional. Contudo,
juntamente com os benefícios advindos da utilização de tais técnicas, tem-se diversas e
complexas questões relacionadas ao ensino e aprendizado das mesmas. Desse modo, pesquisadores
passaram a dedicar esforços para obter um melhor resultado no ensino destas áreas.
Assim, surgiram os ambientes de apoio ao ensino de programação paralela. Tais ambientes provêem
um conjunto de ferramentas para o desenvolvimento e teste de aplicações, aprimorando
assim a experiência educacional. Entretanto, as pesquisas atuais focam em ambientes de apoio
a programação paralela para arquiteturas de CPU, não existindo assim, ambientes de apoio voltados
as arquiteturas de GPU. A inexistência de tais ambientes tem impacto negativo, durante o
processo de aprendizado, comprovado em diferentes pesquisas científicas. Neste contexto, este
trabalho apresenta um ambiente de apoio a programação paralela em GPU, intitulado GPUHelp.
O GPUHelp proporciona aos usuários uma solução completa para o desenvolvimento e teste
de códigos para arquiteturas de GPU, o CUDA e OpenCL, mesmo para aqueles usuários que
não possuem placas gráficas em seus computadores, o que não era possível até então, visto a
necessidade de uma placa gráfica compatível com tais arquiteturas. As avaliações realizadas
demonstraram que o GPUHelp é uma solução viável com aplicabilidades distintas nos cenários
de ensino e treinamento de programação paralela em GPU.