Detection within the SAPFOR system of eliminable array dependencies in sequential Fortran programs for efficient parallelization on computing clusters
Authors
-
Alexander S. Kolganov
-
Oleg Yu. Nikitin
Keywords:
SAPFOR (System FOR Automated Parallelization)
automation of parallelization for clusters
eliminable dependencies
array dependence analysis
parallel computing
DVM (Distributed Virtual Memory)
GPU clusters
Abstract
The process of automating the parallelization of sequential programs faces the problem of eliminating data dependencies that prevent the parallel execution of loops. One of the effective methods to solve this problem is a variable privatization, which allows creating local copies of data for each loop iteration. This paper presents the implementation in the system SAPFOR (System FOR Automated Parallelization) of a static analysis algorithm for identifying privatizable arrays in Fortran programs. The proposed algorithm is based on the control flow graph analysis with back edge removal, solving data flow equations, and applying nested loop convolution. The algorithm was tested on four application programs from the NAS Parallel Benchmarks suite. This research is a step towards creating a fully automatic parallelization system capable of minimizing developer involvement in the process of preparing a parallel version of a program.
Section
Parallel software tools and technologies
References
- A. S. Tanenbaum and H. Bos, Modern Operating Systems, 4th ed. (Pearson, Boston, 2015).
- OpenMP Architecture Review Board, OpenMP Application Programming Interface Version 5.1 (2020).
https://www.openmp.org/specifications/ Cited August 14, 2026.
- OpenACC-Standard.org, The OpenACC Application Programming Interface, Version 3.3 (2022).
https://www.openacc.org/specification Cited August 10, 2026.
- XcalableACC Language Specification, Version 1.0. RIKEN AICS and University of Tsukuba, (2017).
http://xcalablemp.org/download/XACC/xacc-spec-1.0.pdf Cited August 10, 2026.
- Cetus: A Parallelizing Source-to-Source Compiler for C Programs.
https://sites.udel.edu/cetus-cid/ Cited August 10, 2026.
- T. Grosser, A. Groesslinger, and C. Lengauer, “Polly – Performing Polyhedral Optimizations on a Low-Level Intermediate Representation,” Parallel Processing Letters 22 (04), Article Number 1250010 (2012).
doi 10.1142/S0129626412500107
- CUDA Toolkit Documentation. NVIDIA Corporation.
https://docs.nvidia.com/cuda/ Cited August 10, 2026.
- DVM-system | System for developing parallel programs.Documentation for C-DVMH and Fortran-DVMH Languages.
http://dvm-system.org/ru/docs/ Cited August 10, 2026.
- A. S. Kolganov and G. D. Gusev, “Implementation of Private Variables Contraction Transformation of Sequential Fortran Programs for their Effective Parallelization into Computing Clusters in the SAPFOR,” Numerical Methods and Programming 26 (1), 58–84 (2025).
doi 10.26089/NumMet.v26r105
- Z. Li, “Array Privatization for Parallel Execution of Loops,” in Proceedings of the 6th ACM International Conference on Supercomputing (ICS ’92), Washington D.C. USA, July 19–24, 1992(ACM, New York, NY, USA, 1992), pp. 313–322.
doi 10.1145/143369.143426
- L. Rauchwerger and D. Padua, “The privatizing DOALL test: A run-time technique for DOALL loop identification and array privatization,” in Proceedings of the 8th International Conference on Supercomputing (ICS ’94), Manchester, England, July 11–15, 1994(ACM, New York, NY, USA, 1994), pp. 33–43.
doi 10.1145/181181.181254
- P. Tu, D. Padua, “Automatic array privatization,” in Banerjee U., Gelernter D., Nicolau A., Padua D. (eds) Languages and Compilers for Parallel Computing. LCPC 1993.(Lecture Notes in Computer Science, vol 768. Springer, Berlin, Heidelberg, 1994), pp. 500–521.
doi 10.1007/3-540-57659-2_29
- B. Blume, R. Eigenmann, K. Faigin, et al., “Polaris: The Next Generation in Parallelizing Compilers,” in Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing(Ithaca, NY, USA, 1994), pp. 459–474.
- J. Gu and Z. Li, “Efficient Interprocedural Array Data-Flow Analysis for Automatic Program Parallelization,” IEEE Transactions on Software Engineering 26 (3), 244–261 (2000).
doi 10.1109/32.842950
- S. Rus, G. He, C. Alias, and L. Rauchwerger, “Region Array SSA,” in Proceedings of the 15th International Conference on Parallel Architectures and Compilation Techniques (PACT ’06), Seattle, WA, USA, September 16–20, 2006(ACM, New York, NY, USA, 2006), pp. 43–52.
doi 10.1145/1152154.1152165
- P. Feautrier and C. Lengauer, “Polyhedron Model,” in Encyclopedia of Parallel Computing(Springer, New York, 2011), pp. 1581–1592.
- U. Bondhugula, A. Hartono, J. Ramanujam, and P. Sadayappan, “A practical automatic polyhedral parallelizer and locality optimizer,” ACM SIGPLAN Notices 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 Transactions on Architecture and Code Optimization 9 (4), Article Number 54 (2013).
doi 10.1145/2400682.2400713
- T. Grosser and T. Hoefler, “Polly-ACC Transparent Compilation to Heterogeneous Hardware,” in Proceedings of the International Conference on Supercomputing, Istanbul, Turkey, June 1–3, 2016(ACM Press, New York, NY, USA, 2016), pp. 1–13.
doi 10.1145/2925426.2926286
- C. Lattner and V. Adve, “LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation,” in Proceedings of the International Symposium on Code Generation and Optimization (CGO’04), San Jose, USA, March 20–24, 2004(IEEE Press, 2004), pp. 75–86.
doi 10.1109/CGO.2004.1281665
- S. Wienke, P. Springer, C. Terboven, and D. an Mey, “OpenACC — First Experiences with Real-World Applications,” in Proceedings of the 18th International Conference on Parallel Processing (Euro-Par 2012), Rhodes Islands, Greece, August 27–31, 2012(Springer Berlin, Berlin, 2012), pp. 859–870.
doi 10.1007/978-3-642-32820-6_85
- System for Automated Parallelization of FORtran programs (SAPFOR).
http://keldysh.ru/dvm/SAPFOR/ Cited August 10, 2026.
- V. A. Bakhtin, O. F. Zhukova, N. A. Kataev, A. S. Kolganov, et al., “Automation of Parallelization of Software Complexes,” in Proc. XVIII All-Rus. Sci. Conf. on “Scientific Service on the Internet”, Novorossiysk, September 19–24, 2016(KIAM RAS, Moscow, 2016), pp. 76–85.
doi 10.20948/abrau-2016-31
- A. S. Kolganov, Automation of Parallelization of Fortran Programs for Heterogeneous ClustersCandidate’s Dissertation in Mathematics and Physics. (Keldysh Inst. Applied Math., Moscow, 2020).
- A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools, 2th ed.(Pearson/Addison Wesley, Boston, 2007).
- A. B. Kahn, “Topological sorting of large networks,” Communications of the ACM 5 (11), 558–562 (1962).
doi 10.1145/368996.369025
- NAS Parallel Benchmarks.
https://www.nas.nasa.gov/software/npb.html Cited August 10, 2026.