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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
MPI Documents. http://www.mpi-forum.org/docs/. Accessed 8 Apr 2021
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)
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)
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)
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
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
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
OpenMP Compilers & Tools. https://www.openmp.org/resources/openmp-compilers-tools/. Accessed 8 Apr 2021
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
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)
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
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)
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)
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
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
Kataev, N., Smirnov, A., Zhukov, A.: Dynamic data-dependence analysis in SAPFOR. In: CEUR Workshop Proceedings, vol. 2543, pp. 199–208 (2020)
Kataev, N.: Interactive parallelization of C programs in SAPFOR. In: Scientific Services & Internet 2020. CEUR Workshop Proceedings, vol. 2784, pp. 139–148 (2020)
NAS Parallel Benchmarks. https://www.nas.nasa.gov/publications/npb.html. Accessed 8 Apr 2021
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)
Heterogeneous cluster K60. https://www.kiam.ru/MVS/resourses/k60.html. Accessed 8 Apr 2021
Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley (1995)
Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral parallelizer and locality optimizer. SIGPLAN Not. 43(6), 101–113 (2008)
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)
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)
Grosser, T., Groesslinger, A., Lengauer, C.: Polly—performing polyhedral optimizations on a low-level intermediate representation. Parallel Process. Lett. 22(04), 1250010 (2012)
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
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)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)