Implementação Paralela do LU no NPB C++ Utilizando um Pipeline Implícito
Resumo
Neste trabalho, um pipeline implícito com o padrão map foi implementado na aplicação LU do NAS Parallel Benchmarks em C++. O LU possui dependência de dados no tempo, o que dificulta a exploração do paralelismo. Ele foi convertido de Fortran para C++, a fim de ser paralelizado com diferentes bibliotecas de sistemas multi-core. O uso desta estratégia com as bibliotecas permitiu ganhos de desempenho de até 10.6% em relação a versão original.
Referências
Frumkin, M. A., Jin, H., and Yan, J. (1998). Implementation of the NAS Parallel Benchmarks in High Performance Fortran. Technical report, NASA.
Griebler, D., Loff, J., Mencagli, G., Danelutto, M., and Fernandes, L. G. (2018). Efficient nas benchmark kernels with c++ parallel programming. In 2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP), pages 733–740.
Jin, H., Frumkin, M., and Yan, J. (1999). The OpenMP Implementation of NAS Parallel Benchmarks and its Performance. Technical report, NASA.
Jin, H., Hood, R., and Mehrotra, P. (2009). A practical study of upc using the nas parallel benchmarks. In Proceedings of PGAS, PGAS ’09, pages 8:1–7.