• Nenhum resultado encontrado

6.3 An´ alise dos Resultados

6.3.1 An´ alise com uma Implementa¸c˜ ao Sequencial

Como mostrado na se¸c˜ao de resultados obtidos, realizamos para o caso da aplica¸c˜ao de c´alculo matricial um experimento extra, a fim de verificar o desempenho da implementa¸c˜ao Gamma-GPU contra uma implementa¸c˜ao sequencial de Gamma, chamada Gamma-Seq. Isto porque j´a vimos que Gamma-GPU foi bem superior `

a Gamma-Base em praticamente todos os casos de teste, contudo, as duas imple- menta¸c˜oes compartilham o mesmo arcabou¸co arquitetural de troca de mensagens, e este arcabou¸co sofre com problemas de desempenho devido ao fato de n˜ao haver implementado um escalonador apropriado como o proposto na Se¸c˜ao 4.5. Com isso, a implementa¸c˜ao Gamma-Base acaba sempre sendo superada pela vers˜ao sequencial de Gamma, que n˜ao possui nenhum overhead de troca de mensagens. Em algumas aplica¸c˜oes de teste, principalmente aquelas que possuem um potencial menor de pa- ralelismo, at´e mesmo a Gamma-GPU pode vir a ser superada pela implementa¸c˜ao sequencial. Por´em, quando aumentamos o tamanho da entrada para valores muito grandes, a implementa¸c˜ao Gamma-GPU, mesmo sofrendo dos impactos da falta do escalonador no ambiente distribu´ıdo, ´e capaz de compensar esta limita¸c˜ao atrav´es do ganho obtido pelo processamento nas GPUs, e se sobressai em rela¸c˜ao `a Gamma-Seq. Por isso resolvemos utilizar a aplica¸c˜ao de c´alculo matricial com entradas mai- ores que as anteriormente empregadas, e procedemos os experimentos nas vers˜oes Gamma-Seq e Gamma-GPU. A vers˜ao Gamma-Base n˜ao foi testada nesta ocasi˜ao, pois como j´a falamos, ´e sempre superada at´e mesmo pela vers˜ao sequencial, e com os novos tamanhos de entrada, chegando a cem mil elementos, levaria muito tempo para executar e n˜ao contribuiria para a an´alise. Como podemos notar nos resultados obtidos, a implementa¸c˜ao Gamma-Seq ficou pr´oxima `a Gamma-GPU em rela¸c˜ao ao tempo de execu¸c˜ao para a primeira entrada de 30 mil tuplas, entretanto, quando aumentamos a entrada para 60 e 100 mil tuplas, percebemos claramente os impactos sofridos pela vers˜ao sequencial, ao passo que a vers˜ao com GPUs mant´em-se pratica- mente est´avel em seu tempo de execu¸c˜ao, levando a speedups bastante significativos, chegando a 27 vezes mais r´apido para a entrada de 100 mil tuplas.

Outras aplica¸c˜oes tamb´em tendem a demonstrar um comportamento similar quando a entrada utilizada ´e muito grande, mas cada uma com magnitudes de ganho

diferentes, de acordo com as caracter´ısticas de paralelismo exibidas pelas mesmas. Como exemplo, no trabalho contemporˆaneo ao nosso que desenvolveu a aplica¸c˜ao de fus˜ao de dados em Gamma [11] que utilizamos como um dos casos de teste neste tra- balho, foram procedidos experimentos comparando as implementa¸c˜oes Gamma-Seq, Gamma-Base, e Gamma-GPU. Como j´a discutimos, a aplica¸c˜ao de fus˜ao de dados exibe um paralelismo limitado no tocante ao n´umero de rea¸c˜oes que podem ocorrer simultaneamente, e ainda assim, para a maior entrada testada no referido trabalho (base de dados com onze sensores), foi constatado que a implementa¸c˜ao Gamma- GPU superou a vers˜ao sequencial Gamma-Seq, obtendo um speedup pr´oximo a duas vezes mais r´apido.

Cap´ıtulo 7

Conclus˜oes

Neste ´ultimo cap´ıtulo faremos a conclus˜ao do trabalho, no qual falaremos sobre o cumprimento dos objetivos elencados no in´ıcio da disserta¸c˜ao, e discutiremos a respeito dos pontos fortes e fracos do que foi desenvolvido, evidenciando as contri- bui¸c˜oes trazidas pela solu¸c˜ao proposta, e citando limita¸c˜oes e poss´ıveis melhorias atrav´es de trabalhos futuros.

7.1

Realiza¸c˜ao dos Objetivos

O principal objetivo desta disserta¸c˜ao foi prover uma nova implementa¸c˜ao do para- digma Gamma que fornecesse suporte `a execu¸c˜ao de programas sobre a arquitetura das GPUs. Isso porque vemos em Gamma uma forma simples e natural de se expres- sar problemas, e acreditamos que seu modelo de computa¸c˜ao se casaria muito bem ao modo de processamento adotado pelas GPUs, de maneira que a uni˜ao destes dois conceitos poderia trazer um beneficio em dobro, com os programas Gamma sendo acelerados pelas GPUs, e com o acesso `as GPUs sendo feito de forma transparente usando Gamma. Utilizando como base uma implementa¸c˜ao paralela e distribu´ıda j´a existente voltada para plataformas com processadores convencionais, fomos capazes de estendˆe-la com sucesso, mantendo o suporte a um ambiente computacional dis- tribu´ıdo e adicionando `a arquitetura do modelo as GPUs, o que resultou em uma plataforma heterogˆenea de processamento. Chamamos esta nova implementa¸c˜ao de Gamma-GPU.

Pudemos verificar atrav´es de experimentos pr´aticos realizados sobre um cluster de GPUs que a nossa nova implementa¸c˜ao comportou-se de maneira correta em rela¸c˜ao `as respostas emitidas na execu¸c˜ao de v´arios programas em Gamma, como o de c´alculo de n´umeros primos, de ordena¸c˜ao de valores, de fus˜ao de dados, en- tre outros. Al´em disso, mensuramos os tempos de execu¸c˜ao das aplica¸c˜oes quando executadas sobre a implementa¸c˜ao Gamma-GPU e os confrontamos com os tempos da implementa¸c˜ao base que n˜ao suporta GPUs. Percebemos claramente o grande

benef´ıcio em termos de acelera¸c˜ao trazidos pelo novo modelo, com speedups que chegaram a valores bastante expressivos superando o modelo precedente em uma centena de vezes para alguns dos casos de teste. Para uma das aplica¸c˜oes de teste, a de c´alculo matricial, realizamos um experimento extra com entradas maiores a fim de proceder uma compara¸c˜ao de desempenho de Gamma-GPU com uma imple- menta¸c˜ao sequencial de Gamma, e comprovamos tamb´em nesse caso, que Gamma- GPU foi capaz de prover boas acelera¸c˜oes para o tempo de execu¸c˜ao do programa em quest˜ao.

Desta forma, acreditamos ter cumprido de forma satisfat´oria os objetivos que identificamos no in´ıcio do trabalho, tendo fornecido um estudo e uma implementa¸c˜ao mais atuais relacionados ao paradigma Gamma, que deve motivar outros pesquisa- dores a estudarem e contribu´ırem com aspectos ligados ao tema. Cumprindo os objetivos, evidenciamos v´arios pontos fortes da solu¸c˜ao desenvolvida, mas natural- mente, existem tamb´em limita¸c˜oes que surgiram ao longo do desenvolvimento da solu¸c˜ao que ainda est˜ao em aberto, e nos permitem vislumbrar uma s´erie de incre- mentos ao modelo implementado, conforme veremos adiante.