Detecção de operações de redução em programas C

  • João Ladeira Rezende UFPel
  • Edevaldo Braga dos Santos UFPel
  • Gerson Geraldo H. Cavalheiro UFPel

Abstract


The automatic parallelization capabilities available on current compilers are limited to detecting code fragments that can be automatically parallelized and not to reporting fragments that are candidates for parallelization by manual reprogramming. In this paper, we propose a method for detecting program fragments that reflect the reduction iterative pattern that might be considered to be paralelized by a manual code refactoration. The method proposed was validated by comparing the results obtained with those required by Cetus in the BOTS benchmark. The analysis of the results indicated the validity of our approach, and the cases of false positives reported in the application of the proposed technique are extensively discussed.

References

Amini, M. et al. (2012). Par4all: From convex array regions to heterogeneous computing. In 2nd International Workshop on Polyhedral Compilation Techniques, Impact.

Bae, H., Mustafa, D., Lee, J.-W., Lin, H., Dave, C., Eigenmann, R., Midkiff, S. P., et al. (2013). The Cetus source-to-source compiler infrastructure: overview and evaluation. International Journal of Parallel Programming, 41(6):753–767.

Duran, A., Teruel, X., Ferrer, R., Martorell, X., and Ayguade, E. (2009). Barcelona OpenMP tasks suite: A set of benchmarks targeting the exploitation of task parallelism in OpenMP. In 2009 Inter. Conf. on Parallel Processing, pages 124–131. IEEE.

Harel, R., Mosseri, I., Levin, H., Alon, L.-o., Rusanovsky, M., and Oren, G. (2020). Source-to-source parallelization compilers for scientific shared-memory multi-core Inand accelerated multiprocessing: analysis, pitfalls, enhancement and potential. ternational Journal of Parallel Programming, 48(1):1–31.

Jradi, W. A. R., Dantas do Nascimento, H. A., and Santos Martins, W. (2018). A fast and generic GPU-based parallel reduction implementation. In 2018 Symposium on High Performance Computing Systems (WSCAD), pages 16–22.

Lee, S.-I., Johnson, T. A., and Eigenmann, R. (2003). Cetus–an extensible compiler infrastructure for source-to-source transformation. In International Workshop on Languages and Compilers for Parallel Computing, pages 539–553. Springer.

Parhami, B. (2002). Introduction to Parallel Processing: Algorithms and Architecture. Kluwer Academic, New York.

Prema, S. and Jehadeesan, R. (2013). Analysis of parallelization techniques and tools. International Journal of Information and Computation Technology, 3(5):471–478.

Quinlan, D. and Liao, C. (2011). The ROSE source-to-source compiler infrastructure. In Cetus users and compiler infrastructure workshop, in conjunction with PACT. ACM.

Tian, X., Hoeflinger, J. P., Haab, G., Chen, Y.-K., Girkar, M., and Shah, S. (2005). A compiler for exploiting nested parallelism in OpenMP programs. Parallel Computing, 31(10-12):960–983.
Published
2021-10-26
REZENDE, João Ladeira; SANTOS, Edevaldo Braga dos; CAVALHEIRO, Gerson Geraldo H.. Detecção de operações de redução em programas C. In: BRAZILIAN SYMPOSIUM ON HIGH PERFORMANCE COMPUTING SYSTEMS (SSCAD), 22. , 2021, Belo Horizonte. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2021 . p. 204-215. DOI: https://doi.org/10.5753/wscad.2021.18524.