09.05.2015 Views

universidade feevale douglas neves spindler algoritmos para ...

universidade feevale douglas neves spindler algoritmos para ...

universidade feevale douglas neves spindler algoritmos para ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

RESUMO<br />

O advento dos processadores multi-core nos últimos anos é resultado da crescente demanda<br />

por poder de processamento pelos usuários. No segmento de placas gráficas, este fato tem<br />

resultado em GPUs com uma capacidade de processamento cada vez maior, proporcionada<br />

pela grande quantidade de unidades lógicas e aritméticas e de núcleos presentes dentro de<br />

cada processador, de modo que estes dispositivos tenham deixado de ser utilizados apenas<br />

<strong>para</strong> processamento gráfico e tenham se tornado ferramentas computacionais de propósito<br />

geral. Estes avanços na área de processamento <strong>para</strong>lelo têm viabilizado a resolução de<br />

diversos problemas no meio científico, entre eles a geração de fractais. No contexto dos<br />

sistemas dinâmicos, os <strong>algoritmos</strong> que descrevem a geração destes objetos são caracterizados<br />

pela aplicação, através de repetidas iterações, de uma determinada função complexa a um<br />

conjunto de dados de entrada, o qual, <strong>para</strong> os propósitos deste trabalho, consiste nos pixels de<br />

uma imagem. Dado que este processo pode ser feito de maneira independente <strong>para</strong> cada pixel,<br />

o mesmo apresenta um grande potencial de <strong>para</strong>lelização. Desta forma, o objetivo geral deste<br />

trabalho é prover uma análise de desempenho de <strong>algoritmos</strong> <strong>para</strong> geração de fractais baseados<br />

em uma arquitetura many-core com GPU e com<strong>para</strong>r os resultados obtidos com o<br />

desempenho dos mesmos <strong>algoritmos</strong> sendo executados de modo sequencial e <strong>para</strong>lelo com<br />

uma CPU multi-core tradicional. Para tanto, foram utilizados os modelos de programação<br />

OpenMP, <strong>para</strong> a implementação dos <strong>algoritmos</strong> <strong>para</strong>lelos baseados em CPU, e o modelo de<br />

programação e arquitetura CUDA, da NVIDIA, <strong>para</strong> as execuções com GPU. Os testes foram<br />

feitos utilizando seis diferentes funções <strong>para</strong> a geração dos fractais, e variando parâmetros<br />

como as dimensões da imagem e número máximo de iterações <strong>para</strong> cada uma delas. Os<br />

resultados comprovaram o ganho de desempenho esperado ao utilizar modelos baseados em<br />

GPU <strong>para</strong> a execução dos <strong>algoritmos</strong>, com alguns cenários apresentando speedups de quase<br />

duas ordens de magnitude em relação às execuções sequenciais. Entretanto, percebeu-se uma<br />

grande variação nos ganhos de desempenho obtidos <strong>para</strong> cada uma das funções, evidenciando<br />

uma forte dependência com as configurações dos parâmetros utilizados <strong>para</strong> os testes. As<br />

execuções com OpenMP apresentaram resultados bem mais modestos, em média<br />

aproximadamente três vezes mais rápidas que as execuções sequenciais, porém, com menor<br />

variação entre as diferentes funções.<br />

Palavras-chave: Análise de desempenho. Fractais. Programação <strong>para</strong>lela. GPU. CUDA.<br />

OpenMP.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!