Преобразование последовательных Fortran-программ для их распараллеливания на гибридные кластеры в системе SAPFOR

Авторы

DOI:

https://doi.org/10.26089/NumMet.v23r418

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

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

Аннотация

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

Авторы

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

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

Г. Д. Гусев

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

  1. OpenMP Specification.
    https://www.openmp.org/specifications/. Cited October 12, 2022.
  2. MPI Documents.
    https://www.mpi-forum.org/docs/. Cited October 12, 2022.
  3. CUDA Toolkit Documentation.
    https://docs.nvidia.com/cuda/. Cited October 12, 2022.
  4. Khronos OpenCL Registry.
    https://www.khronos.org/registry/OpenCL/. Cited October 12, 2022.
  5. M. Wolfe, High Performance Compilers for Parallel Computing (Addison-Wesley, New York, 1995).
  6. U. Bondhugula, A. Hartono, J. Ramanujam, and P. Sadayappan, “A Practical Automatic Polyhedral Parallelizer and Locality Optimizer,” SIGPLAN Not. 43 (6), 101-113 (2008).
    doi 10.1145/1379022.1375595.
  7. S. Verdoolaege, J. C. Juega, A. Cohen, et al., “Polyhedral Parallel Code Generation for CUDA,” ACM Trans. Archit. Code Optim. 9 (4), 1-23 (2013).
    doi 10.1145/2400682.2400713.
  8. T. Grosser, A. Groesslinger, and C. Lengauer, “Polly -- Performing Polyhedral Optimizations on a Low-Level Intermediate Representation,” Parallel Process. Lett. 22 (2012).
    doi 10.1142/S0129626412500107.
  9. T. Grosser and T. Hoefler, “Polly-ACC Transparent Compilation to Heterogeneous Hardware,” in Proc. Int. Conf. on Supercomputing, Istambul, Turkey, June 1-3, 2016 (ACM Press, New York, 2016),
    doi 10.1145/2925426.2926286.
  10. 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 2017), Stockholm, Sweden, January 23, 2017 ,
    https://www.researchgate.net/publication/313059456_APOLLO_Automatic_speculative_POLyhedral_Loop_Optimizer . Cited October 12, 2022.
  11. C. Lattner and V. Adve, “LLVM: A Compilation Framework for Lifelong Program Analysis &Transformation,” in Proc. Int. Symp. on Code Generation and Optimization. Palo Alto, 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 (IMPACT 2015), Amsterdam, The Netherlands, January 19, 2015 ,
    https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1054.1804&rep=rep1&type=pdf . Cited October 12, 2022.
  13. Description of DVM-system.
    http://dvm-system.org/. Cited October 12, 2022.
  14. Documentation for C-DVM and Fortran-DVMH Languages.
    http://dvm-system.org/ru/docs/. Cited October 12, 2022.
  15. Description of SAPFOR System.
    http://keldysh.ru/dvm/SAPFOR/. Cited October 12, 2022.
  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 Institute of Applied Mathematics, 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 Institute of Applied Mathematics, Moscow, 2020).
  18. O. V. Bartenev, 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, 2008).
  20. NAS Parallel Benchmarks.
    https://www.nas.nasa.gov/software/npb.html . Cited October 14, 2022.

Загрузки

Опубликован

19-10-2022

Как цитировать

Колганов А. С., Гусев Г. Д. Преобразование последовательных Fortran-программ для их распараллеливания на гибридные кластеры в системе SAPFOR // Вычислительные методы и программирование. 2022. 23. 288-310. doi 10.26089/NumMet.v23r418

Выпуск

Раздел

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