DOI: https://doi.org/10.26089/NumMet.v26r105

Реализация преобразования удаления приватных переменных в последовательных Fortran-программах для их эффективного распараллеливания на вычислительные кластеры в системе SAPFOR

Авторы

  • А. С. Колганов
  • Г. Д. Гусев

Ключевые слова:

SAPFOR (System FOR Automated Parallelization)
автоматизация распараллеливания на кластер
автоматизация преобразований
параллельные вычисления
DVM (Distributed Virtual Memory)
кластеры с графическими процессорами

Аннотация

Процесс автоматизированного распараллеливания программ может быть существенно затруднен из-за их структуры и оптимизации под последовательное выполнение. Из-за этого полученная параллельная версия может быть неэффективной, а в некоторых случаях распараллеливание оказывается и вовсе невозможным. Решить указанные проблемы помогают преобразования исходного кода последовательных программ. В данной статье рассматривается разработка алгоритма преобразования последовательных Fortran-программ “удаление приватных переменных” и его реализация в системе автоматизированного распараллеливания SAPFOR (System FOR Automated Parallelization). Применение реализованных преобразований в системе SAPFOR продемонстрировано на четырех прикладных программах, входящих в пакет NAS Parallel Benchmarks.


Загрузки

Опубликован

2025-02-21

Выпуск

Раздел

Параллельные программные средства и технологии

Авторы

А. С. Колганов

Институт прикладной математики имени М. В. Келдыша РАН (ИПМ РАН)
Миусская пл., 4, 125047, Москва
• научный сотрудник

Г. Д. Гусев


Библиографические ссылки

  1. OpenMP Specifications for Parallel Programming.
    https://www.openmp.org/specifications/. Cited January 21, 2025.
  2. MPI Documents.
    https://www.mpi-forum.org/docs/. Cited January 21, 2025.
  3. CUDA Toolkit Documentation 12.6 Update 3.
    https://docs.nvidia.com/cuda/. Cited January 21, 2025.
  4. M. Wolfe, High Performance Compilers for Parallel Computing (Addison-Wesley, New York, 1995).
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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.
  10. OpenCL Specification.
    https://www.khronos.org/registry/OpenCL/. Cited January 21, 2025.
  11. 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
  12. 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.
  13. Description of DVM-system.
    http://dvm-system.org/. Cited January 21, 2025.
  14. Documentation for C-DVMH and Fortran-DVMH Languages.
    http://dvm-system.org/ru/docs/. Cited January 21, 2025.
  15. Description of SAPFOR System.
    http://keldysh.ru/dvm/SAPFOR/. Cited January 21, 2025.
  16. 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.
  17. 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).
  18. O. V. Barten’ev, Modern Fortran(DIALOG-MEPHI, Moscow, 2000) [in Russian].
  19. A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools (Addison-Wesley, Boston, 2006; Williams, Moscow, 2018).
  20. 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.
  21. NAS Parallel Benchmarks.
    https://www.nas.nasa.gov/software/npb.html . Cited January 21, 2025.
  22. 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