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

Abstract


OpenMP and OpenACC are programming models developed to abstract the complexity of parallel programming, providing portability between different architectures, including heterogeneous systems. This work seeks to make a comparative analysis between these two patterns, from the point of view of development productivity and obtained performance. The evaluations will be conducted by applying the aforementioned standards to three common algorithms, running on GPUs. The results show a significant advantage to OpenACC in both performance and productivity, considering the scope limitation for the case of study.

References

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.
Published
2022-10-19
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: UNDERGRADUATE RESEARCH WORKSHOP - SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS (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.