Análise de desempenho e produtividade de APIs baseadas em diretivas com suporte à programação paralela usando GPUs

  • Silvio de Souza Neves Neto UNIFESP
  • Álvaro Luiz Fazenda UNIFESP

Resumo


OpenMP e OpenACC são modelos de programação desenvolvidos com o objetivo de abstrair a complexidade da programação paralela, proporcionando portabilidade entre diferentes arquiteturas, incluindo sistemas heterogêneos. Este trabalho busca fazer uma análise comparativa entre estes dois padrões, dos pontos de vista de produtividade de desenvolvimento e de desempenho computacional obtido. As avaliações foram conduzidas a partir da programação aderente aos padrões citados, aplicada a três algoritmos conhecidos, com execução em arquitetura que faz uso de GPUs. Os resultados, limitados à análise dos casos de estudo, mostram uma clara vantagem em desempenho e produtividade para o uso de OpenACC.

Referências

Chandrasekaran, S. and Juckeland, G. (2017). OpenACC for Programmers. Addison-Wesley Educational, Boston, MA.

Gardner, M. (1970). Mathematical games. Scientific American, 223(4):120-123.

LeCun, Y., Bengio, Y., and Hinton, G. (2015). Deep learning. Nature, 521(7553):436-444.

Memeti, S., Li, L., Pllana, S., Kolodziej, J., and Kessler, C. (2017). Benchmarking opencl, openacc, openmp, and cuda: Programming productivity, performance, and energy consumption. In Proceedings of the 2017 Workshop on Adaptive Resource Management and Scheduling for Cloud Computing, ARMS-CC '17, page 1-6, New York, NY, USA. Association for Computing Machinery.

Nykamp, D. Q. (2022). Math insight. https://mathinsight.org/.

OpenMP Architecture Review Board (2021). Openmp application programming interface version 5.2 november 2021. [link].

Pino, S., Pollock, L., and Chandrasekaran, S. (2017). Exploring translation of openmp to openacc 2.5: lessons learned. In 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pages 673-682.

Sloot, P. M. A., Tan, C. J. K., Dongarra, J. J., and Hoekstra, A. G., editors (2003). Computational science ICCS 2002. Lecture Notes in Computer Science. Springer Berlin, Berlin, Germany, 2002 edition.

Vergara Larrea, V. G., Budiardja, R. D., Gayatri, R., Daley, C., Hernandez, O., and Joubert, W. (2020). Experiences in porting mini-applications to openacc and openmp on heterogeneous systems. Concurrency and Computation: Practice and Experience, 32(20):e5780.

Wienke, S., Terboven, C., Beyer, J. C., and Müller, M. S. (2014). A pattern-based comparison of openacc and openmp for accelerator computing. In Silva, F., Dutra, I., and Santos Costa, V., editors, Euro-Par 2014 Parallel Processing, pages 812-823, Cham. Springer International Publishing.

Xu, R., Chandrasekaran, S., and Chapman, B. (2013). Exploring programming multi-gpus using openmp and openacc-based hybrimodel. In 2013 IEEE International Symposium on Parallel DistributeProcessing, Workshops and Phd Forum, pages 1169-1176.
Publicado
19/10/2022
NEVES NETO, Silvio de Souza; FAZENDA, Álvaro Luiz. Análise de desempenho e produtividade de APIs baseadas em diretivas com suporte à programação paralela usando GPUs. In: WORKSHOP DE INICIAÇÃO CIENTÍFICA - SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 23. , 2022, Florianópolis. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 57-64. DOI: https://doi.org/10.5753/wscad_estendido.2022.226596.