Uma Metodologia para Reduzir o Custo de Aprendizado para Técnicas de Otimização de Aplicações Paralelas
Resumo
A exploração do paralelismo em nível de threads (TLP - Thread Level Parallelism) tem sido amplamente utilizada para melhorar o desempenho de aplicações de diferentes domínios. Entretanto, muitas aplicações não escalam conforme o número de threads aumenta, ou seja, executar uma aplicação utilizando o máximo de threads não trará, necessariamente, o melhor resultado para tempo, energia ou EDP(Energy Delay Product), devido a questões relacionadas à hardware e Software [Raasch and Reinhardt 2003],[Lorenzon and Filho 2019]. Portanto, é preciso utilizar metodologias que consigam buscar um número ideal de threads para tais aplicações, sejam estas, online (busca enquanto a aplicação é executada) ou offline (busca antes da execução da aplicação). Entretanto, metodologias online acabam adicionando uma sobrecarga na execução da aplicação, o que não acontece nas abordagens offline [Lorenzon et al. 2018]. Com base nisto, este trabalho apresenta uma metodologia genérica para reduzir significativamente o tempo de busca pelo número de threads ideal para aplicações paralelas que utilizam a metodologia offline, inferindo o ambiente de execução das aplicações paralelas utilizando apenas pequenos conjuntos de entrada de dados.
Referências
Lorenzon, A. F., Oliveira, C. C. D., Souza, J. D., and Filho, A. C. S. B. (2018). Aurora: Seamless optimization of openmp applications. IEEE Transactions on Parallel and Distributed Systems, pages 1–15.
Raasch, S. E. and Reinhardt, S. K. (2003). The impact of resource partitioning on smt processors. In PACT, pages 15–25.