Skip to main content

Additional Parallelization of Existing MPI Programs Using SAPFOR

  • Conference paper
  • First Online:
Parallel Computing Technologies (PaCT 2021)

Abstract

The SAPFOR and DVM systems were primary designed to simplify the development of parallel programs of scientific-technical calculations. SAPFOR is a software development suite that aims to produce a parallel version of a sequential program in a semi-automatic way. Fully automatic parallelization is also possible if the program is well-formed and satisfies certain requirements. SAPFOR uses the DVMH directive-based programming model to expose parallelism in the code. The DVMH model introduces CDVMH and Fortran-DVMH (FDVMH) programming languages which extend standard C and Fortran languages by parallelism specifications. We present MPI-aware extension of the SAPFOR system that exploits opportunities provided by the new features of the DVMH model to extend existing MPI programs with intra-node parallelism. In that way, our approach reduces the cost of parallel program maintainability and allows the MPI program to utilize accelerators and multi-core processors. SAPFOR extension has been implemented for both Fortran and C programming languages. In this paper, we use the NAS Parallel Benchmarks to evaluate the performance of generated programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. MPI Documents. http://www.mpi-forum.org/docs/. Accessed 8 Apr 2021

  2. Ragan-Kelley, J., Barnes, C., Adams, A., Paris, S., Durand, F., Amarasinghe, S.P.: Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2013, pp. 519–530 (2013)

    Google Scholar 

  3. Beaugnon, U., Kravets, A., van Haastregt, S., Baghdadi, R., Tweed, D., Absar, J., Lokhmotov, A.: VOBLA: a vehicle for optimized basic linear algebra. In: Proceedings of the 2014 SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems, LCTES 2014, New York, NY, USA, pp. 115–124 (2014)

    Google Scholar 

  4. Zhang, Y., Yang, M., Baghdadi, R., Kamil, S., Shun, J., Amarasinghe, S.: GraphIt: a high-performance graph DSL. Proc. ACM Program. Lang. 2(OOPSLA), 121:1-121:30 (2018)

    Article  Google Scholar 

  5. An, P., et al.: STAPL: an adaptive, generic parallel C++ library. In: Dietz, H.G. (ed.) LCPC 2001. LNCS, vol. 2624, pp. 193–208. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-35767-X_13

    Chapter  Google Scholar 

  6. Bell, N., Hoberock, J.: Thrust: a productivity-oriented library for CUDA. In: Hwu, W.-M.W. (ed.) GPU Computing Gems, Jade Edition, pp. 359–371 (2012). https://doi.org/10.1016/B978-0-12-385963-1.00026-5

  7. OpenMP Application Programming Interface. Version 5.1, November 2020. https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-1.pdf. Accessed 8 Apr 2021

  8. OpenMP Compilers & Tools. https://www.openmp.org/resources/openmp-compilers-tools/. Accessed 8 Apr 2021

  9. The OpenACC Application Programming Interface. Version 3.1. November 2020. https://www.openacc.org/sites/default/files/inline-images/Specification/OpenACC-3.1-final.pdf. Accessed 8 Apr 2021

  10. Konovalov, N.A., Krukov, V.A., Mikhajlov, S.N., Pogrebtsov, A.A.: Fortan DVM: a language for portable parallel program development. Program. Comput. Softw. 21(1), 35–38 (1995)

    MATH  Google Scholar 

  11. Bakhtin, V.A., Klinov, M.S., Krukov, V.A., Podderugina, N.V., Pritula, M.N., Sazanov, Yu.L.: Extension of the DVM-model of parallel programming for clusters with heterogeneous nodes (in Russian). Bull. South Ural State Univ. Seri.: Math. Model. Program. Comput. Softw. 18(277), 82–92(2012). Issue 12

    Google Scholar 

  12. Klinov, M.S., Krukov, V.A.: Automatic parallelization of fortran programs. Mapping to cluster (in Russian). Vest. Lobachevsky Univ. Nizhni Novgorod 2, 128–134 (2009)

    Google Scholar 

  13. Bakhtin, V.A., et al.: Interaction with the programmer in the system for automation parallelization SAPFOR (in Russian). Vest. Lobachevsky State Univ. Nizhni Novgorod 5(2), 242–245 (2012)

    Google Scholar 

  14. Kataev, N.: LLVM based parallelization of C programs for GPU. In: Voevodin, V., Sobolev, S. (eds.) RuSCDays 2020. CCIS, vol. 1331, pp. 436–448. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-64616-5_38

    Chapter  Google Scholar 

  15. Kataev, N.: Application of the LLVM compiler infrastructure to the program analysis in SAPFOR. In: Voevodin, V., Sobolev, S. (eds.) RuSCDays 2018. CCIS, vol. 965, pp. 487–499. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-05807-4_41

    Chapter  Google Scholar 

  16. Kataev, N., Smirnov, A., Zhukov, A.: Dynamic data-dependence analysis in SAPFOR. In: CEUR Workshop Proceedings, vol. 2543, pp. 199–208 (2020)

    Google Scholar 

  17. Kataev, N.: Interactive parallelization of C programs in SAPFOR. In: Scientific Services & Internet 2020. CEUR Workshop Proceedings, vol. 2784, pp. 139–148 (2020)

    Google Scholar 

  18. NAS Parallel Benchmarks. https://www.nas.nasa.gov/publications/npb.html. Accessed 8 Apr 2021

  19. Bakhtin, V., et al.: New features of DVM-System for additional parallelization of MPI programs. In: Scientific Services & Internet 2020. CEUR Workshop Proceedings, vol. 2784, pp. 23–38 (2020)

    Google Scholar 

  20. Heterogeneous cluster K60. https://www.kiam.ru/MVS/resourses/k60.html. Accessed 8 Apr 2021

  21. Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley (1995)

    Google Scholar 

  22. Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral parallelizer and locality optimizer. SIGPLAN Not. 43(6), 101–113 (2008)

    Article  Google Scholar 

  23. Verdoolaege, S., Juega, J.C., Cohen, A., Gomez, J.I., Tenllado, C., Catthoor, F.: Polyhedral parallel code generation for CUDA. ACM Trans. Archit. Code Optim. 9(4), 1–23 (2013)

    Article  Google Scholar 

  24. Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO 2004). Palo Alto, California (2004)

    Google Scholar 

  25. Grosser, T., Groesslinger, A., Lengauer, C.: Polly—performing polyhedral optimizations on a low-level intermediate representation. Parallel Process. Lett. 22(04), 1250010 (2012)

    Article  MathSciNet  Google Scholar 

  26. Grosser, T., Hoefler, T.: Polly-ACC transparent compilation to heterogeneous hardware. In: ICS 2016: Proceedings of the 2016 International Conference on Supercomputing, June 2016, pp. 1–13 (2016) https://doi.org/10.1145/2925426.2926286

  27. Doerfert, J., Streit, K., Hack, S., Benaissa, Z.: Polly’s polyhedral scheduling in the presence of reductions. In: 5th International Workshop on Polyhedral Compilation Techniques (IMPACT) (2015)

    Google Scholar 

  28. Caamano, J.M.M., Sukumaran-Rajam, A., Baloian, A., Selva, M., Clauss, P.: APOLLO: automatic speculative POLyhedral loop optimizer. In: 7th International Workshop on Polyhedral Compilation Techniques (IMPACT), January 2017, Stockholm, Sweden (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nikita Kataev .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kataev, N., Kolganov, A. (2021). Additional Parallelization of Existing MPI Programs Using SAPFOR. In: Malyshkin, V. (eds) Parallel Computing Technologies. PaCT 2021. Lecture Notes in Computer Science(), vol 12942. Springer, Cham. https://doi.org/10.1007/978-3-030-86359-3_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-86359-3_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-86358-6

  • Online ISBN: 978-3-030-86359-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics