Banca de TCC – Leonardo Corrêa Rodrigues
UNIVERSIDADE FEDERAL DE PELOTAS
CENTRO DE DESENVOLVIMENTO TECNOLÓGICO
TRABALHO DE CONCLUSÃO DE CURSO
Apresentações Finais (2018/1)
Análise de estratégias de paralelismo em CPU e GPU para o modelo Lavras Simulation of Hydrology (LASH)
por
Leonardo Corrêa Rodrigues
Curso:
Ciência da Computação
Banca:
Prof. Marilton Sanchotene de Aguiar (orientador(a))
Prof. Samuel Beskow (coorientador(a))
Prof. Gerson Geraldo Homrich Cavalheiro
Prof. Alice Steinmetz
Data: 11/07/2018
Hora: 13:30h
Local: Sala 311 Anglo
Resumo do Trabalho:
O modelo Lavras Simulation of Hydrology (LASH) constitui-se em um software capaz de mensurar a quantidade de processos hidrológicos ocorridos na escala de bacias hidrográficas. Por possuir uma grande quantidade de equações matemáticas voltadas à quantificação destes processos, possuímos parâmetros nas equações que permanecem desconhecidos, ou são imensuráveis para determinadas bacias analisadas. O LASH tem como proposta atribuir parâmetros que se aproximem da realidade do local, e através de um algoritmo, evoluir esses parâmetros até convergirem para um mínimo erro em relação a realidade. Nesse projeto, será desenvolvida uma versão paralela da terceira versão do modelo LASH, cuja linguagem de programação é C++ e seu modo de operação atual é sequencial. O modelo utiliza o algoritmo genético SCE-UA para calibrar um conjunto de parâmetros desconhecidos a partir de um limiar de valores e, no entanto, existe uma problemática associada ao mau aproveitamento dos recursos disponibilizados pela máquina, tornando lenta a sua execução. Para melhorar a performance do modelo, são aplicados métodos paralelos de programação, utilizando tanto a CPU (do inglês, Central Processing Unit), através da ferramenta Open Multi-Processing (OpenMP), quanto a GPU (do inglês, Graphics Processing Unit), através da arquitetura OpenCL. A finalidade consiste em distribuir o trabalho entre seus processadores. Espera-se que a divisão de trabalho facilite a separação de população proposta pelo algoritmo, acelerando o processo de encontrar o seu ponto de parada, tornando o trabalho mais eficiente e seu resultado mais preciso. Ao final do trabalho, será realizada uma comparação entre as versões paralelas, com as diferentes ferramentas, e a versão sequencial, apresentando os resultados obtidos e definindo o melhor método de execução do programa. Diferentes etapas (geração da população hidrográfica, carregamento dos arquivos, cálculo da função objetivo, evolução) do modelo LASH foram paralelizadas, tanto em CPU quando em GPU. Os principais resultados alcançados foram: uma diminuição do tempo de execução de 19.39% na etapa de carregamento de arquivos, 63.94% na etapa de cálculo da função objetivo utilizando paralelismo na CPU, 99.97% na etapa de cálculo da função objetivo utilizando paralelismo na GPU, 73.39% na etapa de evolução utilizando paralelismo na CPU, e 89.09% na etapa de evolução utilizando paralelismo na GPU.
Para mais informações acesse: http://wp.ufpel.edu.br/notcc/bancas/historico/bancas-2018-1/