Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR

  • Nikita KataevEmail author
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 965)


The paper proposes an approach to implementation of program analysis in SAPFOR (System FOR Automated Parallelization). This is a software development suit that is focused on cost reduction of manual program parallelization. It was primarily designed to perform source-to-source transformation of a sequential program for execution on parallel architectures with distributed memory. LLVM (Low Level Virtual Machine) compiler infrastructure is used to examine a program. This paper focuses on establishing a correspondence between the properties of the program in the programming language and the properties of its low-level representation.


Program analysis Program parallelization Source-to-source transformation LLVM 



The reported study was funded by the Program of the Presidium of RAS 26 “Fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing”.


  1. 1.
    Klinov, M.S., Krukov, V.A.: Automatic parallelization of fortran programs. Mapping to cluster. Vestnik of Lobachevsky University of Nizhni Novgorod, no. 2, pp. 128–134. Nizhni Novgorod State University Press, Nizhni Novgorod (2009). (in Russian)Google Scholar
  2. 2.
    Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO 2004), Palo Alto, California (2004)Google Scholar
  3. 3.
    Seo, S., Jo, G., Lee, J.: Performance characterization of the nas parallel benchmarks in OpenCL. In: 2011 IEEE International Symposium on Workload Characterization (IISWC), pp. 137–148 (2011)Google Scholar
  4. 4.
    Konovalov, N.A., Krukov, V.A., Mikhajlov, S.N., Pogrebtsov, A.A.: Fortan DVM: a language for portable parallel program development. Program. Comput. Softw. 21(1), 35–38 (1995)zbMATHGoogle Scholar
  5. 5.
    Bakhtin, V.A., et al.: Extension of the DVM-model of parallel programming for clusters with heterogeneous nodes. Bulletin of South Ural State University. Series: Mathematical Modeling, Programming & Computer Software, vol. 18(277), nol. 12, pp. 82–92. Publishing of the South Ural State University, Chelyabinsk (2012). (in Russian)Google Scholar
  6. 6.
    NAS Parallel Benchmarks. Accessed 14 Apr 2018
  7. 7.
    Kataev, N.A., Bulanov, A.A.: Automated transformation of Fortran programs essential for their efficient parallelization through SAPFOR system. In: Parallel Computational Technologies (PCT 2015): Proceedings of the International Scientific Conference, Ekaterinburg, Russia, 30th March–3rd April 2015, pp. 172–177. Chelyabinsk, Publishing of the South Ural State University (2015). (in Russian)Google Scholar
  8. 8.
    Kataev, N., Kolganov, A., Titov, P.: Automated parallelization of a simulation method of elastic wave propagation in media with complex 3D geometry surface on high-performance heterogeneous clusters. In: Malyshkin, V. (ed.) PaCT 2017. LNCS, vol. 10421, pp. 32–41. Springer, Cham (2017). Scholar
  9. 9.
    Bakhtin, V.A., Kataev, N.A., Klinov, M.S., Krukov, V.A., Podderugina, N.V., Pritula, M.N.: Automatic parallelization of Fortran programs to a cluster with graphic accelerators. In: Parallel Computational Technologies (PCT 2012): Proceedings of the International Scientific Conference, Novosibirsk, Russia, 26 March–30 2012, pp. 373–379. Publishing of the South Ural State University, Chelyabinsk (2012). (in Russian)Google Scholar
  10. 10.
    pC++/Sage++. Accessed 14 Apr 2018
  11. 11.
    Niziev, V.G., Koldoba, A.V., Mirzade, F.H., Panchenko, V.Y., Poveschenko, Y.A., Popov, M.V.: Numerical modeling of melting process of two-component powders in laser agglomeration. Math. Model. 23(4), 90–102 (2011). (in Russian)zbMATHGoogle Scholar
  12. 12.
    Baranov, M.S., Ivanov, D.I., Kataev, N.A., Smirnov, A.A.: Automated parallelization of sequential C-programs on the example of two applications from the field of laser material processing. In: CEUR Workshop Proceedings 1st Russian Conference on Supercomputing Days 2015, vol. 1482, p. 536 (2015)Google Scholar
  13. 13.
    Armstrong, B., Eigenmann, R.: Challenges in the automatic parallelization of large-scale computational applications. In: Proceedings of SPIE 4528, Commercial Applications for High-Performance Computing, 27 July 2001, p. 50 (2001).
  14. 14.
    Bakhtin, V.A., et al.: Automation of software packages parallelization. In: Scientific Service on the Internet. Proceedings of the International Scientific Conference, Novorossiysk, 19th September–24th 2016, pp. 76–85. Keldysh Institute of Applied Mathematics RAS, Moscow (2016)Google Scholar
  15. 15.
    Lee, S.-I., Johnson, T.A., Eigenmann, R.: Cetus – an extensible compiler infrastructure for source-to-source transformation. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 539–553. Springer, Heidelberg (2004). Scholar
  16. 16.
    ROSE compiler infrastructure. Accessed 14 Apr 2018
  17. 17.
    Optimizing parallelizing system. Accessed 14 Apr 2018
  18. 18.
    Clang: a C language family frontend for LLVM. Accessed 14 Apr 2018
  19. 19.
    GitHub - flang-compiler/flang. Accessed 14 Apr 2018
  20. 20.
    Goff, G., Kennedy, K., Tseng, C.-W.: Practical dependence testing. In: Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation (PLDI 1991), pp. 15–29. ACM, New York (1991)Google Scholar
  21. 21.
    Tu, P., Padua, D.: Automatic array privatization. In: Pande, S., Agrawal, D.P. (eds.) Compiler Optimizations for Scalable Parallel Systems. LNCS, vol. 1808, pp. 247–281. Springer, Heidelberg (2001). Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Keldysh Institute of Applied Mathematics RASMoscowRussia

Personalised recommendations