Uma ferramenta para integração de aplicações Java à computação paralela de propósito geral em processadores gráficos
Resumo
O objetivo deste trabalho é desenvolver uma ferramenta para integração de aplicações
Java com computação paralela de propósito geral em processadores gráficos (General
Purpose Computation on Graphics Processing Units– GPGPU). Esse tipo de computação
permite a execução de tarefas paralelizáveis com desempenho superior em relação às
CPUs da atualidade. Nestas arquiteturas, as ferramentas de programação dominantes
atualmente são as proprietárias: CUDA e Stream SDK, que são fornecidos pelas mesmas
empresas que fornecem o hardware (GPUs), respectivamente NVIDIA e AMD/ATI.
Estima-se que estas sejam as soluções de programação com melhor desempenho no seu
respectivo hardware. No entanto, os programas gerados, por serem específicos ao hardware
de cada fabricante, perdem em portabilidade. Neste contexto, a ferramenta proposta
neste trabalho constitui-se de um pacote com classes Java que usam o código dos SDKs
proprietários como base, de forma a oferecer um recurso flexível e que aumente a produtividade
do programador sem sacrificar o desempenho. TAJMAHAL, a ferramenta desenvolvida,
é apresentada com dois exemplos de programas paralelos: ordenação bitônica e
multiplicação de matrizes. Cada um desses exemplos possui os seus respectivos projetos
TAJMAHAL, contendo cada um deles uma implementação em CUDA e outra em Stream
SDK. Para testar a eficácia da ferramenta foi feita uma análise quantitativa e uma análise
qualitativa.
Coleções
Os arquivos de licença a seguir estão associados a este item: