Implementation of Private Variables Contraction Transformation of Sequential Fortran Programs for their Effective Parallelization into Computing Clusters in the SAPFOR
Authors
-
Alexander S. Kolganov
-
Grigorii D. Gusev
Keywords:
SAPFOR (System FOR Automated Parallelization)
parallelization automation for clusters
transformation automation
parallel computing
DVM (Distributed Virtual Memory)
GPU clusters
Abstract
The process of automated parallelization of programs can be significantly complicated due to their structure and optimization for sequential execution. Because of this, the resulting parallel version may be ineffective, and in some cases parallelization turns out to be completely impossible. Transformations of the source code of sequential programs help to solve these problems. This article discusses the development of an algorithm for transformation of sequential Fortran programs called “removing of private variables” and its implementation in the SAPFOR automated parallelization system (System FOR Automated Parallelization). The application of the implemented transformations in the SAPFOR system is demonstrated on four application programs included in the NAS Parallel Benchmarks package.
Section
Parallel software tools and technologies
References
- OpenMP Specifications for Parallel Programming.
https://www.openmp.org/specifications/. Cited January 21, 2025.
- MPI Documents.
https://www.mpi-forum.org/docs/. Cited January 21, 2025.
- CUDA Toolkit Documentation 12.6 Update 3.
https://docs.nvidia.com/cuda/. Cited January 21, 2025.
- M. Wolfe, High Performance Compilers for Parallel Computing (Addison-Wesley, New York, 1995).
- U. Bondhugula, A. Hartono, J. Ramanujam, and P. Sadayappan, “A Practical Automatic Polyhedral Parallelizer and Locality Optimizer,” ACM SIGPLAN Not. 43 (6), 101-113 (2008).
doi 10.1145/1379022.1375595
- S. Verdoolaege, J. C. Juega, A. Cohen, et al., “Polyhedral Parallel Code Generation for CUDA,” ACM Trans. Archit. Code Optim. 9 (4), Article Number 54 (2013).
doi 10.1145/2400682.2400713
- T. Grosser, A. Groesslinger, and C. Lengauer, “Polly -- Performing Polyhedral Optimizations on a Low-Level Intermediate Representation,” Parallel Process. Lett. 22 (04), Article Number 1250010 (2012).
doi 10.1142/S0129626412500107
- T. Grosser and T. Hoefler, “Polly-ACC Transparent Compilation to Heterogeneous Hardware,” in Proc. 2016 Int. Conf. on Supercomputing, Istanbul, Turkey, June 1-3, 2016. (ACM Press, New York, 2016), pp. 1: 1-1: 13.
doi 10.1145/2925426.2926286
- J. M. M. Caamano, A. Sukumaran-Rajam, A. Baloian, et al., “APOLLO: Automatic Speculative POLyhedral Loop Optimizer,” in Proc. 7th Int. Workshop on Polyhedral Compilation Techniques (IMPACT), Stockholm, Sweden, January 23, 2017.
https://inria.hal.science/hal-01533692v1 . Cited January 21, 2025.
- OpenCL Specification.
https://www.khronos.org/registry/OpenCL/. Cited January 21, 2025.
- C. Lattner and V. Adve, “LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation,” in Proc. Int. Symp. on Code Generation and Optimization (CGO’04), San Jose, USA, March 20-24, 2004.
doi 10.1109/CGO.2004.1281665
- J. Doerfert, K. Streit, S. Hack, and Z. Benaissa, “Polly’s Polyhedral Scheduling in the Presence of Reductions,” in Proc. 5th Int. Workshop on Polyhedral Compilation Techniques, Amsterdam, The Netherlands, January 19, 2015.
https://www.impact-workshop.org/impact2015/papers/impact2015-doerfert.pdf . Cited January 21, 2025.
- Description of DVM-system.
http://dvm-system.org/. Cited January 21, 2025.
- Documentation for C-DVMH and Fortran-DVMH Languages.
http://dvm-system.org/ru/docs/. Cited January 21, 2025.
- Description of SAPFOR System.
http://keldysh.ru/dvm/SAPFOR/. Cited January 21, 2025.
- V. A. Bakhtin, O. F. Zhukova, N. A. Kataev, et al., “Automation of Parallelization of Software Complexes,” in Proc. Conf. on Scientific Service on the Internet, Novorossiysk, Russia, September 19-24, 2016. (Keldysh Inst. Applied Math., Moscow, 2016), pp. 76-85.
- A. S. Kolganov, Automation of Parallelization of Fortran Programs for Heterogeneous Clusters , Candidate’s Dissertation in Mathematics and Physics (Keldysh Inst. Applied Math., Moscow, 2020).
- O. V. Barten’ev, Modern Fortran(DIALOG-MEPHI, Moscow, 2000) [in Russian].
- A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools (Addison-Wesley, Boston, 2006; Williams, Moscow, 2018).
- F. Bodin, P. Beckman, D. Gannon, et al., Sage++: An Object-Oriented Toolkit and Class Library for Building Fortran and C++ Restructuring Tools.
https://www.researchgate.net/publication/2725408_Sage_An_Object-Oriented_Toolkit_and_Class_Library_for_Building_Fortran_and_C_Restructuring_Tools . Cited January 21, 2025.
- NAS Parallel Benchmarks.
https://www.nas.nasa.gov/software/npb.html . Cited January 21, 2025.
- A. S. Kolganov and G. D. Gusev, “Transformation of Sequential Fortran Programs for Their Parallelization into Hybrid Clusters in the SAPFOR,” Numerical Methods and Programming 23 (4), 288-310 (2022).
doi 10.26089/NumMet.v23r418