Реализация преобразования удаления приватных переменных в последовательных Fortran-программах для их эффективного распараллеливания на вычислительные кластеры в системе SAPFOR
Авторы
-
А. С. Колганов
-
Г. Д. Гусев
Ключевые слова:
SAPFOR (System FOR Automated Parallelization)
автоматизация распараллеливания на кластер
автоматизация преобразований
параллельные вычисления
DVM (Distributed Virtual Memory)
кластеры с графическими процессорами
Аннотация
Процесс автоматизированного распараллеливания программ может быть существенно затруднен из-за их структуры и оптимизации под последовательное выполнение. Из-за этого полученная параллельная версия может быть неэффективной, а в некоторых случаях распараллеливание оказывается и вовсе невозможным. Решить указанные проблемы помогают преобразования исходного кода последовательных программ. В данной статье рассматривается разработка алгоритма преобразования последовательных Fortran-программ “удаление приватных переменных” и его реализация в системе автоматизированного распараллеливания SAPFOR (System FOR Automated Parallelization). Применение реализованных преобразований в системе SAPFOR продемонстрировано на четырех прикладных программах, входящих в пакет NAS Parallel Benchmarks.
Раздел
Параллельные программные средства и технологии
Библиографические ссылки
- 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